Overview Package Class Use Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

dioscuri.module.cpu32
Class Virtual8086ModeUBlock

java.lang.Object
 extended by dioscuri.module.cpu32.Virtual8086ModeUBlock
All Implemented Interfaces:
CodeBlock, MicrocodeSet, Virtual8086ModeCodeBlock

public class Virtual8086ModeUBlock
extends java.lang.Object
implements Virtual8086ModeCodeBlock, MicrocodeSet

Author:
Bram Lohman, Bart Kiers

Field Summary
protected int[] cumulativeX86Length
protected int[] microcodes
Fields inherited from interface dioscuri.module.cpu32.MicrocodeSet
AAA, AAD, AAM, AAS, ADC, ADC_O16_FLAGS, ADC_O32_FLAGS, ADC_O8_FLAGS, ADD, ADD_O16_FLAGS, ADD_O32_FLAGS, ADD_O8_FLAGS, ADDR_2EAX, ADDR_2EBP, ADDR_2EBX, ADDR_2ECX, ADDR_2EDI, ADDR_2EDX, ADDR_2ESI, ADDR_2ESP, ADDR_2REG1, ADDR_4EAX, ADDR_4EBP, ADDR_4EBX, ADDR_4ECX, ADDR_4EDI, ADDR_4EDX, ADDR_4ESI, ADDR_4ESP, ADDR_4REG1, ADDR_8EAX, ADDR_8EBP, ADDR_8EBX, ADDR_8ECX, ADDR_8EDI, ADDR_8EDX, ADDR_8ESI, ADDR_8ESP, ADDR_8REG1, ADDR_AX, ADDR_BP, ADDR_BX, ADDR_CX, ADDR_DI, ADDR_DX, ADDR_EAX, ADDR_EBP, ADDR_EBX, ADDR_ECX, ADDR_EDI, ADDR_EDX, ADDR_ESI, ADDR_ESP, ADDR_IB, ADDR_ID, ADDR_IW, ADDR_MASK16, ADDR_REG1, ADDR_SI, ADDR_SP, ADDR_uAL, AND, BITWISE_FLAGS_O16, BITWISE_FLAGS_O32, BITWISE_FLAGS_O8, BOUND_O16, BOUND_O32, BSF, BSR, BSWAP, BT_MEM, BT_O16, BT_O32, BTC_MEM, BTC_O16, BTC_O32, BTR_MEM, BTR_O16, BTR_O32, BTS_MEM, BTS_O16, BTS_O32, CALL_ABS_O16_A16, CALL_ABS_O16_A32, CALL_ABS_O32_A16, CALL_ABS_O32_A32, CALL_FAR_O16_A16, CALL_FAR_O16_A32, CALL_FAR_O32_A16, CALL_FAR_O32_A32, CALL_O16_A16, CALL_O16_A32, CALL_O32_A16, CALL_O32_A32, CDQ, CLC, CLD, CLI, CLTS, CMC, CMOVA, CMOVC, CMOVG, CMOVL, CMOVNA, CMOVNC, CMOVNG, CMOVNL, CMOVNO, CMOVNP, CMOVNS, CMOVNZ, CMOVO, CMOVP, CMOVS, CMOVZ, CMPSB_A16, CMPSB_A32, CMPSD_A16, CMPSD_A32, CMPSW_A16, CMPSW_A32, CMPXCHG, CMPXCHG_O16_FLAGS, CMPXCHG_O32_FLAGS, CMPXCHG_O8_FLAGS, CMPXCHG8B, CPUID, CWD, DAA, DAS, DEC, DEC_O16_FLAGS, DEC_O32_FLAGS, DEC_O8_FLAGS, DIV_O16, DIV_O32, DIV_O8, EIP_UPDATE, ENTER_O16_A16, ENTER_O16_A32, ENTER_O32_A16, ENTER_O32_A32, F2XM1, FABS, FADD, FBCD2F, FCHECK0, FCHECK1, FCHOP, FCHS, FCLEX, FCMOVB, FCMOVBE, FCMOVE, FCMOVNB, FCMOVNBE, FCMOVNE, FCMOVNU, FCMOVU, FCOM, FCOMI, FCOS, FDECSTP, FDIV, FF2BCD, FFREE, FINCSTP, FINIT, FLDENV_14, FLDENV_28, FLOAD0_1, FLOAD0_L2E, FLOAD0_L2TEN, FLOAD0_LN2, FLOAD0_LOG2, FLOAD0_MEM_DOUBLE, FLOAD0_MEM_EXTENDED, FLOAD0_MEM_SINGLE, FLOAD0_PI, FLOAD0_POS0, FLOAD0_REG0, FLOAD0_REG0L, FLOAD0_ST0, FLOAD0_STN, FLOAD1_MEM_DOUBLE, FLOAD1_MEM_EXTENDED, FLOAD1_MEM_SINGLE, FLOAD1_POS0, FLOAD1_REG0, FLOAD1_REG0L, FLOAD1_ST0, FLOAD1_STN, FMUL, FPATAN, FPOP, FPREM, FPREM1, FPTAN, FPUSH, FRNDINT, FRSTOR_108, FRSTOR_94, FSAVE_108, FSAVE_94, FSCALE, FSIN, FSINCOS, FSQRT, FSTENV_14, FSTENV_28, FSTORE0_MEM_DOUBLE, FSTORE0_MEM_EXTENDED, FSTORE0_MEM_SINGLE, FSTORE0_REG0, FSTORE0_ST0, FSTORE0_STN, FSTORE1_MEM_DOUBLE, FSTORE1_MEM_EXTENDED, FSTORE1_MEM_SINGLE, FSTORE1_REG0, FSTORE1_ST0, FSTORE1_STN, FSUB, FUCOM, FUCOMI, FWAIT, FXAM, FXTRACT, FYL2X, FYL2XP1, HALT, IDIV_O16, IDIV_O32, IDIV_O8, IMUL_O16, IMUL_O32, IMULA_O16, IMULA_O32, IMULA_O8, IN_O16, IN_O32, IN_O8, INC, INC_O16_FLAGS, INC_O32_FLAGS, INC_O8_FLAGS, INSB_A16, INSB_A32, INSD_A16, INSD_A32, INSW_A16, INSW_A32, INT_O16_A16, INT_O16_A32, INT_O32_A16, INT_O32_A32, INT3_O16_A16, INT3_O16_A32, INT3_O32_A16, INT3_O32_A32, INTO_O16_A16, INTO_O16_A32, INTO_O32_A16, INTO_O32_A32, INVLPG, IRET_O16_A16, IRET_O16_A32, IRET_O32_A16, IRET_O32_A32, JA_O16, JA_O32, JA_O8, JC_O16, JC_O32, JC_O8, JCXZ, JECXZ, JG_O16, JG_O32, JG_O8, JL_O16, JL_O32, JL_O8, JNA_O16, JNA_O32, JNA_O8, JNC_O16, JNC_O32, JNC_O8, JNG_O16, JNG_O32, JNG_O8, JNL_O16, JNL_O32, JNL_O8, JNO_O16, JNO_O32, JNO_O8, JNP_O16, JNP_O32, JNP_O8, JNS_O16, JNS_O32, JNS_O8, JNZ_O16, JNZ_O32, JNZ_O8, JO_O16, JO_O32, JO_O8, JP_O16, JP_O32, JP_O8, JS_O16, JS_O32, JS_O8, JUMP_ABS_O16, JUMP_ABS_O32, JUMP_FAR_O16, JUMP_FAR_O32, JUMP_O16, JUMP_O32, JUMP_O8, JZ_O16, JZ_O32, JZ_O8, LAHF, LAR_O16, LAR_O32, LEAVE_O16_A16, LEAVE_O16_A32, LEAVE_O32_A16, LEAVE_O32_A32, LGDT_O16, LGDT_O32, LIDT_O16, LIDT_O32, LLDT, LMSW, LOAD_SEG_CS, LOAD_SEG_DS, LOAD_SEG_ES, LOAD_SEG_FS, LOAD_SEG_GS, LOAD_SEG_SS, LOAD0_ADDR, LOAD0_AH, LOAD0_AL, LOAD0_AX, LOAD0_BH, LOAD0_BL, LOAD0_BP, LOAD0_BX, LOAD0_CH, LOAD0_CL, LOAD0_CR0, LOAD0_CR2, LOAD0_CR3, LOAD0_CR4, LOAD0_CS, LOAD0_CX, LOAD0_DH, LOAD0_DI, LOAD0_DL, LOAD0_DR0, LOAD0_DR1, LOAD0_DR2, LOAD0_DR3, LOAD0_DR6, LOAD0_DR7, LOAD0_DS, LOAD0_DX, LOAD0_EAX, LOAD0_EBP, LOAD0_EBX, LOAD0_ECX, LOAD0_EDI, LOAD0_EDX, LOAD0_EFLAGS, LOAD0_ES, LOAD0_ESI, LOAD0_ESP, LOAD0_FLAGS, LOAD0_FPUCW, LOAD0_FPUSW, LOAD0_FS, LOAD0_GS, LOAD0_IB, LOAD0_ID, LOAD0_IW, LOAD0_MEM_BYTE, LOAD0_MEM_DWORD, LOAD0_MEM_QWORD, LOAD0_MEM_WORD, LOAD0_SI, LOAD0_SP, LOAD0_SS, LOAD1_AH, LOAD1_AL, LOAD1_AX, LOAD1_BH, LOAD1_BL, LOAD1_BP, LOAD1_BX, LOAD1_CH, LOAD1_CL, LOAD1_CX, LOAD1_DH, LOAD1_DI, LOAD1_DL, LOAD1_DX, LOAD1_EAX, LOAD1_EBP, LOAD1_EBX, LOAD1_ECX, LOAD1_EDI, LOAD1_EDX, LOAD1_ESI, LOAD1_ESP, LOAD1_IB, LOAD1_ID, LOAD1_IW, LOAD1_MEM_BYTE, LOAD1_MEM_DWORD, LOAD1_MEM_WORD, LOAD1_SI, LOAD1_SP, LOAD2_AL, LOAD2_AX, LOAD2_CL, LOAD2_EAX, LOAD2_IB, LODSB_A16, LODSB_A32, LODSD_A16, LODSD_A32, LODSW_A16, LODSW_A32, LOOP_CX, LOOP_ECX, LOOPNZ_CX, LOOPNZ_ECX, LOOPZ_CX, LOOPZ_ECX, LSL_O16, LSL_O32, LTR, MEM_RESET, MICROCODE_LIMIT, MOVSB_A16, MOVSB_A32, MOVSD_A16, MOVSD_A32, MOVSW_A16, MOVSW_A32, MUL_O16, MUL_O32, MUL_O8, NEG, NEG_O16_FLAGS, NEG_O32_FLAGS, NEG_O8_FLAGS, NOOP, NOT, OR, OUT_O16, OUT_O32, OUT_O8, OUTSB_A16, OUTSB_A32, OUTSD_A16, OUTSD_A32, OUTSW_A16, OUTSW_A32, POP_O16_A16, POP_O16_A32, POP_O32_A16, POP_O32_A32, POPA_A16, POPA_A32, POPAD_A16, POPAD_A32, POPF_O16_A16, POPF_O16_A32, POPF_O32_A16, POPF_O32_A32, PUSH_O16_A16, PUSH_O16_A32, PUSH_O32_A16, PUSH_O32_A32, PUSHA_A16, PUSHA_A32, PUSHAD_A16, PUSHAD_A32, PUSHF_O16_A16, PUSHF_O16_A32, PUSHF_O32_A16, PUSHF_O32_A32, RCL_O16, RCL_O16_FLAGS, RCL_O32, RCL_O32_FLAGS, RCL_O8, RCL_O8_FLAGS, RCR_O16, RCR_O16_FLAGS, RCR_O32, RCR_O32_FLAGS, RCR_O8, RCR_O8_FLAGS, RDMSR, RDTSC, REP_INSB_A16, REP_INSB_A32, REP_INSD_A16, REP_INSD_A32, REP_INSW_A16, REP_INSW_A32, REP_LODSB_A16, REP_LODSB_A32, REP_LODSD_A16, REP_LODSD_A32, REP_LODSW_A16, REP_LODSW_A32, REP_MOVSB_A16, REP_MOVSB_A32, REP_MOVSD_A16, REP_MOVSD_A32, REP_MOVSW_A16, REP_MOVSW_A32, REP_OUTSB_A16, REP_OUTSB_A32, REP_OUTSD_A16, REP_OUTSD_A32, REP_OUTSW_A16, REP_OUTSW_A32, REP_STOSB_A16, REP_STOSB_A32, REP_STOSD_A16, REP_STOSD_A32, REP_STOSW_A16, REP_STOSW_A32, REP_SUB_O16_FLAGS, REP_SUB_O32_FLAGS, REP_SUB_O8_FLAGS, REPE_CMPSB_A16, REPE_CMPSB_A32, REPE_CMPSD_A16, REPE_CMPSD_A32, REPE_CMPSW_A16, REPE_CMPSW_A32, REPE_SCASB_A16, REPE_SCASB_A32, REPE_SCASD_A16, REPE_SCASD_A32, REPE_SCASW_A16, REPE_SCASW_A32, REPNE_CMPSB_A16, REPNE_CMPSB_A32, REPNE_CMPSD_A16, REPNE_CMPSD_A32, REPNE_CMPSW_A16, REPNE_CMPSW_A32, REPNE_SCASB_A16, REPNE_SCASB_A32, REPNE_SCASD_A16, REPNE_SCASD_A32, REPNE_SCASW_A16, REPNE_SCASW_A32, RET_FAR_IW_O16_A16, RET_FAR_IW_O16_A32, RET_FAR_IW_O32_A16, RET_FAR_IW_O32_A32, RET_FAR_O16_A16, RET_FAR_O16_A32, RET_FAR_O32_A16, RET_FAR_O32_A32, RET_IW_O16_A16, RET_IW_O16_A32, RET_IW_O32_A16, RET_IW_O32_A32, RET_O16_A16, RET_O16_A32, RET_O32_A16, RET_O32_A32, ROL_O16, ROL_O16_FLAGS, ROL_O32, ROL_O32_FLAGS, ROL_O8, ROL_O8_FLAGS, ROR_O16, ROR_O16_FLAGS, ROR_O32, ROR_O32_FLAGS, ROR_O8, ROR_O8_FLAGS, SAHF, SAR_O16, SAR_O16_FLAGS, SAR_O32, SAR_O32_FLAGS, SAR_O8, SAR_O8_FLAGS, SBB, SBB_O16_FLAGS, SBB_O32_FLAGS, SBB_O8_FLAGS, SCASB_A16, SCASB_A32, SCASD_A16, SCASD_A32, SCASW_A16, SCASW_A32, SETA, SETC, SETG, SETL, SETNA, SETNC, SETNG, SETNL, SETNO, SETNP, SETNS, SETNZ, SETO, SETP, SETS, SETZ, SGDT_O16, SGDT_O32, SHL, SHL_O16_FLAGS, SHL_O32_FLAGS, SHL_O8_FLAGS, SHLD_O16, SHLD_O32, SHR, SHR_O16_FLAGS, SHR_O32_FLAGS, SHR_O8_FLAGS, SHRD_O16, SHRD_O32, SIDT_O16, SIDT_O32, SIGN_EXTEND_16_32, SIGN_EXTEND_8_16, SIGN_EXTEND_8_32, SLDT, SMSW, STC, STD, STI, STORE0_AH, STORE0_AL, STORE0_AX, STORE0_BH, STORE0_BL, STORE0_BP, STORE0_BX, STORE0_CH, STORE0_CL, STORE0_CR0, STORE0_CR2, STORE0_CR3, STORE0_CR4, STORE0_CS, STORE0_CX, STORE0_DH, STORE0_DI, STORE0_DL, STORE0_DR0, STORE0_DR1, STORE0_DR2, STORE0_DR3, STORE0_DR6, STORE0_DR7, STORE0_DS, STORE0_DX, STORE0_EAX, STORE0_EBP, STORE0_EBX, STORE0_ECX, STORE0_EDI, STORE0_EDX, STORE0_EFLAGS, STORE0_ES, STORE0_ESI, STORE0_ESP, STORE0_FLAGS, STORE0_FPUCW, STORE0_FPUSW, STORE0_FS, STORE0_GS, STORE0_MEM_BYTE, STORE0_MEM_DWORD, STORE0_MEM_QWORD, STORE0_MEM_WORD, STORE0_SI, STORE0_SP, STORE0_SS, STORE1_AH, STORE1_AL, STORE1_AX, STORE1_BH, STORE1_BL, STORE1_BP, STORE1_BX, STORE1_CH, STORE1_CL, STORE1_CS, STORE1_CX, STORE1_DH, STORE1_DI, STORE1_DL, STORE1_DS, STORE1_DX, STORE1_EAX, STORE1_EBP, STORE1_EBX, STORE1_ECX, STORE1_EDI, STORE1_EDX, STORE1_ES, STORE1_ESI, STORE1_ESP, STORE1_FS, STORE1_GS, STORE1_MEM_BYTE, STORE1_MEM_DWORD, STORE1_MEM_WORD, STORE1_SI, STORE1_SP, STORE1_SS, STOSB_A16, STOSB_A32, STOSD_A16, STOSD_A32, STOSW_A16, STOSW_A32, STR, SUB, SUB_O16_FLAGS, SUB_O32_FLAGS, SUB_O8_FLAGS, SYSENTER, SYSEXIT, UNDEFINED, VERR, VERW, WRMSR, XOR
Constructor Summary
Virtual8086ModeUBlock()
Virtual8086ModeUBlock(int[] microcodes, int[] x86lengths)
Method Summary
int execute(Processor cpu)
Returns the number of equivalent x86 instructions executed.
InstructionSource getAsInstructionSource()
java.lang.String getDisplayString()
int[] getMicrocodes()
int getX86Count()
int getX86Length()
boolean handleMemoryRegionChange(int startAddress, int endAddress)
java.lang.String toString()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Field Detail

microcodes

protected int[] microcodes

cumulativeX86Length

protected int[] cumulativeX86Length
Constructor Detail

Virtual8086ModeUBlock

public Virtual8086ModeUBlock()

Virtual8086ModeUBlock

public Virtual8086ModeUBlock(int[] microcodes,
 int[] x86lengths)
Parameters:
microcodes -
x86lengths -
Method Detail

getX86Length

public int getX86Length()
Specified by:
getX86Length in interface CodeBlock
Returns:
-

getX86Count

public int getX86Count()
Specified by:
getX86Count in interface CodeBlock
Returns:
-

getDisplayString

public java.lang.String getDisplayString()
Specified by:
getDisplayString in interface CodeBlock
Returns:
-

handleMemoryRegionChange

public boolean handleMemoryRegionChange(int startAddress,
 int endAddress)
Specified by:
handleMemoryRegionChange in interface CodeBlock
Parameters:
startAddress -
endAddress -
Returns:
-

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getAsInstructionSource

public InstructionSource getAsInstructionSource()
Returns:
-

getMicrocodes

public int[] getMicrocodes()
Returns:
-

execute

public int execute(Processor cpu)
Description copied from interface: CodeBlock
Returns the number of equivalent x86 instructions executed. Negative results indicate an error

Specified by:
execute in interface CodeBlock
Returns:
the number of equivalent x86 instructions executed. Negative results indicate an error

Overview Package Class Use Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

AltStyle によって変換されたページ (->オリジナル) /