你能解释一下MOV指令的两种用法有什么区别吗?
mov eax,[namedDataItem]
mov eax,namedDataItem
此处命名数据项是在 .data 部分中定义的命名数据项。
取
自NASM 手册
规则很简单,对内存内容的任何访问 位置要求地址两边加上方括号,以及任何访问权限 到变量的地址没有。
这也意味着NASM不需要MASM的OFFSET关键字,因为 MASM 代码
mov ax,offset bar
的含义与 NASM 的完全相同mov ax,bar
.
因此,两行之间的区别是:第一行移动内容,第二行移动地址。