我试图了解内存间接寻址在具有 AT&T 语法的汇编语言中到底是如何工作的。
movl (%eax), %ebx
movl %eax, (%ebx)
这是一个类似的问题,解释了内存间接寻址 https://stackoverflow.com/questions/1619131/addl-instruction-x86
这是我所理解的:
在第一种情况下,你load
寄存器指向的数据%eax
并将其存储在%ebx
.
在第二种情况下,你store
寄存器中的数据%eax
到寄存器指向的地址空间%ebx
。我对么?
基本上语法是
movl source, destination
So movl (%eax), %ebx
确实是将%eax指向的地址处的值复制到%ebx中。和movl %eax, (%ebx)
是将寄存器%eax内的值复制到%ebx指向的地址中。
所以你的理解确实是正确的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)