我试图弄清楚汇编中的 this 在 C 中意味着什么:
movq 16(%rdi), %rdx
movq 16(%rsi), %rax
movzbl (%rdx), %edx
我很困惑 movzbl (%rdx), %edx 会做什么。谢谢!
我试图弄清楚汇编中的 this 在 C 中意味着什么:
movq 16(%rdi), %rdx
movq 16(%rsi), %rax
movzbl (%rdx), %edx
我很困惑 movzbl (%rdx), %edx 会做什么。谢谢!
这是指令的AT&T 语法。movzx
它从 中包含的地址获取一个字节,%rdx
将其零扩展为 32 位,并将结果存储在 中%edx
。
与写入 32 位寄存器的每条 x86-64 指令一样,相应 64 位寄存器的高半部分%rdx
也归零。 因此,您也可以将此指令视为将 8 位值零扩展为 64 位。