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

Dom*_*X23 8 x86 assembly addressing-mode

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

add 0x0(%rbp,%rbx,4),%eax
Run Code Online (Sandbox Code Playgroud)

如果是:

add %rbx,%eax
Run Code Online (Sandbox Code Playgroud)

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

har*_*old 15

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

  • +1 AT&T语法很糟糕,像瘟疫一样避免它. (7认同)