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/address_64.asm

81 lines
1.9 KiB

bits 64
;
; 64 bit addressing
;
; Basic indirect addressing, using register.
mov eax, dword [rcx]
mov rax, qword [r15]
; Base + offset 1B
mov eax, dword [rcx + 0x7F]
mov rax, qword [r15 - 0x7F]
; Base + offset 4B
mov eax, dword [rcx + 0x7FFFFFFF]
mov rax, qword [r15 - 0x7FFFFFFF]
; Base + index
mov eax, dword [rcx + r8]
mov rax, qword [r15 + rdi]
; Base + index * scale
mov eax, dword [rcx + r8 * 4]
mov rax, qword [r15 + rdi * 8]
; Base + index * scale + displacement
mov eax, dword [rcx + r8 * 4 + 0x1000]
mov rax, qword [r15 + rdi * 8 - 0x1000]
; RIP-relative
mov eax, dword [rel $]
mov rax, qword [rel $]
; RSP only
mov eax, dword [rsp]
mov rax, qword [rsp + 0x1000]
;
; 32 bit addressing
;
; Basic indirect addressing, using register.
mov eax, dword [ecx]
mov rax, qword [r15d]
; Base + offset 1B
mov eax, dword [ecx + 0x7F]
mov rax, qword [r15d - 0x7F]
; Base + offset 4B
mov eax, dword [ecx + 0x7FFFFFFF]
mov rax, qword [r15d - 0x7FFFFFFF]
; Base + index
mov eax, dword [ecx + r8d]
mov rax, qword [r15d + edi]
; Base + index * scale
mov eax, dword [ecx + r8d * 4]
mov rax, qword [r15d + edi * 8]
; Base + index * scale + displacement
mov eax, dword [ecx + r8d * 4 + 0x1000]
mov rax, qword [r15d + edi * 8 - 0x1000]
; ESP only
mov eax, dword [esp]
mov rax, qword [esp + 0x1000]
;
; Segment prefix.
;
mov rax, qword [gs:0x30]
mov rax, qword [gs:rcx]
mov rax, qword [gs:rcx + r15]
mov rax, qword [gs:rcx + r15 * 2]
mov rax, qword [gs:rcx + r15 * 2 + 0x1000]