+ -
当前位置:首页 → 问答吧 → cdq 指令,可以实现求绝对值的吧?

cdq 指令,可以实现求绝对值的吧?

时间:2011-04-10

来源:互联网

在执行cdq指令之后,单独把eax拿出来进行计算,是不是就相当于对原来的eax求绝对值?

作者: PDD123   发布时间: 2011-04-10

假设eax是一个负数,cdq之后,edx中是否为0x80000000,eax中是否为原eax的绝对值?

作者: PDD123   发布时间: 2011-04-10

CDQ 大多出现在除法运算之前. 它实际的作用只是把EDX的所有位都设成EAX最高位的值. 也就是说,当EAX <80000000, EDX 00000000; 当EAX >= 80000000, EDX 则为FFFFFFFF).
可见不改变EAX的值,何以求其绝对值呢。

如果eax >= 80000000
可以neg eax 得到你要的值。

作者: G_Spider   发布时间: 2011-04-10