You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bddisasm/bddisasm_test/basic/prefixes_64.asm

91 lines
4.7 KiB

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