【计算机组成原理】指令系统

本文详细探讨了计算机组成原理中的指令系统,包括指令格式设计、长度计算、设计原则、书写步骤以及扩展操作码的计算。此外,还讨论了指令寻址方式、转移指令的相对寻址计算,并提供了历年真题的相关知识点和解题思路。
摘要由CSDN通过智能技术生成

指令格式设计和计算

组成

  • OP(操作码)
  • Ad(地址码)
  • M(寻址特征)
  • Ri、Rj(寄存器编号)
  • A(偏移量)

长度的计算

操作码长度 = ceil(log2(操作码数))
寻址特征长度 = ceil(log2(寻址方式的个数))
同理,Ri的长度与通用寄存器的长度有关,A的长度与偏移量的范围有关等等。一个指令中可能有多个Ad,它们的长度不一定相同。

设计原则

  • 一般指令条数少的安排在低地址,即设计的时候从指令条数少的开始设计。
  • 一般从多地址指令开始设计。
  • 一般指令长应设计成机器字长的整数倍

书写步骤

书写时先写出指令结构,然后标出各个部分的长度。对于长指令,可能涉及多个字节(每个字节一行),一般要边界对其。

扩展操作码的计算

一定要注意各位全1留做扩展操作码前缀之用。但最后一组指令的全1不需要留作前缀。这是显然的,因为它是最后一组指令,后面没有指令需要它保留前缀。

指令个数计算

可以将任意一种指令的个数计算当做是广义的扩展操作码
比如在扩展操作码中,OP有4位,A1、A2、A3分别也有4位,那么我们可以设计15条(2^4-1)条三地址指令,15条[1 * (2^4-1)]条二地址指令…16条(前面说到的,最后一组不需要预留前缀)零地址指令。
由上面我们可以得出规律。
假设n地址指令的操作码空间剩下k个值没有使用。它紧跟的地址码长为l
n-1地址指令的最多可以有k * 2^l条指令。(当取最大值时,它不再预留地址,这时候n-2地址指令无法编码
上面的扩展操作码可以看做n取3,k取1的情况。

存储空间占用计算

指令格式1存

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值