我不太确定这个 x86 Add 指令在做什么

发布于 2024-12-06 09:16:52 字数 266 浏览 1 评论 0原文

我不太确定这个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小梨窩很甜 2024-12-13 09:16:52

那是因为它是愚蠢且令人困惑的 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文