某计算机系统的指令格式如下:
指令长度固定为 32 位;
地址码有 3 种格式, 5 位的寄存器号、 16 位的地址偏移量或 26 位的存储器地址;
指令有三地址和单地址两种格式, 其中三地址指令有两种, 一种是 3 个寄存器号, 另一种是两个寄存器号加 1个地址偏移量, 单地址指令的地址码是存储器地址。 问:
该计算机可以有多少通用寄存器?
由于寄存器的标号为 5 位, 所以可以有 25 =32 个通用寄存器。
在单地址指令的直接寻址方式下, 存储器的寻址范围是多少?
因为单指令格式采用的是 26 位的存储器地址, 因此易知存储器的寻址范围是 0~226 -1。
16 位的地址偏移量可以用在什么寻址方式中, 以对更大的主存空间进行寻址?
只有将 16 位的偏移地址与寄存器中的内容相结合时, 才能够获得更大的访存空间, 此种寻址方式是相对寻址。
给出一种指令操作码的编码方案?指出在这种编码方案下每种指令各可以有多少条?
指令格式中包含操作码字段以及地址字段, 不同的地址字段个数构成了单地址指令、 双地址指令、 三地址指令以及 0 地址指令。 这时设计的单地址指令与三地址指令总共有 26 条, 即 64。
故此编码方案为:
| OP(6) | 寄存器编号(5) | 寄存器编号(5) | 偏移量16 |
每种指令有 26 条。