【问题标题】:Move address to register by using the indexed addressing mode使用索引寻址模式将地址移动到寄存器
【发布时间】:2017-09-13 10:19:32
【问题描述】:

是否可以使用索引寻址模式语法计算地址并将其存储到寄存器中?类似于以下(错误)表达式(在 AT&T 汇编语法中):

movl $dataarray(,%edi,8), %eax

我知道索引寻址方式可以用来移动数据:

movl dataarray(,%edi,8), %eax

但是,在这种情况下,我要做的是将dataarray 的元素的地址%edi 索引到%eax 寄存器中。

【问题讨论】:

  • 你的意思是像lea这样的指令吗?
  • @MargaretBloom 是的,确实如此。谢谢。

标签: assembly x86 addressing indexed


【解决方案1】:

正如this comment 中已经建议的那样,lea 指令可用于此目的:

leal dataarray(,%edi,8), %eax

这样,地址(和不是该地址的,因为它出现在mov指令中)被计算并存储到eax 寄存器中。

【讨论】:

  • 感谢您的快速回答和解释
猜你喜欢
  • 2012-05-11
  • 1970-01-01
  • 2017-01-03
  • 2011-11-07
  • 2018-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多