MIPS指令问题

时间:2011-12-26 19:51:54

标签: assembly mips unsigned shift

MIPS中的subu指令可以给我一个否定结果,或者结果总是正数,因为我们正在执行sub的无符号版本? 另外,如果我想向右移动算术,并将1放在数字的第0位,我应该使用sra指令,还是有另一条指令呢?

1 个答案:

答案 0 :(得分:3)

与所有机器指令一样,subu将为您提供二进制结果 - 存储在目标寄存器中的32位。这些位只是位,它们本身既不是正的也不是负的,它取决于你如何解释它们。如果将它们解释为有符号整数,则整数可能为正数或负数。您可以将这些位视为浮动指针编号 - 这些位来自于无关紧要 - 尽管这可能是非感性的。

请注意,subsubu之间的唯一区别是sub将在溢出时陷阱,将操作数视为有符号整数。 subu将产生完全相同的结果,但不会陷阱。

sra将位向下移位(向右),将最高位(即符号位,如果您将寄存器中的位视为有符号整数)单独移位,并将其复制到任何高位腾空了

相关问题