指令的格式

一,指令的一般格式
指令的一般格式是操作码字段+地址吗字段
1.操作码反映了机器做什么操作。在有些机器当中,操作码不仅仅表明做什么操作,还指出了对什么样的数据进行操作,比如说对浮点数进行操作,对定点数进行操作等等。比如说IBM360中同样是一条加法指令,由于对不同的操作数进行操作,所以有8条指令。在有些机器当中操作码部分还指出了对操作数的寻址方式。操作码的长度也可以是固定的。比如固定为8为或者6为。比如说在精简指令集当中他的长度比较长,操作码是固定的。操作码固定是为了译码的方便简单。比如说IBM360,IBM370是操作码固定的指令格式。另外在操作码部分在逻辑上是放在一起的,实际上是可以分开表示的。操作码的长度还可以采用变长的方式。比如说intel结构的机器。变长操作码可以采用扩展操作码技术。扩展操作码技术,是指要么保留一个操作码的码点作为扩展的标志,那么利用操作码当中某一位作为扩展的标志。我们先来说一下保留码点的方式。这种方式是操作码的位数随着地址数的减少而增加。比如说现在指令格式是操作码+地址1+地址2+地址3,假设操作码和3个地址的位数都是一样的,这样的话操作码指令条数最大只有16种,根本无法满足别写复杂程序的要求。所以指令的个数必须进行扩展,那么怎么进行扩展呢?在4位的操作码部分中全0到1110这之间数据作为指令的编码,用1111作为扩展标志。1111表示该指令是8位的。这表示该指令是2个地址指令,因为这种方式是将地址1的4位也用作指令了。一次类推,所以指令有最多15条三地址指令,最多15条的二地址指令,最多15条的一地址指令和最多16条的零地址指令的可变效果。这种方式是用保留码点的方式来进行扩展操作码的操作。记住,短操作码不能是厂操作码的前缀,因为这样做的话,译码很难识别出这两条指令。从上面的例子中可以得出如果每减少一种三地址指令,就可以增加2的4次方条二地址指令。所谓的减少一种指令,也就是说多保留一位码点,比如说将1110这个数据也作为扩展的标志。以此类推,每减少一种二地址指令,就增加2的4次方条一地址指令。
2.地址码
先看一下4地址指令格式
op+A1+A2+A3+A4
其中A1是第一操作数地址,A2是第二操作数地址,A3是结果的地址,A4是下一条指令的地址。执行完这条指令后通过A4去取下一条指令。那么这条指令会进行4次的访存操作。取指令1次,取操作数A1一次,取操作数A2一次,将结果保存到A3一次。假设我们的指令字长为32位,操作码的长度固定为8位,每个地址的位数相同。那么每个地址段的寻址范围是2的64次方=64个地址,寻址范围非常小。如果是访问寄存器还好,但是要是访内存的话,这种指令几乎是不可用的。那我们来看下怎么减少地址码的个数,来增加地址码字段的长度,从而增加寻址的范围。这个4地址指令格式中,A4是用来保存下一条指令地址,但实际上,现代处理器或者我们的模型机当中我们是用PC来保存下一条指令的地址。如果我们用PC来代替A4的话,那么4地址指令就变成3地址指令了。如果指令的长度不变的话,那么三段地址的长度就变成了8位,那么每个地址段的寻址范围就变成了2的8次方=256字节。那么,4地址格式就变成了三地址格式。我们可以继续用这种方式增大地址的寻址范围。如果我们将A1,A2的操作结果再次保存到A1或者A2当中,那么寻址范围将变成2的12次方=4K。那么三地址格式就变成了二地址格式。这访存次数还是4次。如果我们将结果保存在寄存器当中的话,就可以减少一次访存,顺着这个思路,如果我们的一个操作数,就保存在寄存器或者ACC当中的话,那么2地址就变成了1地址。那么访存次数就变成2次,取指令一次,取操作数一次。并且地址的寻址范围变成2的24次方=16M。还有0地址的指令。

二,指令的字长
指令的字长取决于操作码的长度,操作数地址的长度,操作数地址的个数

小结:
当用一些硬件资源代替指令中的地址码字段后,可以扩大指令的寻址范围,前提是操作码固定。第二个是缩短指令字长,因为减少了地址部分,所以指令字长就缩短了。第三个是减少访存次数。
当用寄存器来代替内存地址
可以缩短指令字长
指令执行阶段不访存,因为CPU的运算都是在寄存器当中的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值