-2

我试图弄清楚汇编中的 this 在 C 中意味着什么:

movq 16(%rdi), %rdx
movq 16(%rsi), %rax
movzbl (%rdx), %edx

我很困惑 movzbl (%rdx), %edx 会做什么。谢谢!

4

1 回答 1

1

这是指令的AT&T 语法。movzx它从 中包含的地址获取一个字节,%rdx将其零扩展为 32 位,并将结果存储在 中%edx

与写入 32 位寄存器的每条 x86-64 指令一样,相应 64 位寄存器的高半部分%rdx也归零。 因此,您也可以将此指令视为将 8 位值零扩展为 64 位。

于 2020-10-15T22:10:49.263 回答