为什么在32位寄存器上的x86-64指令为全64位寄存器的上部为零?
也许最令人惊讶的事实是,像这样的指令 MOV EAX, EBX
的上32位自动为零。 RAX
登记。
64位操作数在目标通用寄存器中生成64位结果. 32位操作数在目标通用寄存器中生成32位结果,零扩展到64位结果. 8位和16位操作数产生8位或16位结果.目的通用寄存器的上56位或48位(分别)不被操作修改。如果8位或16位操作的结果用于64位地址计算,则显式地将寄存器扩展到64位。
mov ax, bx
小唯快跑啊
RISEBY