我正在阅读MIPS数据路径中的指令解码(ID)阶段,我得到了以下引用:“一旦知道操作数,就读取实际数据(从寄存器)或将数据扩展到32位(立即数)。”
有人能解释一下“将数据扩展到32位(即时数据)”部分是什么意思吗?我知道寄存器都包含32位,我知道立即数是什么。我只是不明白为什么你需要把立即数从26位扩展到32位。
谢谢!
发布于 2019-03-22 06:24:55
在32位CPU上,您所做的大多数操作(如加、减、解引用指针)都是用32位数字完成的。当你有一个位较少的数字时,当你想要在其中一个操作中使用该数字时,你需要以某种方式决定其他位将是什么。决定这些新的高位是什么的行为被称为“扩展”。
假设你只是在做一个标准的零扩展或者符号扩展,那么扩展是非常便宜的。但是,它确实需要一些电路,所以在MIPS数据路径的描述中提到它是有意义的。
https://stackoverflow.com/questions/55290060
复制相似问题