我了解到符号扩展发生在 MIPSaddi
指令的立即值中。(http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Mips/addi.html)
但是,我不确定它何时会扩展到负值。
我试过了
main:
addi $t0, $0, 0x8000
jr $31
这段代码,qtSpim 给出了以下错误。
立即值 (32768) 超出范围 (-32768 .. 32767) 在文件 addi $t0, $0, 0x8000 的第 3 行
为了将符号扩展到负值,MSB 必须为“1”,但它超出了立即值的范围。
所以,我猜是addi
不是“实际上”碰巧是符号扩展的。我猜对了吗?
或者如果没有,你能告诉我我在哪里犯了错误吗?还有一个符号扩展的例子会有很大帮助:)