Intel instruction set reference中提到的唯一区别是溢出标志而不是进位标志的使用。什么时候使用ADOX而不是ADCX进行带进位的无符号加法?

最佳答案

当您不想覆盖进位标志时(例如,您已经存储了轮换内容),可以使用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标志不变)。

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

关于assembly - 何时使用ADOX代替ADCX?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45033397/

10-12 15:34