目前我有
lh $t1, 0($t1)
用于将$ t1从16位扩展到32位的符号,但这不起作用。有没有一种简单的方法可以在MIPS中签署扩展寄存器?
答案 0 :(得分:4)
我理解您的问题的方式,即使您曾尝试使用lh
,您实际上想要签署 $t1
的半字值,而不是半字{ {1}}指向。
您可以通过两个班次完成此任务:
$t1
如果从0x8000开始,第一次移位后会得到0x80000000,第二次移位后会得到0xffff8000。
如果你从0x7fff开始,你将在第一次移位后获得0x7fff0000,在第二次移位后获得0x7fff。
答案 1 :(得分:0)
你需要addiu。在这里拿一个lool。
答案 2 :(得分:0)
lh
工作,但您需要确保.half
和不是 {{ 1}}因为宽度和小端的考虑因素:
.word