有关将程序​​集转换为c的问题-具体来说movzbl指令做什么?

问题描述

我试图弄清楚这在C语言中的含义:

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

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

解决方法

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

与每条写入32位寄存器的x86-64指令一样,the high half of the corresponding 64-bit register %rdx is also zeroed.因此,您可能还认为这条指令将8位值零扩展为64位。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...