mov
# prepare rax rbx
movq $1, %rax
movq $2, %rbx
# mov
movq %rax, %rbx # copy content in rax to rbx
movq (%rax), %rbx # copy content in memory whose address is recorded in rax to rbx
movq %rax, (%rbx) # copy content in rbx to memory whose address is recorded in rbx
# movq (%rax), (%rbx) # not allowed: number of operand in memory location at most to one
# leaq
leaq (%rax), %rbx # copy memory address of a memory whose address is recorded in rax To rbx
leaq 8(%rsp), %rbp # copy memory address of a memory whose address is value recorded in rax plus 8 To rbx
直接拷贝和解引用
mov %rsp, %rbp #改寄存器的内容
mov %rsp, (%rbp) # de-reference 改寄存器指向的内存
括号等同于 C 中 *
leaq
leaq: Load Effective Address Quadwards
将内存偏移拷贝
lea 0x8(%rsp), %rbp
等同于
mov %rsp, %rbp
add $0x8, %rbp
括号在 mov 和 lea 中含义不同
lea (%rsp), %rbp
等同于
mov %rsp, %rbp