6

Intel 指令集参考中提到的唯一区别是使用溢出标志而不是进位标志。什么时候使用ADOX而不是ADCX执行带有进位的无符号加法?

4

1 回答 1

9

当您不想覆盖进位标志时,可以使用 ADOX,就像您存储了诸如旋转输出之类的东西一样。

然而,它们的主要用途是加速 big-int 算术,因为现在您可以并行进位进行两次加法运算mulx

来自英特尔的论文New Instructions Support Large Integer Arithmetic

ADCX/ADOX 指令

adcxadox指令是指令的扩展,adc旨在支持两个独立的进位链。它们被定义为:

adcx dest/src1, src2
adox dest/src1, src2

两条指令都计算src1src2加上一个进位,并生成一个输出和 dest 和一个进位。这两条指令的区别在于adcx进位和执行使用 CF 标志(保持 OF 标志不变),而adox指令使用 OF 标志进行进位和执行(保持 CF 标志不变)。

有关的:

ia32/ia64上的ADC和ADCX指令有什么区别?

于 2017-07-11T11:42:08.363 回答