括号包围寄存器是什么意思?

3

一个寄存器在操作中被括号包围,这样做有什么不同呢?

例如:

movl (%edx), %eax

对比

movl %edx, %eax

Thank you in advance!


请看这个链接:https://stackoverflow.com/questions/59629710/difference-between-sp-and-sp-in-assembly - undefined
这是间接寻址模式。在这种模式下,存储在寄存器%edx中的值将被视为内存地址,并将该地址中存储的值复制到%eax寄存器中。 - undefined
2个回答

6
意思是“存储在寄存器中的地址所对应的内存”。

1

将数据从一个寄存器移动到另一个寄存器,从edx到eax。

movl %edx, %eax

从eax移动到edx中包含的内存地址。
从edx中包含的内存地址移动到eax。
movl (%edx), %eax

我能为您提供帮助,以下是翻译结果:

如何自行查找:搜索“x86汇编语法”,此页面是其中之一。


2
你确定你理解对了吗?AT&T语法是mov source, destination。所以你的第一个例子会将edx寄存器中的值移动到eax寄存器中。我假设你使用的是AT&T语法,因为Intel语法不会在寄存器前加上%前缀。 - undefined
1
@JimMischel 对,谢谢您的纠正。 - undefined
1
他正在要求GAS(ATT)语法,并且你给他传递了MASM的链接。语法是不同的。 - undefined
这个链接是“搜索结果之一”。这个想法是让人们在提问之前先进行搜索,这样他们就可以独立地找到答案,而不需要等待现成的答案。如果有更好的链接,请随时发布。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接