我不确定lui
指令中立即数的范围是什么。
组装时:
lui $t0,32768
它成功运行,没有错误。
但是,
lui $t0,-32768
通知-32768超出范围。
答案 0 :(得分:0)
在MIPS中,I型指令的立即数始终为16位长。这意味着如果汇编器将其视为未签名,则范围将为[0,65535],对于已签名的情况将范围为[-32768,32767]
但是您可以在汇编中使用什么取决于汇编器
例如,shell-storm和WeMips之类的某些汇编器在[-32768,65535]中接受常量,该常量是16位有符号和无符号的混合,MIPS Converter仅接受十六进制值但WebMIPSASM甚至接受9223372036854775807之类的巨大值,并将结果截断为16位