ADD

ADD

Add Word

指令编码

31 26 25 21 20 16 15 11 10 6 5 0
SPECIAL
000000
rs rt rd 0
00000
ADD
100000
6 5 5 5 5 6

指令格式

  • ADD rd, rs, rtMIPS32

指令用途

Add Word

字加法。

对32位整数执行加法操作。如果溢出,则产生异常。这就是没人用这个指令的原因

详细说明

伪代码:GPR[rd] ← GPR[rs] + GPR[rt]

通用寄存器rs中的32位字与通用寄存器rt中的32位字相加,产生32位结果。

  • 如果加法导致32位补码发生算术溢出(也就是加法上溢了),目的寄存器的值不会被更改,且发生整数溢出(Integer Overflow)异常。
  • 如果加法没有导致溢出,则32位的加法结果被置入通用寄存器rd中。

限制条件

可用性与兼容性

操作的伪代码

temp ← (GPR[rs][31]||GPR[rs][31..0]) + (GPR[rt][31]||GPR[rt][31..0])
if temp[32] ≠ temp[31] then
    SignalException(IntegerOverflow)
else
    GPR[rd] ← temp
endif

可能出现的异常

  • 整数溢出(Integer Overflow)异常

编程提示

ADDU指令进行的算术操作与此指令相同,但不会因溢出而发生异常。官方吐槽

原文截图

(6.02版本,2014年12月10日发布,http://cdn2.imgtec.com/documentation/MD00086-2B-MIPS32BIS-AFP-06.02.pdf

除非特别注明,本页内容采用以下授权方式: Creative Commons Attribution-ShareAlike 3.0 License