1
0
mirror of https://github.com/bitdefender/bddisasm.git synced 2024-12-23 06:28:13 +00:00
bddisasm/bddisasm_test/x86/basic/prefixes_64.asm
BITDEFENDER\vlutas 9ba1e6a2f9 Added support for new Intel instructions, per Intel ISA extensions document #319433-046 (September 2022): PREFETCHITI, RAO-INT, CMPCCXADD, WRMSRNS, MSRLIST, AMX-FP16, AVX-IFMA, AVX-NE-CONVERT, AVX-VNNI-INT8.
Multiple minor fixes to existing instructions.
Moved x86 decoding tests in a separate directory & improved the test script.
2022-10-04 12:22:59 +03:00

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