我正在尝试了解内存间接寻址在使用 AT&T 语法的汇编语言中究竟是如何工作的。
movl (%eax), %ebx
movl %eax, (%ebx)
这是一个类似的问题,解释了 memory indirect addressing
这是我的理解:
在第一种情况下,您加载
寄存器%eax
指向的数据并将其存储在%ebx
中。
在第二种情况下,您将寄存器%eax
中的数据存储
到寄存器%ebx
指向的地址空间。我说得对吗?
最佳答案
基本上语法是
movl source, destination
所以movl (%eax), %ebx
确实是将%eax指向的地址处的值复制到%ebx中。而movl %eax, (%ebx)
就是将寄存器%eax中的值复制到%ebx指向的地址中。
所以你的理解确实是正确的。
关于c - 内存间接寻址 movl - 汇编,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17020739/