2016-04-25 50 views
-1

你能解释一下MOV指令的两种用法有什么区别吗?使用MOV指令时分配的值是多少?

mov eax,[namedDataItem] 
mov eax,namedDataItem 

这里namedDataItem是在.data节中定义的命名数据项。

+2

您忘了提及您使用的汇编程序。在一些汇编器中,这两个意思是相同的。 – Jester

+0

我正在使用NASM汇编器 – Kaustav

+0

[nasm需要括号](http://www.nasm.us/xdoc/2.11.08/html/nasmdoc2.html#section-2.2.2)。 – Jester

回答

4

NASM Manual

所采取的规则很简单,就是到存储 位置的内容有任何访问需要地址方括号括起,任何访问 一个变量的地址没有。

这也意味着NASM已经不需要MASM的OFFSET关键字,因为 的MASM代码mov ax,offset bar意味着同样的事情作为NASM的 mov ax,bar

因此,两行之间的区别是:第一个移动CONTENT,第二个移动ADDRESS。