某计算机字长为16位主存为64KB指令采用单字长、单地址结构要求至少能支持80条指令和直接、间接、相对、变址等4种寻址方式。请设计指令格式并计算每种寻址方式能访问的主存空间范围。
指令格式:
| 操作码(4位) | 寄存器地址(4位) | 地址模式(2位) | 地址(6位) |
其中,地址模式采用二进制编码,0表示直接寻址,1表示间接寻址,2表示相对寻址,3表示变址寻址。
直接寻址:指令中直接给出操作数的地址,可寻址的主存空间范围为0~64KB,共64KB。
间接寻址:指令中给出操作数的地址所在的内存单元地址,可寻址的主存空间范围为0~64KB,共64KB。
相对寻址:指令中给出相对于程序计数器PC的偏移量,可寻址的主存空间范围为PC-32KB~PC+31KB,共64KB。
变址寻址:指令中给出基址寄存器和变址寄存器的地址,可寻址的主存空间范围为0~64KB,共64KB。
因为每个地址占16位,所以主存共有64KB=64×1024÷2=32K个地址。由于指令采用单字长,所以每条指令占2个存储单元,即32位。因此,可以支持的指令数为32K÷80=409.6,向下取整得到支持的指令数为409条。
综上所述,该计算机的指令格式为操作码(4位)+寄存器地址(4位)+地址模式(2位)+地址(6位),可支持80条指令,直接、间接、相对、变址等4种寻址方式,每种寻址方式能访问的主存空间范围如下:
- 直接寻址:0~64KB,共64KB。
- 间接寻址:0~64KB,共64KB。
- 相对寻址:PC-32KB~PC+31KB,共64KB。
- 变址寻址:0~64KB,共64KB。
原文地址: https://www.cveoy.top/t/topic/bsoo 著作权归作者所有。请勿转载和采集!