【发布时间】:2017-01-24 18:44:40
【问题描述】:
如果没有add、adc、sub、sbb、inc 和 dec,如何将两个寄存器相加?
【问题讨论】:
-
你忘了说什么架构。对于 x86,您可以使用
LEA。 -
@Jester For x86
-
@Jester
movd mm0,eax; movd mm0,ecx; paddd mm0,mm1; movd eax,mm0怎么样? -
x86 是(某种程度上)图灵完备的,仅使用 MOV 指令,使用内存寻址模式进行数学运算:stackoverflow.com/a/44799928/224132。 (当然LEA可以直接用地址模式语法和机器编码做加法,但不能做减法。虽然你没有提到
neg,所以neg+lea可以减法。)