我目前正在写一篇关于机器语言和 MIPS 的研讨会论文,在研究小于立即无符号指令集时,我发现了一些我不理解的奇怪东西。
MIPS v5 文档(p. 277) 指出 16 位立即数在与寄存器 rs 的内容比较之前是符号扩展的,但被视为无符号数。这意味着,他们还在文档中指出,您可以表示 32 位无符号整数的下部和无符号整数的上部,两者之间有很大的差距。这是有道理的,因为您的立即数要么前面有 16 个零,要么是 16 个。
现在我不太明白的是他们作为示例提供的数字:他们说可表示的无符号整数的上下部分各有 32,767 大,这是 15 位可表示的最高数字。但是它们不应该是 65,535(最大的 16 位可表示数字),因为整数是无符号的,因此 MSB 不用作符号位吗?