Intel instruction set reference中提到的唯一区别是溢出标志而不是进位标志的使用。什么时候使用ADOX
而不是ADCX
进行带进位的无符号加法?
最佳答案
当您不想覆盖进位标志时(例如,您已经存储了轮换内容),可以使用ADOX。
但是,它们的主要用途是加速big-int算术,因为现在您可以与mulx
并行使用进位进行两个加法运算
摘自英特尔论文New Instructions Support Large Integer Arithmetic
ADCX / ADOX指令adcx
和adox
指令是adc
指令的扩展,旨在支持两条单独的进位链。它们定义为:
adcx dest/src1, src2
adox dest/src1, src2
两条指令都计算
src1
和src2
的总和加上一个进位,并生成输出总和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/