【发布时间】:2019-04-20 22:42:58
【问题描述】:
在 MIPS 中,寄存器的操作码是 5 位长。
我读到每个寄存器都是32位长的,那为什么指令格式中只用5个来表示它们的操作码呢?
【问题讨论】:
标签: mips computer-science cpu-architecture machine-code
在 MIPS 中,寄存器的操作码是 5 位长。
我读到每个寄存器都是32位长的,那为什么指令格式中只用5个来表示它们的操作码呢?
【问题讨论】:
标签: mips computer-science cpu-architecture machine-code
http://www.cs.uwm.edu/classes/cs315/Bacon/Lecture/HTML/ch05s03.html
“比如MIPS处理器有32个通用寄存器,所以需要5位来指定使用哪一个。相比之下,MIPS有4GB的内存容量,所以需要32位来指定使用哪一个内存要使用的单元格。具有 3 个操作数的指令如果都是寄存器则需要 15 位,如果都是内存地址则需要 96 位。"
以 2 为基数计算所有事物。
【讨论】:
您可以仅用 32 位寻址多达 4GiB 的 RAM,对吧?这是因为2^32 为您提供4'294'967'296,这是您可以访问的独立“单元格”的数量。这些“单元”中的每一个都是 8 位(一个字节)。
寄存器也会发生同样的事情,除了每个“单元”是 32 位而不是 8 位。使用 5 位寻址寄存器,您可以获得2^5 = 32 个可能的单元 - 即 32 个可能的 32 位寄存器。
寄存器的容量与寻址一定数量的寄存器所需的位数无关。
【讨论】: