; 64位汇编下指令的一些说明
mov rax, 0ABCDEF0AFFFFFFFFh
mov rax, 0FFFFFFFFh ; rax = 00000000ffffffffh
MOV RAX, 06666h ; 16-63清位
mov rax, 055h ; 8-63清位
.data
myDword dword 800000000h
.code
mov rax, 0ffffffffffffffffh
mov eax, myDword ; rax = 0000000080000000h
.data
myByte byte 55h
myWord word 6666h
.code
mov ax, myWord ; 16-63不受影响
mov al, myByte ; 8-63不受影响
mov ebx, 0ffffffffh
movsxd rax, ebx ; rax = ffffffffffffffffh
.data
myArray word 10, 20, 30, 40
.code
mov rsi, offset myArray ; 64位地址
加法和减法
; add, sub
mov rax, 0ffffffffh
add rax, 1 ; rax = 100000000h
mov rax, 0ffffh ; rax = 000000000000ffffh
mov bx, 1 ;
add ax, bx ; rax = 0h
mov rax, 0ffh
mov bl, 1
add al, bl
mov rax, 0
mov ebx, 1
sub eax, ebx ; rax = 00000000ffffffffh
mov rax, 0
mov bx, 1
sub ax, bx ; rax = 000000000000ffffh
; 间接寻址使用ptr
dec byte ptr [rdi]
inc word ptr [rbx]
inc qword ptr [rsi]
; 间接寻址
.data
array qword 1, 2, 3, 4
.code
mov esi, 3
mov rax, array[esi * 8] ; rax = 4
; 指针
.data
arrayB byte 10h, 20h, 30h, 40h
ptrB qword arrayB
; ptrB qword offset arrayB