mirror of
https://github.com/bitdefender/bddisasm.git
synced 2024-11-30 19:38:08 +00:00
9ba1e6a2f9
Multiple minor fixes to existing instructions. Moved x86 decoding tests in a separate directory & improved the test script.
91 lines
4.7 KiB
NASM
91 lines
4.7 KiB
NASM
bits 64
|
|
|
|
; Rex, 0x66.
|
|
db 0x33, 0xC0 ; xor eax, eax
|
|
db 0xF3, 0x33, 0xC0 ; xor eax, eax
|
|
db 0xF2, 0x33, 0xC0 ; xor eax, eax
|
|
db 0x67, 0x33, 0xC0 ; xor eax, eax
|
|
db 0x66, 0x33, 0xC0 ; xor ax, ax
|
|
db 0x48, 0x33, 0xC0 ; xor rax, rax
|
|
db 0x66, 0x48, 0x33, 0xC0 ; xor rax, rax
|
|
db 0x48, 0x66, 0x33, 0xC0 ; xor ax, ax
|
|
db 0x48, 0xF3, 0x33, 0xC0 ; xor eax, eax
|
|
db 0xF3, 0x48, 0x33, 0xC0 ; xor rax, rax
|
|
db 0x48, 0x48, 0x33, 0xC0 ; xor rax, rax
|
|
db 0x48, 0x40, 0x33, 0xC0 ; xor eax, eax
|
|
db 0x4A, 0x33, 0xC0 ; xor rax, rax
|
|
|
|
; 0x67.
|
|
db 0x31, 0x00 ; xor [rax], eax
|
|
db 0x67, 0x31, 0x00 ; xor [eax], eax
|
|
db 0x66, 0x67, 0x31, 0x00 ; xor [eax], ax
|
|
db 0x48, 0x67, 0x31, 0x00 ; xor [eax], eax
|
|
db 0x67, 0x48, 0x31, 0x00 ; xor [eax], rax
|
|
|
|
db 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; mov eax, [0x0000000000000000]
|
|
db 0x67, 0xA1, 0x00, 0x00, 0x00, 0x00 ; mov eax, [0x00000000]
|
|
db 0x66, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; mov ax, [0x0000000000000000]
|
|
db 0x66, 0x67, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; mov ax, [0x00000000]
|
|
db 0x48, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; mov rax, [0x0000000000000000]
|
|
db 0x48, 0x67, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; mov rax, [0x00000000]
|
|
|
|
db 0x66, 0xE3, 0x00 ; jrcxz $+3
|
|
db 0x48, 0xE3, 0x00 ; jrcxz $+3
|
|
db 0x67, 0xE3, 0x00 ; jecxz $+3
|
|
|
|
db 0x67, 0xA4 ; movsb
|
|
db 0x66, 0xA4 ; movsb
|
|
|
|
; Rep, repz, repnz.
|
|
db 0xF3, 0xAA ; rep stosb
|
|
db 0xF2, 0xAA ; repnz stosb
|
|
db 0xF3, 0xAE ; repz scasb
|
|
db 0xF2, 0xAE ; repnz scasb
|
|
db 0xF3, 0xF2, 0xAE ; repnz scasb
|
|
db 0xF2, 0xF3, 0xAE ; repz scasb
|
|
|
|
; Extension prefixes.
|
|
db 0x0F, 0x10, 0xC0 ; movups xmm0, xmm0
|
|
db 0x66, 0x0F, 0x10, 0xC0 ; movupd xmm0, xmm0
|
|
db 0x66, 0x66, 0x0F, 0x10, 0xC0 ; movupd xmm0, xmm0
|
|
db 0xF3, 0x0F, 0x10, 0xC0 ; movss xmm0, xmm0
|
|
db 0xF3, 0xF3, 0x0F, 0x10, 0xC0 ; movss xmm0, xmm0
|
|
db 0xF2, 0x0F, 0x10, 0xC0 ; movsd xmm0, xmm0
|
|
db 0xF2, 0xF2, 0x0F, 0x10, 0xC0 ; movsd xmm0, xmm0
|
|
|
|
db 0x66, 0xF2, 0xF3, 0x0F, 0x10, 0xC0 ; movss xmm0, xmm0
|
|
db 0x66, 0xF3, 0xF2, 0x0F, 0x10, 0xC0 ; movsd xmm0, xmm0
|
|
db 0xF2, 0xF3, 0x66, 0x0F, 0x10, 0xC0 ; movss xmm0, xmm0
|
|
db 0xF2, 0x66, 0xF3, 0x0F, 0x10, 0xC0 ; movss xmm0, xmm0
|
|
db 0xF3, 0xF2, 0x66, 0x0F, 0x10, 0xC0 ; movsd xmm0, xmm0
|
|
db 0xF3, 0x66, 0xF2, 0x0F, 0x10, 0xC0 ; movsd xmm0, xmm0
|
|
|
|
; Lock, xacquire, xrelease.
|
|
db 0xF3, 0x31, 0x00 ; xor [rax], eax
|
|
db 0xF2, 0x31, 0x00 ; xor [rax], eax
|
|
db 0xF0, 0x31, 0x00 ; lock xor [rax], eax
|
|
db 0xF0, 0x48, 0x31, 0x00 ; lock xor [rax], rax
|
|
db 0x48, 0xF0, 0x31, 0x00 ; lock xor [rax], eax
|
|
db 0xF2, 0xF0, 0x31, 0x00 ; lock xacquire xor [rax], eax
|
|
db 0xF0, 0xF2, 0x31, 0x00 ; lock xacquire xor [rax], eax
|
|
db 0xF3, 0xF0, 0x31, 0x00 ; lock xrelease xor [rax], eax
|
|
db 0xF0, 0xF3, 0x31, 0x00 ; lock xrelease xor [rax], eax
|
|
db 0xF2, 0xF3, 0xF0, 0x31, 0x00 ; lock xrelease xor [rax], eax
|
|
db 0xF3, 0xF2, 0xF0, 0x31, 0x00 ; lock xacquire xor [rax], eax
|
|
|
|
; Segment prefixes.
|
|
db 0x26, 0x31, 0x00 ; xor [rax], eax
|
|
db 0x2E, 0X31, 0x00 ; xor [rax], eax
|
|
db 0x36, 0X31, 0x00 ; xor [rax], eax
|
|
db 0x3E, 0X31, 0x00 ; xor [rax], eax
|
|
db 0x64, 0X31, 0x00 ; xor fs:[rax], eax
|
|
db 0x65, 0x31, 0x00 ; xor gs:[rax], eax
|
|
db 0x64, 0x65, 0x31, 0x00 ; xor gs:[rax], eax
|
|
db 0x65, 0x64, 0x31, 0x00 ; xor fs:[rax], eax
|
|
|
|
; Branch hints.
|
|
db 0x2E, 0x72, 0x00 ; bhnt jc $+3
|
|
db 0x3E, 0x72, 0x00 ; bht jc $+3
|
|
|
|
; Bound prefix.
|
|
db 0xF2, 0xE8, 0x00, 0x00, 0x00, 0x00 ; bnd call $+6 |