T_BOOLEAN = 4 T_CHAR = 5 T_FLOAT = 6 T_DOUBLE = 7 T_BYTE = 8 T_SHORT = 9 T_INT = 10 T_LONG = 11 macro aaload db 0x32 end macro macro aastore db 0x53 end macro macro aconst_null db 0x01 end macro macro aload index if index<0 err "invalid index" else if index<=3 db 0x2a+index else if index<100h db 0x19,index else db 0xc4,0x19,(index) shr 8,(index) and 0FFh end if end macro macro anewarray class db 0xbd,(class) shr 8,(class) and 0FFh end macro macro areturn db 0xb0 end macro macro arraylength db 0xbe end macro macro astore index if index<0 err "invalid index" else if index<=3 db 0x4b+index else if index<100h db 0x3a,index else db 0xc4,0x3a,(index) shr 8,(index) and 0FFh end if end macro macro athrow db 0xbf end macro macro baload db 0x33 end macro macro bastore db 0x54 end macro macro bipush byte if byte>-1 & byte<=5 db 0x03+byte else db 0x10,byte end if end macro macro caload db 0x34 end macro macro castore db 0x55 end macro macro checkcast class db 0xc0,(class) shr 8,(class) and 0FFh end macro macro d2f db 0x90 end macro macro d2i db 0x8e end macro macro d2l db 0x8f end macro macro dadd db 0x63 end macro macro daload db 0x31 end macro macro dastore db 0x52 end macro macro dcmpg db 0x98 end macro macro dcmpl db 0x97 end macro macro dconst_0 db 0x0e end macro macro dconst_1 db 0x0f end macro macro ddiv db 0x6f end macro macro dload index if index<0 err "invalid index" else if index<=3 db 0x26+index else if index<100h db 0x18,index else db 0xc4,0x18,(index) shr 8,(index) and 0FFh end if end macro macro dmul db 0x6b end macro macro dneg db 0x77 end macro macro drem db 0x73 end macro macro dreturn db 0xaf end macro macro dstore index if index<0 err "invalid index" else if index<=3 db 0x47+index else if index<100h db 0x39,index else db 0xc4,0x39,(index) shr 8,(index) and 0FFh end if end macro macro dsub db 0x67 end macro macro dup db 0x59 end macro macro dup_x1 db 0x5a end macro macro dup_x2 db 0x5b end macro macro dup2 db 0x5c end macro macro dup2_x1 db 0x5d end macro macro dup2_x2 db 0x5e end macro macro f2d db 0x8d end macro macro f2i db 0x8b end macro macro f2l db 0x8c end macro macro fadd db 0x62 end macro macro faload db 0x30 end macro macro fastore db 0x51 end macro macro fcmpg db 0x96 end macro macro fcmpl db 0x95 end macro macro fconst_0 db 0x0b end macro macro fconst_1 db 0x0c end macro macro fconst_2 db 0x0d end macro macro fdiv db 0x6e end macro macro fload index if index<0 err "invalid index" else if index<=3 db 0x22+index else if index<100h db 0x17,index else db 0xc4,0x17,(index) shr 8,(index) and 0FFh end if end macro macro fmul db 0x6a end macro macro fneg db 0x76 end macro macro frem db 0x72 end macro macro freturn db 0xae end macro macro fstore index if index<0 err "invalid index" else if index<=3 db 0x43+index else if index<100h db 0x38,index else db 0xc4,0x38,(index) shr 8,(index) and 0FFh end if end macro macro fsub db 0x66 end macro macro getfield index db 0xb4,(index) shr 8,(index) and 0FFh end macro macro getstatic index db 0xb2,(index) shr 8,(index) and 0FFh end macro macro goto branch offset = branch-$ if offset>=-8000h & offset<8000h db 0xa7,offset shr 8,offset and 0FFh else db 0xc8,offset shr 24,(offset shr 16) and 0FFh,(offset shr 8) and 0FFh,offset and 0FFh end if end macro macro goto_w branch offset = branch-$ db 0xc8,offset shr 24,(offset shr 16) and 0FFh,(offset shr 8) and 0FFh,offset and 0FFh end macro macro i2b db 0x91 end macro macro i2c db 0x92 end macro macro i2d db 0x87 end macro macro i2f db 0x86 end macro macro i2l db 0x85 end macro macro i2s db 0x93 end macro macro iadd db 0x60 end macro macro iaload db 0x2e end macro macro iand db 0x7e end macro macro iastore db 0x4f end macro macro iconst_m1 db 0x02 end macro macro iconst_0 db 0x03 end macro macro iconst_1 db 0x04 end macro macro iconst_2 db 0x05 end macro macro iconst_3 db 0x06 end macro macro iconst_4 db 0x07 end macro macro iconst_5 db 0x08 end macro macro idiv db 0x6c end macro macro if_acmpeq branch offset = branch-$ db 0xa5,offset shr 8,offset and 0FFh end macro macro if_acmpne branch offset = branch-$ db 0xa6,offset shr 8,offset and 0FFh end macro macro if_icmpeq branch offset = branch-$ db 0x9f,offset shr 8,offset and 0FFh end macro macro if_icmpne branch offset = branch-$ db 0xa0,offset shr 8,offset and 0FFh end macro macro if_icmplt branch offset = branch-$ db 0xa1,offset shr 8,offset and 0FFh end macro macro if_icmpge branch offset = branch-$ db 0xa2,offset shr 8,offset and 0FFh end macro macro if_icmpgt branch offset = branch-$ db 0xa3,offset shr 8,offset and 0FFh end macro macro if_icmple branch offset = branch-$ db 0xa4,offset shr 8,offset and 0FFh end macro macro ifeq branch offset = branch-$ db 0x99,offset shr 8,offset and 0FFh end macro macro ifne branch offset = branch-$ db 0x9a,offset shr 8,offset and 0FFh end macro macro iflt branch offset = branch-$ db 0x9b,offset shr 8,offset and 0FFh end macro macro ifge branch offset = branch-$ db 0x9c,offset shr 8,offset and 0FFh end macro macro ifgt branch offset = branch-$ db 0x9d,offset shr 8,offset and 0FFh end macro macro ifle branch offset = branch-$ db 0x9e,offset shr 8,offset and 0FFh end macro macro ifnonnull branch offset = branch-$ db 0xc7,offset shr 8,offset and 0FFh end macro macro ifnull branch offset = branch-$ db 0xc6,offset shr 8,offset and 0FFh end macro macro iinc index,const if index<0 err "invalid index" else if index<100h & const<80h & const>=-80h db 0x84,index,const else db 0xc4,0x84,(index) shr 8,(index) and 0FFh,(const) shr 8,(const) and 0FFh end if end macro macro iload index if index<0 err "invalid index" else if index<=3 db 0x1a+index else if index<100h db 0x15,index else db 0xc4,0x15,(index) shr 8,(index) and 0FFh end if end macro macro imul db 0x68 end macro macro ineg db 0x74 end macro macro instanceof index db 0xc1,(index) shr 8,(index) and 0FFh end macro macro invokedynamic index db 0xba,(index) shr 8,(index) and 0FFh,0,0 end macro macro invokeinterface index,count db 0xb9,(index) shr 8,(index) and 0FFh,count end macro macro invokespecial index db 0xb7,(index) shr 8,(index) and 0FFh end macro macro invokestatic index db 0xb8,(index) shr 8,(index) and 0FFh end macro macro invokevirtual index db 0xb6,(index) shr 8,(index) and 0FFh end macro macro ior db 0x80 end macro macro irem db 0x70 end macro macro ireturn db 0xac end macro macro ishl db 0x78 end macro macro ishr db 0x7a end macro macro istore index if index<0 err "invalid index" else if index<=3 db 0x3b+index else if index<100h db 0x36,index else db 0xc4,0x36,(index) shr 8,(index) and 0FFh end if end macro macro isub db 0x64 end macro macro iushr db 0x7c end macro macro ixor db 0x82 end macro macro jsr branch offset = branch-$ if offset>=-8000h & offset<8000h db 0xa8,offset shr 8,offset and 0FFh else db 0xc9,offset shr 24,(offset shr 16) and 0FFh,(offset shr 8) and 0FFh,offset and 0FFh end if end macro macro jsr_w branch offset = branch-$ db 0xc9,offset shr 24,(offset shr 16) and 0FFh,(offset shr 8) and 0FFh,offset and 0FFh end macro macro l2d db 0x8a end macro macro l2f db 0x89 end macro macro l2i db 0x88 end macro macro ladd db 0x61 end macro macro laload db 0x2f end macro macro land db 0x7f end macro macro lastore db 0x50 end macro macro lcmp db 0x94 end macro macro lconst_0 db 0x09 end macro macro lconst_1 db 0x0a end macro macro ldc index if index<0 err "invalid index" else if index<100h db 0x12,index else db 0x13,(index) shr 8,(index) and 0FFh end if end macro macro ldc_w index db 0x13,(index) shr 8,(index) and 0FFh end macro macro ldc2_w index db 0x14,(index) shr 8,(index) and 0FFh end macro macro ldiv db 0x6d end macro macro lload index if index<0 err "invalid index" else if index<=3 db 0x1e+index else if index<100h db 0x16,index else db 0xc4,0x16,(index) shr 8,(index) and 0FFh end if end macro macro lmul db 0x69 end macro macro lneg db 0x75 end macro macro lookupswitch ; db 0xab,... err "not implemented yet" end macro macro lor db 0x81 end macro macro lrem db 0x71 end macro macro lreturn db 0xad end macro macro lshl db 0x79 end macro macro lshr db 0x7b end macro macro lstore index if index<0 err "invalid index" else if index<=3 db 0x3f+index else if index<100h db 0x37,index else db 0xc4,0x37,(index) shr 8,(index) and 0FFh end if end macro macro lsub db 0x65 end macro macro lushr db 0x7d end macro macro lxor db 0x83 end macro macro monitorenter db 0xc2 end macro macro monitorexit db 0xc3 end macro macro multianewarray index,dimensions db 0xc5,(index) shr 8,(index) and 0FFh,dimensions end macro macro new index db 0xbb,(index) shr 8,(index) and 0FFh end macro macro newarray atype db 0xbc,atype end macro macro nop db 0x00 end macro macro pop db 0x57 end macro macro pop2 db 0x58 end macro macro putfield index db 0xb5,(index) shr 8,(index) and 0FFh end macro macro putstatic index db 0xb3,(index) shr 8,(index) and 0FFh end macro macro ret index if index<0 err "invalid index" else if index<100h db 0xa9,index else db 0xc4,0xa9,(index) shr 8,(index) and 0FFh end if end macro macro return db 0xb1 end macro macro saload db 0x35 end macro macro sastore db 0x56 end macro macro sipush short db 0x11,(short) shr 8,(short) and 0FFh end macro macro swap db 0x5f end macro macro tableswitch ; db 0xaa,... err "not implemented yet" end macro macro breakpoint db 0xca end macro macro impdep1 db 0xfe end macro macro impdep2 db 0xff end macro