我不确定这个add指令在做什么:

add 0x0(%rbp,%rbx,4),%eax

如果是:
add %rbx,%eax

我知道它将添加rbx的内容和eax中的内容,并将它们存储回eax中。但是,0x0(%rbp,%rbx,4)让我失望了。

最佳答案

那是因为它是愚蠢而令人困惑的AT&T语法。
在正常的Intel语法中,它是add eax,dword ptr[rbp+4*rbx+0],即将rbp + 4 * rbx处的dword添加到eax。

10-01 07:47