试图理解汇编指令:x86上的cltd

Mut*_*shi 6 x86 assembly att

我找到了汇编指令

cltd
Run Code Online (Sandbox Code Playgroud)

通过在英特尔架构上反汇编代码.我发现的描述是,它清除了%edx寄存器,但是我不明白发生了什么......有谁可以解释命令到底是做什么的?

Mic*_*ael 23

cltdcdq(引用)的别名,其中符号扩展eaxedx:eax.

这在实践中意味着edx充满了eax(符号位)的最高位.例如,如果eax0x7F000000 edx将成为0x00000000cdq.如果eax是的0x80000000 edx话会成为0xFFFFFFFF.


She*_*tJS 4

cltd将有符号长整型转换为有符号双长整型

如果您想查看发生情况的图表,请跳转至http://download.intel.com/products/processor/manual/325462.pdf的第 160 页(更多详细信息请参见第 681 页)

  • 链接现在无效 (2认同)