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

📄 microcodeset.java

📁 JPC: x86 PC Hardware Emulator. 牛津大学开发的一个纯JAVA的x86系统结构硬件模拟器。
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/*    JPC: A x86 PC Hardware Emulator for a pure Java Virtual Machine    Release Version 2.0    A project from the Physics Dept, The University of Oxford    Copyright (C) 2007 Isis Innovation Limited    This program is free software; you can redistribute it and/or modify    it under the terms of the GNU General Public License version 2 as published by    the Free Software Foundation.    This program is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    GNU General Public License for more details.    You should have received a copy of the GNU General Public License along    with this program; if not, write to the Free Software Foundation, Inc.,    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.     Details (including contact information) can be found at:     www.physics.ox.ac.uk/jpc*/package org.jpc.emulator.memory.codeblock.optimised;

public interface MicrocodeSet
{
    //Rough Frequency Ordered Microcodes
    public static final int MEM_RESET = 0;
    public static final int ADDR_MASK16 = 1;
    public static final int EIP_UPDATE = 2;
    public static final int ADDR_IB = 3;
    public static final int PUSH_O16_A16 = 4;
    public static final int LOAD_SEG_SS = 5;
    public static final int LOAD0_AX = 6;
    public static final int ADDR_BP = 7;
    public static final int LOAD0_IB = 8;
    public static final int LOAD0_MEM_WORD = 9;

    public static final int STORE1_ESP = 10;
    public static final int POP_O16_A16 = 11;
    public static final int STORE0_AX = 12;
    public static final int LOAD0_IW = 13;
    public static final int LOAD_SEG_DS = 14;
    public static final int STORE0_BX = 15;
    public static final int SUB = 16;
    public static final int STORE0_BP = 17;
    public static final int ADDR_BX = 18;
    public static final int LOAD0_SP = 19;

    public static final int ADD = 20;
    public static final int STORE0_MEM_WORD = 21;
    public static final int LOAD0_MEM_BYTE = 22;
    public static final int JNZ_O8 = 23;
    public static final int STORE0_AL = 24;
    public static final int LOAD0_BX = 25;
    public static final int LOAD1_IB = 26;
    public static final int LOAD1_IW = 27;
    public static final int CALL_O16_A16 = 28;
    public static final int STORE0_CX = 29;

    public static final int LOAD0_CX = 30;
    public static final int LOAD0_BP = 31;
    public static final int RET_O16_A16 = 32;
    public static final int STORE0_SP = 33;
    public static final int LOAD0_AL = 34;
    public static final int ADD_O16_FLAGS = 35;
    public static final int SUB_O16_FLAGS = 36;
    public static final int STORE0_DS = 37;
    public static final int LOAD0_DX = 38;
    public static final int BITWISE_FLAGS_O8 = 39;

    public static final int STORE0_SI = 40;
    public static final int XOR = 41;
    public static final int STORE0_DX = 42;
    public static final int ADDR_SI = 43;
    public static final int SUB_O8_FLAGS = 44;
    public static final int JZ_O8 = 45;
    public static final int LOAD0_AH = 46;
    public static final int STORE0_DI = 47;
    public static final int LOAD0_SI = 48;
    public static final int ADDR_IW = 49;

    public static final int BITWISE_FLAGS_O16 = 50;
    public static final int LOAD0_DS = 51;
    public static final int LOAD1_MEM_WORD = 52;
    public static final int LOAD0_DI = 53;
    public static final int INC = 54;
    public static final int STORE0_ES = 55;
    public static final int INC_O16_FLAGS = 56;
    public static final int AND = 57;
    public static final int STORE0_BH = 58;
    public static final int LOAD_SEG_ES = 59;

    public static final int STORE0_AH = 60;
    public static final int LOAD1_CX = 61;
    public static final int ADD_O8_FLAGS = 62;
    public static final int LOAD1_AX = 63;
    public static final int LOAD1_BH = 64;
    public static final int LOAD0_BH = 65;
    public static final int STORE0_MEM_BYTE = 66;
    public static final int LOAD0_ES = 67;
    public static final int LOAD1_AH = 68;
    public static final int ADC = 69;

    public static final int JUMP_O8 = 70;
    public static final int JNC_O8 = 71;
    public static final int JC_O8 = 72;
    public static final int LOAD1_AL = 73;
    public static final int ADC_O16_FLAGS = 74;
    public static final int JUMP_O16 = 75;
    public static final int LOAD_SEG_CS = 76;
    public static final int DEC = 77;
    public static final int DEC_O16_FLAGS = 78;
    public static final int LOAD0_ADDR = 79;

    public static final int SHL = 80;
    public static final int STORE0_BL = 81;
    public static final int SHL_O16_FLAGS = 82;
    public static final int LOAD1_BX = 83;
    public static final int OR = 84;
    public static final int STORE1_ES = 85;
    public static final int STORE1_AX = 86;
    public static final int LOAD1_DI = 87;
    public static final int LOAD1_MEM_BYTE = 88;
    public static final int JCXZ = 89;

    public static final int LOAD1_SI = 90;
    public static final int STORE1_DS = 91;
    public static final int LOAD1_CL = 92;
    public static final int JUMP_ABS_O16 = 93;
    public static final int STORE0_CL = 94;
    public static final int ADDR_DI = 95;
    public static final int SHR = 96;
    public static final int SHR_O16_FLAGS = 97;
    public static final int JA_O8 = 98;
    public static final int JNA_O8 = 99;

    public static final int INT_O16_A16 = 100;
    public static final int STI = 101;
    public static final int ADC_O8_FLAGS = 102;
    public static final int OUT_O8 = 103;
    public static final int JZ_O16 = 104;
    public static final int JL_O8 = 105;
    public static final int IRET_O16_A16 = 106;
    public static final int IMULA_O16 = 107;
    public static final int LOAD1_DX = 108;

    public static final int CLD = 109;
    public static final int LOAD0_DL = 110;
    public static final int SIGN_EXTEND_8_16 = 111;
    public static final int MOVSB_A16 = 112;
    public static final int LOOP_CX = 113;
    public static final int RET_IW_O16_A16 = 114;
    public static final int STORE0_DL = 115;
    public static final int IN_O8 = 116;
    public static final int SBB = 117;

    public static final int STORE0_FLAGS = 118;
    public static final int STORE0_EFLAGS = 119;
    public static final int LOAD0_FLAGS = 120;
    public static final int LOAD0_EFLAGS = 121;

    public static final int SBB_O16_FLAGS = 122;
    public static final int LODSB_A16 = 123;
    public static final int POPA_A16 = 124;
    public static final int PUSHA_A16 = 125;
    public static final int LOAD1_DL = 126;
    public static final int REP_MOVSB_A16 = 127;
    public static final int NOT = 128;
    public static final int LOAD1_BP = 129;
    public static final int REP_MOVSW_A16 = 130;
    public static final int LOAD0_BL = 131;

    public static final int DIV_O16 = 132;
    public static final int MUL_O16 = 133;
    public static final int LOAD0_SS = 134;
    public static final int CLI = 135;
    public static final int JNZ_O16 = 136;
    public static final int LOAD0_CL = 137;
    public static final int JG_O8 = 138;
    public static final int CALL_FAR_O16_A16 = 139;
    public static final int RET_FAR_O16_A16 = 140;
    public static final int STORE0_SS = 141;

    public static final int JUMP_FAR_O16 = 142;
    public static final int CWD = 143;
    public static final int STORE0_CH = 144;
    public static final int LOAD1_CH = 145;
    public static final int LOAD0_CH = 146;
    public static final int IDIV_O16 = 147;
    public static final int STOSB_A16 = 148;
    public static final int JNL_O8 = 149;
    public static final int DEC_O8_FLAGS = 150;
    public static final int INC_O8_FLAGS = 151;

    public static final int LOAD0_EAX = 152;
    public static final int RET_FAR_IW_O16_A16 = 153;
    public static final int LOAD1_BL = 154;
    public static final int STORE0_EAX = 155;
    public static final int JNG_O8 = 156;
    public static final int LODSW_A16 = 157;
    public static final int REPE_CMPSB_A16 = 158;
    public static final int ENTER_O16_A16 = 159;
    public static final int LEAVE_O16_A16 = 160;
    public static final int STORE0_MEM_DWORD = 161;

    public static final int ROR_O8_FLAGS = 162;
    public static final int ROR_O8 = 163;
    public static final int POP_O32_A16 = 164;
    public static final int PUSH_O32_A16 = 165;
    public static final int REPNE_SCASB_A16 = 166;
    public static final int SUB_O32_FLAGS = 167;
    public static final int LOAD1_ID = 168;
    public static final int LOAD0_MEM_DWORD = 169;
    public static final int INC_O32_FLAGS = 170;
    public static final int LOAD0_CS = 171;

    public static final int STORE1_DI = 172;
    public static final int LAHF = 173;
    public static final int STORE0_DH = 174;
    public static final int LOAD0_DH = 175;
    public static final int LOAD1_DH = 176;
    public static final int CALL_ABS_O16_A16 = 177;
    public static final int JC_O16 = 178;
    public static final int REP_STOSW_A16 = 179;
    public static final int STORE1_CL = 180;
    public static final int SBB_O8_FLAGS = 181;

    public static final int NEG = 182;
    public static final int NEG_O16_FLAGS = 183;
    public static final int SHL_O8_FLAGS = 184;
    public static final int JNC_O16 = 185;
    public static final int STOSW_A16 = 186;
    public static final int MUL_O8 = 187;
    public static final int DIV_O8 = 188;
    public static final int LOAD1_SP = 189;
    public static final int STORE1_MEM_WORD = 190;
    public static final int BITWISE_FLAGS_O32 = 191;

    public static final int LOAD1_EAX = 192;
    public static final int NOOP = 193;
    public static final int STC = 194;
    public static final int CLC = 195;
    public static final int LOOPZ_CX = 196;
    public static final int SAR_O16_FLAGS = 197;
    public static final int SAR_O16 = 198;
    public static final int LOAD0_EBX = 199;
    public static final int STORE0_EBX = 200;
    public static final int JNS_O8 = 201;

    public static final int ADD_O32_FLAGS = 202;
    public static final int LOAD0_ECX = 203;
    public static final int LOAD0_ESI = 204;
    public static final int STORE0_ECX = 205;
    public static final int STORE0_EDI = 206;
    public static final int STORE0_ESI = 207;
    public static final int LOAD0_EDI = 208;
    public static final int STORE0_EDX = 209;
    public static final int SHR_O32_FLAGS = 210;
    public static final int SHR_O8_FLAGS = 211;

    public static final int RCL_O16_FLAGS = 212;
    public static final int RCL_O16 = 213;
    public static final int JA_O16 = 214;
    public static final int LOAD1_MEM_DWORD = 215;
    public static final int SHL_O32_FLAGS = 216;
    public static final int LOAD1_EDX = 217;
    public static final int STORE1_AL = 218;
    public static final int LOAD1_ECX = 219;
    public static final int LOAD0_EDX = 220;
    public static final int MOVSW_A16 = 221;

    public static final int LOAD1_EBX = 222;
    public static final int LOAD1_EDI = 223;
    public static final int LOAD0_CR0 = 224;
    public static final int STORE0_CR0 = 225;
    public static final int NEG_O8_FLAGS = 226;
    public static final int LGDT_O16 = 227;
    public static final int SMSW = 228;
    public static final int ADDR_ID = 229;
    public static final int OUT_O16 = 230;
    public static final int POPAD_A16 = 231;

    public static final int PUSHAD_A16 = 232;
    public static final int STORE1_SI = 233;
    public static final int STORE1_MEM_BYTE = 234;
    public static final int MUL_O32 = 235;
    public static final int SETC = 236;

    public static final int REP_SUB_O8_FLAGS = 237;
    public static final int REP_SUB_O16_FLAGS = 238;
    public static final int REP_SUB_O32_FLAGS = 239;

    //Operand Microcodes
    public static final int LOAD0_ESP = 240;
    public static final int LOAD0_EBP = 241;

    public static final int LOAD0_FS = 242;
    public static final int LOAD0_GS = 243;

    public static final int LOAD0_CR2 = 244;
    public static final int LOAD0_CR3 = 245;
    public static final int LOAD0_CR4 = 246;

    public static final int LOAD0_DR0 = 247;
    public static final int LOAD0_DR1 = 248;
    public static final int LOAD0_DR2 = 249;
    public static final int LOAD0_DR3 = 250;
    public static final int LOAD0_DR6 = 251;
    public static final int LOAD0_DR7 = 252;

    public static final int LOAD0_MEM_QWORD = 253;
    public static final int STORE0_MEM_QWORD = 254;

    public static final int LOAD0_ID = 255;

⌨️ 快捷键说明

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