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