我做的时候有区别吗
addi $sp, $sp, -20
或
add $sp, $sp -20
或
addiu $sp, $sp, -20
? 使用一个而不是另一个惯例吗?或者堆栈的移动方式有实际差异吗?我的导师做了
add $sp, $sp, 20
但
addi $sp, $sp, -20
释放呼叫帧时
答案 0 :(得分:3)
add $sp, $sp, 20
与实际的MIPS指令不对应,并由汇编程序转换为addi
或addiu
。
addi
和addiu
之间的唯一区别是addiu
在整数溢出的情况下不会发出异常信号。 MIPS32™体系结构体系结构中addiu
的描述
第二卷:MIPS32™指令集说(强调我的):
该指令适用于无符号算术,,如地址算术或整数算术 忽略溢出的环境