寄存器周围的括号是啥意思? [复制]

Posted

技术标签:

【中文标题】寄存器周围的括号是啥意思? [复制]【英文标题】:What do parentheses surrounding a register mean? [duplicate]寄存器周围的括号是什么意思? [复制] 【发布时间】:2020-04-03 02:42:47 【问题描述】:

寄存器在操作中用括号括起来有什么区别?

例如:

movl (%edx), %eax

movl %edx, %eax

提前谢谢你!

【问题讨论】:

看看这个:***.com/questions/59629710/… 间接寻址方式。其中寄存器 %edx 中存储的值将被视为内存地址,并且该地址中存储的值将被复制到 %eax。 【参考方案1】:

表示“存储在寄存器中的地址处的内存”。

【讨论】:

【参考方案2】:

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

movl %edx, %eax

从 eax 移动到 edx 中包含的内存地址。 从 edx 中包含的内存地址移动到 eax。

movl (%edx), %eax

如何自行查找:搜索“x86 汇编语法” This page 是结果之一。

【讨论】:

你确定你没看错吗? AT&T 语法是mov source, destination。因此,您的第一个示例会将值从edx 寄存器移动到eax 寄存器。我假设 AT&T 语法,因为 Intel 语法不会在寄存器前面加上 % @JimMischel 对,感谢您的指正。

以上是关于寄存器周围的括号是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

对象/函数/类声明周围的括号是啥意思? [复制]

SQL中的列名上加中括号是啥意思

语法 - 变量声明周围的方括号是啥意思[重复]

SQL Server 中列名周围的括号是啥意思?

函数名周围的括号是啥意思?

在寄存器前加星是啥意思?