寄存器作用 | 64-bit register | Lower 32 bits | Lower 16 bits | Lower 8 bits |
---|---|---|---|---|
累加器 |
rax |
eax |
ax |
al |
基址寄存器 |
rbx |
ebx |
bx |
bl |
计数器 |
rcx |
ecx |
cx |
cl |
rdx |
edx |
dx |
dl | |
存放源指针 |
rsi |
esi |
si |
sil |
存放目的指针 |
rdi |
edi |
di |
dil |
存放栈底指针 |
rbp |
ebp |
bp |
bpl |
存放栈顶指针 |
rsp |
esp |
sp |
spl |
r8 |
r8d |
r8w |
r8b | |
r9 |
r9d |
r9w |
r9b | |
r10 |
r10d |
r10w |
r10b | |
r11 |
r11d |
r11w |
r11b | |
r12 |
r12d |
r12w |
r12b | |
r13 |
r13d |
r13w |
r13b | |
r14 |
r14d |
r14w |
r14b | |
r15 |
r15d |
r15w |
r15b |
例如:movq、movl、movw、movb等
注意,使用的后缀一定要和寄存器相对应,例如 movl $0, %eax; movq $0, %rax; movb $0, %al
1. mov+suffix source, dest
通用的数据传送指令:
2. nop
空指令
3. cmov+flags source, dest
条件传送指令。mov指令有时会发生在特定的条件下,为了避免使用jmp指令,因此cmov被引入。
例如cmova代表“大于”,那么cmova %eax, %ebx 表示当eax存放的值大于ebx存放的值时,才会将exa中的值传送到ebx中。
原文:http://www.cnblogs.com/zhangjing327/p/3662766.html