我在 MIPS 手册中读到:“请注意,我们使用“添加立即数”指令的“无符号”版本,因为我们正在处理一个地址,它是一个无符号二进制数。我们不想只生成异常因为计算的地址越过了内存空间的中点。”
这到底是什么意思?特别是跨越内存空间的中点。
而且,在下面的代码中,我不明白为什么它会从 8($sp) 跳到 20($sp)。代码稍后从 12($sp) 和 16($sp) 加载,但它何时对这些内存部分进行处理。我在 jal JILL 中认为可能,但没有给出太多解释。
addiu $sp, $sp, -24
sw $t1, 0($sp)
sw $t2, 4($sp)
sw $t3, 8($sp)
sw $ra, 20($sp)
jal JILL
lw $ra, 20($sp)
lw $t4, 12($sp)
lw $t5, 16($sp)
addiu $sp, $sp, 24