汇编语言中MOV指令的使用规则及常见场景用法疑问
x86-64 汇编
mov 指令用法解答 以下说明默认基于NASM汇编器语法,如果你使用的是GNU汇编器(GAS)语法规则会存在差异:
mov rax, 100:你的理解正确,这是立即数寻址,直接把常量100存入rax寄存器,全程不需要访问内存。mov rax, a:这里是把变量a对应的内存地址存入rax寄存器,不会读取a地址中存储的实际数值,你可以理解为把a当成一个表示地址的常量来赋值。mov rax, [a]:和上一条对应,方括号是x86汇编中访问内存的标记,这条指令的含义是先拿到a对应的内存地址,再读取该地址中存储的实际数值写入rax,也就是你理解的「取a的值」。mov [a], rax:你的理解正确,把rax寄存器中存储的数值,写入a对应的内存地址,完成对变量a的赋值操作。mov rax, rbx:你的理解正确,属于寄存器寻址,直接把rbx寄存器的数值复制到rax寄存器,全程不涉及内存访问,执行效率最高。
内容的提问来源于stack exchange,提问作者Stefhanie Jaramilo
相关产品推荐
相关产品推荐

