📄 jopinstr.java
字号:
new JopInstr("lshr", 1, IMP_NO, 1), // 0x7B new JopInstr("iushr", 1, IMP_ASM, 1), // 0x7C new JopInstr("lushr", 1, IMP_NO, 1), // 0x7D new JopInstr("iand", 1, IMP_ASM, 1), // 0x7E new JopInstr("land", 1, IMP_NO, 1), // 0x7F new JopInstr("ior", 1, IMP_ASM, 1), // 0x80 new JopInstr("lor", 1, IMP_NO, 1), // 0x81 new JopInstr("ixor", 1, IMP_ASM, 1), // 0x82 new JopInstr("lxor", 1, IMP_NO, 1), // 0x83 new JopInstr("iinc", 3, IMP_ASM, 11), // 0x84 new JopInstr("i2l", 1, IMP_NO, 1), // 0x85 new JopInstr("i2f", 1, IMP_NO, 1), // 0x86 new JopInstr("i2d", 1, IMP_NO, 1), // 0x87 new JopInstr("l2i", 1, IMP_ASM, 3), // 0x88 new JopInstr("l2f", 1, IMP_NO, 1), // 0x89 new JopInstr("l2d", 1, IMP_NO, 1), // 0x8A new JopInstr("f2i", 1, IMP_NO, 1), // 0x8B new JopInstr("f2l", 1, IMP_NO, 1), // 0x8C new JopInstr("f2d", 1, IMP_NO, 1), // 0x8D new JopInstr("d2i", 1, IMP_NO, 1), // 0x8E new JopInstr("d2l", 1, IMP_NO, 1), // 0x8F new JopInstr("d2f", 1, IMP_NO, 1), // 0x90 new JopInstr("i2b", 1, IMP_NO, 1), // 0x91 new JopInstr("i2c", 1, IMP_ASM, 2), // 0x92 new JopInstr("i2s", 1, IMP_NO, 1), // 0x93 new JopInstr("lcmp", 1, IMP_NO, 1), // 0x94 new JopInstr("fcmpl", 1, IMP_NO, 1), // 0x95 new JopInstr("fcmpg", 1, IMP_NO, 1), // 0x96 new JopInstr("dcmpl", 1, IMP_NO, 1), // 0x97 new JopInstr("dcmpg", 1, IMP_NO, 1), // 0x98 new JopInstr("ifeq", 3, IMP_ASM, 4), // 0x99 new JopInstr("ifne", 3, IMP_ASM, 4), // 0x9A new JopInstr("iflt", 3, IMP_ASM, 4), // 0x9B new JopInstr("ifge", 3, IMP_ASM, 4), // 0x9C new JopInstr("ifgt", 3, IMP_ASM, 4), // 0x9D new JopInstr("ifle", 3, IMP_ASM, 4), // 0x9E new JopInstr("if_icmpeq", 3, IMP_ASM, 4), // 0x9F new JopInstr("if_icmpne", 3, IMP_ASM, 4), // 0xA0 new JopInstr("if_icmplt", 3, IMP_ASM, 4), // 0xA1 new JopInstr("if_icmpge", 3, IMP_ASM, 4), // 0xA2 new JopInstr("if_icmpgt", 3, IMP_ASM, 4), // 0xA3 new JopInstr("if_icmple", 3, IMP_ASM, 4), // 0xA4 new JopInstr("if_acmpeq", 3, IMP_ASM, 4), // 0xA5 new JopInstr("if_acmpne", 3, IMP_ASM, 4), // 0xA6 new JopInstr("goto", 3, IMP_ASM, 4), // 0xA7 new JopInstr("jsr", 3, IMP_NO, 1), // 0xA8 new JopInstr("ret", 2, IMP_NO, 1), // 0xA9 new JopInstr("tableswitch", 0, IMP_NO, 1), // 0xAA new JopInstr("lookupswitch", 0, IMP_NO, 1), // 0xAB new JopInstr("ireturn", 1, IMP_ASM, 12), // 0xAC new JopInstr("lreturn", 1, IMP_NO, 1), // 0xAD new JopInstr("freturn", 1, IMP_NO, 1), // 0xAE new JopInstr("dreturn", 1, IMP_NO, 1), // 0xAF new JopInstr("areturn", 1, IMP_ASM, 1), // 0xB0 new JopInstr("return", 1, IMP_ASM, 10), // 0xB1 new JopInstr("getstatic", 3, IMP_ASM, 11), // 0xB2 // derzeit!!! new JopInstr("putstatic", 3, IMP_ASM, 11), // 0xB3 new JopInstr("getfield", 3, IMP_ASM, 30), // 0xB4 new JopInstr("putfield", 3, IMP_ASM, 30), // 0xB5 new JopInstr("invokevirtual", 3, IMP_ASM, 30), // 0xB6 new JopInstr("invokespecial", 3, IMP_ASM, 30), // 0xB7 new JopInstr("invokestatic", 3, IMP_ASM, 30), // 0xB8 cnt ???? new JopInstr("invokeinterface", 5, IMP_ASM, 30), // 0xB9 new JopInstr("unused_ba", 1, IMP_NO, 1), // 0xBA new JopInstr("new", 3, IMP_ASM, 30), // 0xBB new JopInstr("newarray", 2, IMP_ASM, 26), // 0xBC // mit mem!! new JopInstr("anewarray", 3, IMP_JAVA, 1), // 0xBD new JopInstr("arraylength", 1, IMP_ASM, 18), // 0xBE // mit mem!! new JopInstr("athrow", 1, IMP_NO, 1), // 0xBF new JopInstr("checkcast", 3, IMP_NO, 1), // 0xC0 new JopInstr("instanceof", 3, IMP_NO, 1), // 0xC1 new JopInstr("monitorenter", 1, IMP_ASM, 9), // 0xC2 new JopInstr("monitorexit", 1, IMP_ASM, 12), // 0xC3 new JopInstr("wide", 0, IMP_NO, 1), // 0xC4 new JopInstr("multianewarray", 4, IMP_NO, 1), // 0xC5 new JopInstr("ifnull", 3, IMP_ASM, 1), // 0xC6 new JopInstr("ifnonnull", 3, IMP_ASM, 1), // 0xC7 new JopInstr("goto_w", 5, IMP_NO, 1), // 0xC8 new JopInstr("jsr_w", 5, IMP_NO, 1), // 0xC9 new JopInstr("breakpoint", 1, IMP_NO, 1), // 0xCA//// reserved instructions// new JopInstr("resCB", 1, IMP_NO, 1), // 0xCB new JopInstr("resCC", 1, IMP_NO, 1), // 0xCC new JopInstr("resCD", 1, IMP_NO, 1), // 0xCD new JopInstr("resCE", 1, IMP_NO, 1), // 0xCE new JopInstr("resCF", 1, IMP_NO, 1), // 0xCF new JopInstr("jopsys_null", 1, IMP_NO, 1), // 0xD0 new JopInstr("jopsys_rd", 1, IMP_ASM, 3), // 0xD1 new JopInstr("jopsys_wr", 1, IMP_ASM, 3), // 0xD2 new JopInstr("jopsys_rdmem", 1, IMP_ASM, 15), // 0xD3 new JopInstr("jopsys_wrmem", 1, IMP_ASM, 15), // 0xD4 new JopInstr("jopsys_rdint", 1, IMP_ASM, 8), // 0xD5 new JopInstr("jopsys_wrint", 1, IMP_ASM, 8), // 0xD6 new JopInstr("jopsys_getsp", 1, IMP_ASM, 3), // 0xD7 new JopInstr("jopsys_setsp", 1, IMP_ASM, 4), // 0xD8 new JopInstr("jopsys_getvp", 1, IMP_ASM, 1), // 0xD9 new JopInstr("jopsys_setvp", 1, IMP_ASM, 2), // 0xDA new JopInstr("jopsys_int2ext", 1, IMP_ASM, 100), // 0xDB new JopInstr("jopsys_ext2int", 1, IMP_ASM, 100), // 0xDC new JopInstr("jopsys_nop", 1, IMP_NO, 1), // 0xDD new JopInstr("jopsys_invoke", 1, IMP_NO, 1), // 0xDE new JopInstr("resDF", 1, IMP_NO, 1), // 0xDF new JopInstr("getstatic_ref", 3, IMP_ASM, 30), // 0xE0 new JopInstr("putstatic_ref", 3, IMP_ASM, 30), // 0xE1 new JopInstr("getfield_ref", 3, IMP_ASM, 30), // 0xE2 new JopInstr("putfield_ref", 3, IMP_ASM, 30), // 0xE3 new JopInstr("getstatic_long", 3, IMP_ASM, 30), // 0xE4 new JopInstr("putstatic_long", 3, IMP_ASM, 30), // 0xE5 new JopInstr("getfield_long", 3, IMP_ASM, 30), // 0xE6 new JopInstr("putfield_long", 3, IMP_ASM, 30), // 0xE7 new JopInstr("resE8", 1, IMP_NO, 1), // 0xE8 new JopInstr("resE9", 1, IMP_NO, 1), // 0xE9 new JopInstr("resEA", 1, IMP_NO, 1), // 0xEA new JopInstr("resEB", 1, IMP_NO, 1), // 0xEB new JopInstr("resEC", 1, IMP_NO, 1), // 0xEC new JopInstr("resED", 1, IMP_NO, 1), // 0xED new JopInstr("resEE", 1, IMP_NO, 1), // 0xEE new JopInstr("resEF", 1, IMP_NO, 1), // 0xEF new JopInstr("sys_int", 1, IMP_ASM, 1), // 0xF0 new JopInstr("sys_exc", 1, IMP_ASM, 1), // 0xF1 new JopInstr("resF2", 1, IMP_NO, 1), // 0xF2 new JopInstr("resF3", 1, IMP_NO, 1), // 0xF3 new JopInstr("resF4", 1, IMP_NO, 1), // 0xF4 new JopInstr("resF5", 1, IMP_NO, 1), // 0xF5 new JopInstr("resF6", 1, IMP_NO, 1), // 0xF6 new JopInstr("resF7", 1, IMP_NO, 1), // 0xF7 new JopInstr("resF8", 1, IMP_NO, 1), // 0xF8 new JopInstr("resF9", 1, IMP_NO, 1), // 0xF9 new JopInstr("resFA", 1, IMP_NO, 1), // 0xFA new JopInstr("resFB", 1, IMP_NO, 1), // 0xFB new JopInstr("resFC", 1, IMP_NO, 1), // 0xFC new JopInstr("resFD", 1, IMP_NO, 1), // 0xFD new JopInstr("sys_noim", 1, IMP_ASM, 1), // 0xFE new JopInstr("sys_init", 1, IMP_ASM, 1), // 0xFF }; // // Mapping of 'native' methods from Native.java // to special bytecodes // With JCC the index in Native was used, but with JOPizer // and BCEL we need the expilicit mapping. private static String[] nativeMapping = { "rd", "jopsys_rd", "wr", "jopsys_wr", "rdMem", "jopsys_rdmem", "wrMem", "jopsys_wrmem", "rdIntMem", "jopsys_rdint", "wrIntMem", "jopsys_wrint", "getSP", "jopsys_getsp", "setSP", "jopsys_setsp", "getVP", "jopsys_getvp", "setVP", "jopsys_setvp", "int2extMem", "jopsys_int2ext", "ext2intMem", "jopsys_ext2int", "makeLong", "jopsys_nop", "invoke", "jopsys_invoke", }; static { int i; for (i=0; i<ia.length; ++i) { map.put(ia[i].name, new Integer(i)); } for (i=0; i<nativeMapping.length; i+=2) { natMap.put(nativeMapping[i], nativeMapping[i+1]); } } public static void main(String[] args) { for (int i=0; i<256; ++i) { System.out.print(i+"; "); System.out.print(JopInstr.name(i)+"; "); System.out.println(JopInstr.cnt(i)); }/* for (int i=0; i<256; ++i) { System.out.print(i+"\t"); System.out.print(JopInstr.name(i)+"\t"); int imp = JopInstr.imp(i); if (imp==IMP_ASM) { if (JopInstr.cnt(i)==1) { System.out.println("hw"); } else { System.out.println("mc"); } } else if (imp==IMP_JAVA) { System.out.println("Java"); } else { System.out.println("NI"); } }*/ }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -