何时使用ADOX而不是ADCX?

时间:2017-07-11 11:33:31

标签: assembly x86 adx

Intel instruction set reference中提到的唯一区别是使用overflow-flag而不是carry-flag。什么时候使用ADOX代替ADCX来执行带进位的无符号加法?

1 个答案:

答案 0 :(得分:8)

当您不想覆盖进位标记时,可以使用ADOX,就像您已存储旋转输出一样。

然而,他们的主要用途是加速大型算术,因为现在你可以与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标志进位和进位out(保持CF标志不变)。

相关:

What is the difference between the ADC and ADCX instructions on ia32/ia64?