⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opcode.java

📁 java 到c的转换程序的原代码.对喜欢C程序而不懂JAVA程序的人很有帮助
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
//  Opcode.java -- definitions of Java bytecode operationspackage toba.classfile;import java.io.*;public class Opcode {    // instance variables    public int code;            // The exact bytecode for this instruction    public int length;		// instruction length (0 if variable)    public int kind;		// kind (classification) of operation    public int flags;		// flag bits    public int var;		// variant for distinguishing similar ops    public int pop;		// number of words popped    public String push;		// number and types of words pushed    public String name;		// mnemonic name    public String opr;		// operator for use in generated code// global opcode tablestatic Opcode table[];	// instruction flagspublic static final int I8   = 0x0001;	// instr has 8-bit signed argpublic static final int I16  = 0x0002;	// instr has 16-bit signed argpublic static final int I32  = 0x0004;	// instr has 16-bit signed argpublic static final int U8   = 0x0010;	// instr has 8-bit unsigned argpublic static final int U16  = 0x0020;	// instr has 16-bit unsigned argpublic static final int MORE = 0x0080;	// instr has further additional argspublic static final int NFT  = 0x0100;	// no fallthrough to following instrpublic static final int PC   = 0x0200;	// argument is PC relativepublic static final int CTAB = 0x0800;	// argument indexes constant tablepublic static final int UNS  = 0x1000;	// unsigned variant of a shiftpublic static final int SWCH = 0x2000;	// switch instructionpublic static final int INST = 0x4000;	// instanceof (including cast & aastore)public static final int JSRI = 0x8000;	// JSR instruction flag// newarray typespublic static final int T_BOOLEAN	=  4;public static final int T_CHAR		=  5;public static final int T_FLOAT		=  6;public static final int T_DOUBLE	=  7;public static final int T_BYTE		=  8;public static final int T_SHORT		=  9;public static final int T_INT		= 10;public static final int T_LONG		= 11;// symbolic definitions of operations and classes of operations// (these generally don't have to match Java bytecode codes, although many do)// Constants are defined for wide classes of similar instructions, and // specific instances of those instructions are listed under the class.// The translator can deal with simliar instructions all at once, while// the interpreter deals with each individual instruction.public static final int NOP  =  0; // Class of opcodes that do nothing in the public static final int POP  = 87; // translator, and their specific numberspublic static final int POP2 = 88;public static final int CONST       =  1; // constant load class of opspublic static final int ACONST_NULL =  1; // and specific bytecode of the classpublic static final int ICONST_M1   =  2;public static final int ICONST_0    =  3;public static final int ICONST_1    =  4;public static final int ICONST_2    =  5;public static final int ICONST_3    =  6;public static final int ICONST_4    =  7;public static final int ICONST_5    =  8;public static final int LCONST_0    =  9;public static final int LCONST_1    = 10;public static final int FCONST_0    = 11;public static final int FCONST_1    = 12;public static final int FCONST_2    = 13;public static final int DCONST_0    = 14;public static final int DCONST_1    = 15;public static final int BIPUSH      = 16;public static final int SIPUSH      = 17;public static final int LDC         = 18;	// ldc, ldc2, ldc2_wpublic static final int LDC_W       = 19;      public static final int LDC2_W      = 20;public static final int LOAD        = 21;	// all non-array loadspublic static final int ILOAD       = 21;      // and specific instancespublic static final int LLOAD       = 22;public static final int FLOAD       = 23;public static final int DLOAD       = 24;public static final int ALOAD       = 25;public static final int ILOAD_0     = 26;public static final int ILOAD_1     = 27;public static final int ILOAD_2     = 28;public static final int ILOAD_3     = 29;public static final int LLOAD_0     = 30;public static final int LLOAD_1     = 31;public static final int LLOAD_2     = 32;public static final int LLOAD_3     = 33;public static final int FLOAD_0     = 34;public static final int FLOAD_1     = 35;public static final int FLOAD_2     = 36;public static final int FLOAD_3     = 37;public static final int DLOAD_0     = 38;public static final int DLOAD_1     = 39;public static final int DLOAD_2     = 40;public static final int DLOAD_3     = 41;public static final int ALOAD_0     = 42;public static final int ALOAD_1     = 43;public static final int ALOAD_2     = 44;public static final int ALOAD_3     = 45;public static final int STORE        = 54;	// all simple store operationspublic static final int ISTORE       = 54;      // and specific instancespublic static final int LSTORE       = 55;public static final int FSTORE       = 56;public static final int DSTORE       = 57;public static final int ASTORE       = 58;public static final int ISTORE_0     = 59;public static final int ISTORE_1     = 60;public static final int ISTORE_2     = 61;public static final int ISTORE_3     = 62;public static final int LSTORE_0     = 63;public static final int LSTORE_1     = 64;public static final int LSTORE_2     = 65;public static final int LSTORE_3     = 66;public static final int FSTORE_0     = 67;public static final int FSTORE_1     = 68;public static final int FSTORE_2     = 69;public static final int FSTORE_3     = 70;public static final int DSTORE_0     = 71;public static final int DSTORE_1     = 72;public static final int DSTORE_2     = 73;public static final int DSTORE_3     = 74;public static final int ASTORE_0     = 75;public static final int ASTORE_1     = 76;public static final int ASTORE_2     = 77;public static final int ASTORE_3     = 78;public static final int ARRAYLOAD   = 46;	// array load operationspublic static final int IALOAD      = 46;      // and specific instancespublic static final int LALOAD      = 47;public static final int FALOAD      = 48;public static final int DALOAD      = 49;public static final int AALOAD      = 50;public static final int BALOAD      = 51;public static final int CALOAD      = 52;public static final int SALOAD      = 53;public static final int ARRAYSTORE  = 79;	// array store operationpublic static final int IASTOR      = 79;      // and specific instancespublic static final int LASTOR      = 80;public static final int FASTOR      = 81;public static final int DASTOR      = 82;public static final int AASTOR      = 83;public static final int BASTOR      = 84;public static final int CASTOR      = 85;public static final int SASTOR      = 86;public static final int DUP   = 89;	// duppublic static final int DUPX1 = 90;	// dup_x1public static final int DUPX2 = 91;	// dup_x2public static final int DUP2  = 92;	// dup2public static final int D2X1  = 93;	// dup2_x1public static final int D2X2  = 94;	// dup2_x2public static final int SWAP  = 95;	// swappublic static final int BINOP = 96;	// binary operators public static final int IADD  = 96;    // and their specific instancespublic static final int LADD  = 97;public static final int FADD  = 98;public static final int DADD  = 99;public static final int ISUB  =100;public static final int LSUB  =101;public static final int FSUB  =102;public static final int DSUB  =103;public static final int IMUL  =104;public static final int LMUL  =105;public static final int FMUL  =106;public static final int DMUL  =107;public static final int FDIV  =110;public static final int DDIV  =111;public static final int IAND  = 126;public static final int LAND  = 127;public static final int IOR   = 128;public static final int LOR   = 129;public static final int IXOR  = 130;public static final int LXOR  = 131;public static final int IINC = 132;	// iinc (all by itself)public static final int DIVOP = 108;	// division ops that throw division bypublic static final int IDIV  = 108;    // zero exceptionspublic static final int LDIV  = 109;   public static final int IREM  = 112;   public static final int LREM  = 113;   public static final int FREM = 114;	// float (or double) remainder opspublic static final int DREM = 115;	// and the specific double variantpublic static final int SHIFT = 120;	// shift operatorspublic static final int ISHL =  120;   // and the specific instancespublic static final int LSHL =  121;public static final int ISHR =  122;public static final int LSHR =  123;public static final int IUSHR = 124;public static final int LUSHR = 125;public static final int UNOP =    116;	// unary operators public static final int INEG =    116; // and the specific instances of that classpublic static final int LNEG =	   117;public static final int FNEG =	   118;public static final int DNEG =	   119;public static final int I2L =	   133;public static final int I2F =	   134;public static final int I2D =	   135;public static final int L2I =	   136;public static final int L2F =	   137;public static final int L2D =	   138;public static final int F2D =	   141;public static final int D2F =	   144;public static final int INT2BYTE =   145;public static final int INT2CHAR =   146;public static final int INT2SHORT =  147;public static final int FTOI =  139;	// f2l, d2l, f2i, d2i conversionspublic static final int F2I  =  139;   // and specific instancespublic static final int F2L  =  140;public static final int D2I  =  142;public static final int D2L  =  143;public static final int CMP   = 148;	// compares without branchingpublic static final int LCMP  = 148;public static final int FCMPL = 149;public static final int FCMPG = 150;public static final int DCMPL = 151;public static final int DCMPG = 152;public static final int IFZRO =  153;	// compare to zero and branchespublic static final int IFEQ   = 153;public static final int IFNE   = 154;public static final int IFLT   = 155;public static final int IFGE   = 156;public static final int IFGT   = 157;public static final int IFLE   = 158;public static final int IFNULL = 198;public static final int IFNONNULL = 199;public static final int IFCMP = 159;	// compare and branchespublic static final int IF_ICMPEQ = 159;public static final int IF_ICMPNE = 160;public static final int IF_ICMPLT = 161;public static final int IF_ICMPGE = 162;public static final int IF_ICMPGT = 163;public static final int IF_ICMPLE = 164;public static final int IF_ACMPEQ = 165;public static final int IF_ACMPNE = 166;public static final int GOTO   = 167;	// goto, goto_wpublic static final int GOTO_W = 200;public static final int JSR   = 168;	// jsr, jsr_wpublic static final int JSR_W = 201;public static final int RET   = 169;	// ret, ret_wpublic static final int TBLSW = 170;	// tableswitchpublic static final int LKPSW = 171;	// lookupswitchpublic static final int RETV    = 172;	// return value (iret, aret, etc.)public static final int IRETURN = 172;public static final int LRETURN = 173;public static final int FRETURN = 174;public static final int DRETURN = 175;public static final int ARETURN = 176;public static final int RETRN   = 177;	// return, no valuepublic static final int GETS = 178;	// getstaticpublic static final int PUTS = 179;	// putstaticpublic static final int GETF = 180;	// getfield

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -