.class Gcd .super java/lang/Object .field private r I .method <init>(II)V .limit stack 5 .limit locals 4 aload_0 invokespecial java/lang/Object/<init>()V aload_0 iconst_0 putfield Gcd/r I iload_2 ifne Label1 aload_0 iload_1 putfield Gcd/r I goto Label2 Label1: new Gcd dup iload_2 iload_1 iload_2 irem invokespecial Gcd/<init>(II)V astore_3 aload_0 aload_3 invokevirtual Gcd/result()I putfield Gcd/r I Label2: return .end method .method public static main([Ljava/lang/String;)V .limit stack 4 .limit locals 4 iconst_0 istore_1 iconst_0 istore_2 Label1: aload_0 iconst_0 aaload invokestatic java/lang/Integer/parseInt(Ljava/lang/String;)I istore_1 aload_0 iconst_1 aaload invokestatic java/lang/Integer/parseInt(Ljava/lang/String;)I istore_2 Label2: goto Label4 Label3: astore_3 aload_3 invokevirtual java/lang/Throwable/printStackTrace()V getstatic java/lang/System/err Ljava/io/PrintStream; ldc "arguments expected." invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V iconst_1 invokestatic java/lang/System/exit(I)V Label4: iload_1 ifle Label5 iload_2 ifgt Label6 Label5: getstatic java/lang/System/err Ljava/io/PrintStream; ldc "Only support a>0 and b>0." invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V iconst_2 invokestatic java/lang/System/exit(I)V Label6: new Gcd dup iload_1 iload_2 invokespecial Gcd/<init>(II)V astore_3 getstatic java/lang/System/out Ljava/io/PrintStream; new java/lang/StringBuffer dup iload_1 invokestatic java/lang/String/valueOf(I)Ljava/lang/String; invokespecial java/lang/StringBuffer/<init>(Ljava/lang/String;)V ldc "," invokevirtual java/lang/StringBuffer/append(Ljava/lang/String;)Ljava/lang/StringBuffer; iload_2 invokevirtual java/lang/StringBuffer/append(I)Ljava/lang/StringBuffer; ldc "=" invokevirtual java/lang/StringBuffer/append(Ljava/lang/String;)Ljava/lang/StringBuffer; aload_3 invokevirtual Gcd/result()I invokevirtual java/lang/StringBuffer/append(I)Ljava/lang/StringBuffer; invokevirtual java/lang/StringBuffer/toString()Ljava/lang/String; invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V return .catch java/lang/Exception from Label1 to Label2 using Label3 .end method .method result()I .limit stack 1 .limit locals 1 aload_0 getfield Gcd/r I ireturn .end method