我不太确定这个 x86 Add 指令在做什么
我不太确定这个 add
指令在做什么:
add 0x0(%rbp,%rbx,4),%eax
如果是的话:
add %rbx,%eax
我知道它会添加 rbx
的内容和 eax
中的内容code> 并将它们存储回 eax。然而,0x0(%rbp,%rbx,4)
让我失望了。
I'm not exactly sure what this add
instruction is doing:
add 0x0(%rbp,%rbx,4),%eax
If it were:
add %rbx,%eax
I know it would add the contents of rbx
and the contents in eax
and store them back into eax
. However, the 0x0(%rbp,%rbx,4)
is throwing me off.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
那是因为它是愚蠢且令人困惑的 AT&T 语法。
在正常的 Intel 语法中,它是
add eax,dword ptr[rbp+4*rbx+0]
即将 rbp+4*rbx 处的 dword 添加到 eax。That's because it's stupid&confusing AT&T syntax.
In normal Intel syntax it's
add eax,dword ptr[rbp+4*rbx+0]
ie add the dword at rbp+4*rbx to eax.