mirror of
https://github.com/bitdefender/bddisasm.git
synced 2024-11-13 02:48:59 +00:00
752bc626c4
Fixed VEX decoding in 32 bit mode - vex.vvvv bit 3 is simply ignored. Fixed several FMA instructions decoding (L/W flag should be ignored). Print the 64 bit immediate value in disassembly, instead of the raw immediate (note that the operand always contains the sign-extended, full immediate). XBEGIN always uses 32/64 bit RIP size (0x66 does not affect its size). Decode WBINVD even if it's preceded by 0x66/0xF2 prefixes. Several mnemonic fixes (FXSAVE64, FXRSTOR64, PUSHA/PUSHAD...). Properly decode VPERMIL2* instructions. Fixed SSE register decoding when it is encoded in immediate. Decode SCATTER instructions even though they use the VSIB index as source. Some disp8 fixes (t1s -> t1s8/t1s16). SYSCALL/SYSRET are decoded and executed in 32 bit compat modem, even though SDM states they are invalid. RDPID uses 32/64 bit reg size, never 16. Various other minor tweaks & fixes. Re-generated the test files, and added some more, new tests.
92 lines
8.1 KiB
Plaintext
92 lines
8.1 KiB
Plaintext
RAX = 0x0000000000000000 RCX = 0x0000000000000000 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000000000 RDI = 0x0000000000000000
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200000 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200000 MOV ah, 0xbd
|
|
RAX = 0x000000000000bd00 RCX = 0x0000000000000000 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000000000 RDI = 0x0000000000000000
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200002 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200002 MOV al, 0x12
|
|
RAX = 0x000000000000bd12 RCX = 0x0000000000000000 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000000000 RDI = 0x0000000000000000
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200004 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200004 MOV rcx, 0xffffffffffffffff
|
|
RAX = 0x000000000000bd12 RCX = 0xffffffffffffffff RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000000000 RDI = 0x0000000000000000
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x000000000020000b RFLAGS = 0x0000000000000202
|
|
Emulating: 0x000000000020000b MOV cx, ax
|
|
RAX = 0x000000000000bd12 RCX = 0xffffffffffffbd12 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000000000 RDI = 0x0000000000000000
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x000000000020000e RFLAGS = 0x0000000000000202
|
|
Emulating: 0x000000000020000e MOV ecx, eax
|
|
RAX = 0x000000000000bd12 RCX = 0x000000000000bd12 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000000000 RDI = 0x0000000000000000
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200010 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200010 MOV rbx, rax
|
|
RAX = 0x000000000000bd12 RCX = 0x000000000000bd12 RDX = 0x0000000000000000 RBX = 0x000000000000bd12
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000000000 RDI = 0x0000000000000000
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200013 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200013 MOV ax, 0xffff
|
|
RAX = 0x000000000000ffff RCX = 0x000000000000bd12 RDX = 0x0000000000000000 RBX = 0x000000000000bd12
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000000000 RDI = 0x0000000000000000
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200017 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200017 MOVZX ecx, ax
|
|
RAX = 0x000000000000ffff RCX = 0x000000000000ffff RDX = 0x0000000000000000 RBX = 0x000000000000bd12
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000000000 RDI = 0x0000000000000000
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x000000000020001a RFLAGS = 0x0000000000000202
|
|
Emulating: 0x000000000020001a MOVSX ebx, ax
|
|
RAX = 0x000000000000ffff RCX = 0x000000000000ffff RDX = 0x0000000000000000 RBX = 0x00000000ffffffff
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000000000 RDI = 0x0000000000000000
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x000000000020001d RFLAGS = 0x0000000000000202
|
|
Emulating: 0x000000000020001d MOV eax, 0x12345678
|
|
RAX = 0x0000000012345678 RCX = 0x000000000000ffff RDX = 0x0000000000000000 RBX = 0x00000000ffffffff
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000000000 RDI = 0x0000000000000000
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200022 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200022 MOV ebx, 0x09abcdef
|
|
RAX = 0x0000000012345678 RCX = 0x000000000000ffff RDX = 0x0000000000000000 RBX = 0x0000000009abcdef
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000000000 RDI = 0x0000000000000000
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200027 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200027 XCHG eax, ebx
|
|
RAX = 0x0000000009abcdef RCX = 0x000000000000ffff RDX = 0x0000000000000000 RBX = 0x0000000012345678
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000000000 RDI = 0x0000000000000000
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200028 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200028 MOV qword ptr [rsp], 0xffffffffffffffff
|
|
RAX = 0x0000000009abcdef RCX = 0x000000000000ffff RDX = 0x0000000000000000 RBX = 0x0000000012345678
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000000000 RDI = 0x0000000000000000
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200030 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200030 XCHG qword ptr [rsp], rax
|
|
RAX = 0xffffffffffffffff RCX = 0x000000000000ffff RDX = 0x0000000000000000 RBX = 0x0000000012345678
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000000000 RDI = 0x0000000000000000
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200034 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200034 RETN
|
|
Emulation terminated with status 0x00000002, flags: 0x0, 0 NOPs
|