【发布时间】:2020-04-03 02:42:47
【问题描述】:
寄存器在操作中用括号括起来有什么区别?
例如:
movl (%edx), %eax
对
movl %edx, %eax
提前谢谢你!
【问题讨论】:
-
间接寻址方式。其中寄存器 %edx 中存储的值将被视为内存地址,并且该地址中存储的值将被复制到 %eax。
标签: assembly x86 cpu-registers att addressing-mode
寄存器在操作中用括号括起来有什么区别?
例如:
movl (%edx), %eax
对
movl %edx, %eax
提前谢谢你!
【问题讨论】:
标签: assembly x86 cpu-registers att addressing-mode
表示“存储在寄存器中的地址处的内存”。
【讨论】:
从一个寄存器移动到另一个,eax 到 edx edx 到 eax。
movl %edx, %eax
从 eax 移动到 edx 中包含的内存地址。
从 edx 中包含的内存地址移动到 eax。
movl (%edx), %eax
如何自行查找:搜索“x86 汇编语法” This page 是结果之一。
【讨论】:
mov source, destination。因此,您的第一个示例会将值从edx 寄存器移动到eax 寄存器。我假设 AT&T 语法,因为 Intel 语法不会在寄存器前面加上 %。