【Practical】计算机体系结构指令编码与指令格式

例题.

  • 一台模拟机共有7条指令,各指令的使用频度分别为35%,25%,20%,10%,5%,3%,2%。该模拟机有8位和16位两种指令长,采用2-4扩展操作码,8位字长指令为寄存器-寄存器(R-R)二地址类型,16位字长指令为寄存器-存贮器(R-M)二地址变址寻址(-128≤变址范围≤127 )类型。

问.

  • 计算操作码的平均码长;
  • 该机允许使用多少个可编址的通用寄存器,多少个变址寄存器?
  • 设计该机的两种指令格式,标出各字段位数并给出操作码编码。

答.

  • 2-4扩展码,2位长度可以编码3条指令,不妨以11作为扩展,4位长可以编码4条指令,已经满足7条指令的要求。平均码长计算:2×(0.35+0.25+0.20)+4×(0.10+0.05+0.03+0.02)=1.6+0.8=2.4;
  • 另外也可以考虑2位长度只编码2条指令,留两种编码用作扩展,也能达到7条指令的要求,但会导致平均码长增加。
  • 8位和16位指令中并没有说明谁采用短操作码,因此会有两种方案,以8位长指令采用短操作码为例进行分析;
  • R-R二地址型指令长度为8位,其中操作码占2位,所以寄存器占3位,共8个通用寄存器;R-M型二地址变址寻址指令长度为16位,其中操作码占4位,寄存器占3位,变址范围为-128~+127,需要8位表示偏移地址,剩余1位用作变址寄存器,变址寄存器有2个
  • R-R型指令:
2位3位3位
操作码OP源寄存器R1目的寄存器R2
  • R-M型指令:
4位3位1位8位
操作码OP通用寄存器R变址寄存器V偏移地址offset
  • 若采用相反的指令设计,8位指令中使用长操作码,得到指令格式如下:
4位2位2位
操作码OP源寄存器R1目的寄存器R2
2位2位4位8位
操作码OP通用寄存器R变址寄存器V偏移地址offset
  • 对应的通用寄存器数量为4,变址寄存器数量为16.
  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值