assembly - 在 x86 汇编的 AT&T 语法中,括号中的逗号是什么意思?

标签 assembly x86 att addressing-mode

(register1, register2, 4) 在 AT&T 汇编中意味着什么?

例如:

cmp %eax, (%esi, %ebx, 4)

最佳答案

完整的 AT&T 基址/索引寄存器语法为:

offset(base, index, multiplier)

您的 offset 字段为 0,因此您只有 (base, index, multiplier) 部分。在您的例子中,您将 eax 寄存器的内容与位于 esi + (ebx * 4) 的 32 位值进行比较。

在您可能更熟悉的英特尔语法中,这将写为:

cmp [ebx*4 + esi], eax

关于assembly - 在 x86 汇编的 AT&T 语法中,括号中的逗号是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18650093/

相关文章:

assembly - 是否可以直接从格式良好的 AST 生成汇编代码而不转换为 IR?

c - ARM 上的 double2unsigned(vcvt 指令)

string - 在 x86 程序集中附加两个字符串

linux - 有人可以解释一下这段代码的堆栈吗?

linux - 在64位系统上组装32位二进制文​​件(GNU工具链)

assembly - 用汇编语言弹出 CD/光驱

assembly - 汇编中的源代码索引

.net - 为什么编译为 x86 的 .NET EXE 会以 x64 运行?

vim - 汇编vim语法高亮

c - 这个汇编语句是什么意思?