【发布时间】:2015-03-26 16:55:45
【问题描述】:
我正在设计一个 MIPS 处理器作为我的个人项目,现在我遇到了一个非常困惑的问题。我只是无法总结在 MIPS 中何时使用有符号扩展以及何时使用零扩展。
搜了很多资源,大多是说:
1) ADDI、ADDIU 都使用有符号扩展。
2) ANDI、ORI、XORI 都使用零扩展。
但是,在这两条指令中,我开始感到困惑:
SLTIU/SLTI
在 Imagination 的“MIPS 程序员架构 II-A 卷:MIPS 指令集手册”第 368 页中说:
它明确提到16位立即数是有符号扩展的。但我不明白下面的说法:
[0, 32767] 或最大 [max_unsigned-32767, max_unsigned] 无符号范围的结尾。
还有一些人说 16 位立即数是零扩展,像这样:
那么,有人能解释一下 MIPS 中的有符号指令和无符号指令之间到底有什么区别吗?
【问题讨论】:
-
希望高手能全面总结一下哪些指令使用有符号扩展,哪些指令使用零扩展。
标签: assembly mips system-verilog immediate-operand zero-extension