【问题标题】:Memory indirect addressing movl - assembly内存间接寻址 movl - 程序集
【发布时间】:2013-06-05 22:09:37
【问题描述】:

我正在尝试了解内存间接寻址在具有 AT&T 语法的汇编语言中究竟是如何工作的。

movl (%eax), %ebx

movl %eax, (%ebx)

这是一个类似的问题,解释了memory indirect addressing

这是我理解的:

在第一种情况下,你load将寄存器%eax指向的数据存储在%ebx中。

在第二种情况下,你将store寄存器%eax中的数据指向寄存器%ebx指向的地址空间。我说的对吗?

【问题讨论】:

  • 你是对的。在 C 中,它将是 ebx = *eax*ebx = eax

标签: c assembly addressing-mode


【解决方案1】:

基本上语法是

movl source, destination

所以movl (%eax), %ebx确实是将%eax指向的地址的值复制到%ebx中。而movl %eax, (%ebx)是将寄存器%eax中的值复制到%ebx指向的地址中。

所以你的理解确实是正确的。

【讨论】:

  • 谢谢!。现在可以用更好的心态看下一部分代码了!
猜你喜欢
  • 2013-04-08
  • 1970-01-01
  • 2017-12-16
  • 1970-01-01
  • 2011-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多