Assembly 推动堆栈

Assembly 推动堆栈,assembly,mips,Assembly,Mips,我这样做有什么不同吗 addi $sp, $sp, -20 或 或 ?? 用一个代替另一个是惯例吗?或者堆栈移动的方式是否存在实际差异?我的教练是这样做的 add $sp, $sp, 20 但是 释放调用帧时,添加$sp,$sp,20与实际的MIPS指令不对应,将由汇编程序转换为addi或addiu addi和addiu之间的唯一区别在于addiu在整数溢出时不会发出异常信号。MIPS32中添加的说明™ 程序员体系结构 第二卷:MIPS32™ 指令集说明(强调我的): 此指令适用于无符号算术

我这样做有什么不同吗

addi $sp, $sp, -20

?? 用一个代替另一个是惯例吗?或者堆栈移动的方式是否存在实际差异?我的教练是这样做的

add $sp, $sp, 20
但是


释放调用帧时,

添加$sp,$sp,20
与实际的MIPS指令不对应,将由汇编程序转换为
addi
addiu

addi
addiu
之间的唯一区别在于
addiu
在整数溢出时不会发出异常信号。MIPS32中添加的
说明™ 程序员体系结构
第二卷:MIPS32™ 指令集说明(强调我的):

此指令适用于无符号算术,如地址算术或整数算术 忽略溢出的环境

addiu $sp, $sp, -20
add $sp, $sp, 20
addi $sp, $sp, -20