ADDI、ADDIU:加立即数,区别在于是否检测溢出。
Format: ADDI rt, rs, immediate
To add a constant to a 32-bit integer. If overflow occurs, then trap.
Format: ADDIU rt, rs, immediate
To add a constant to a 32-bit integer
ADD、ADDU:加寄存器,区别在于是否检测溢出。
Format: ADD rd, rs, rt
To add 32-bit integers. If an overflow occurs, then trap.
Format: ADDU rd, rs, rt
To add 32-bit integers
可知,在忽略溢出的前提下,ADDI与ADDIU等价,ADD与ADDU等价。原因如下:
分析
1、忽略溢出,addi与addiu等价
addi是加立即数指令,支持溢出检测,具体表现为:遇到溢出时,溢出错误标志变为高电平,传送到控制器cu中,导致此时的寄存器写使能信号regwr无效,最终结果为不将运算结果写入目的寄存器。
addiu是加立即数指令,不受溢出限制,具体表现为:遇到溢出时,对溢出的结果进行32bit求模,将求模结果写入目的寄存器中,因而不受溢出限制。
在忽略溢出的前提下,addi和add