【发布时间】:2011-12-10 17:56:53
【问题描述】:
我在使用 MIPS 将值存储在寄存器中(不是 div 或 mult 操作)时遇到了很多麻烦。例如,我需要存储或保存 5 和 8 个字节的数据。如何在$t3寄存器中获取0x1235343036(5字节)之类的值?
如果我做的操作是
li $t3,0x1234
li $t4,0x567812
sll $t3,$t3,24
寄存器$t3 只包含0x34000000。 (12 丢失了。我想要 0x1234000000 之类的东西,在使用 $t4 进行“或”操作后,在$t3 寄存器中获得类似 0x1234567812 的东西。)
我想要大于 32 位的寄存器。我怎样才能做到这一点?
【问题讨论】:
-
虽然您没有指定,但很明显您使用的是 32 位处理器内核,这意味着寄存器宽度为 32 位。左移操作会丢弃最左边的位。
-
寄存器大小是固定的。您不能将大于 32 位的值存储到 32 位 MIPS 中的单个寄存器中