组成原理——指令系统(寻址方式比较重要的)

寻址方式

寻址方式是指CPU根据指令中给出的地址码字段寻找相应的操作数的方式,它与计算机硬件结构紧密相关,而且对指令的格式和功能有很大的影响。
研究的问题:1、找下一条指令 2、找操作数

指令的寻址方式

  • 顺序方式
    在这里插入图片描述
    (PC)+1-> PC
  • 跳跃方式
    在这里插入图片描述

数据的寻址方式

隐含寻址

指令中隐含着操作数的地址
如某些计算,隐含了累加器ACC作为源和目的寄存器

立即寻址

立即寻址:指令直接给出操作数(即指令中放操作数的地址不当作地址来看,直接当成数据)
操作数称为立即数
在这里插入图片描述
特点:在取指令时,操作码和操作数被同时取出,不必再次访问存储器,从而提高了指令的执行速度。
但是,因为操作数是指令的一部分,不能被修改;而
且对于定长指令格式,操作数的大小将受到指令长度
的限制,所以这种寻址方式灵活性最差
通常用于给某一-寄存器或主存单元赋初值,或者用于提供一个常数。
i=2+3

直接寻址

指令中地址码字段给直接给出操作数有效地址EA
根据这个地址信息直接就可以访问到内存里的操作数
EA=A,S=(EA)
A:地址信息 EA :有效地址 S:操作数
在这里插入图片描述
操作数的地址信息不能改变,但存放的信息可以改变,与立即寻址相比更具有灵活性。

间接寻址

间接寻址意味着指令的地址码部分给出的地址A不是操作数的地址,而是操作数地址的地址(间址单元)。
EA= = (A),S=(EA)=((A))
指令中给出的并不是有效地址,而是有效地址所在的存储单元的地址。
在这里插入图片描述
间接寻址要比直接寻址灵活得多
至少需要两次访问主存储器才能取出操作数,严重降低了指令执行的速度。
例题
某机字长为16位,主存容量为64K字,指令格式为单字长单地址,共有64条指令。试说明:
(1)若只采用直接寻址方式,指令能访问多少主存单元?
(2)为扩展指令的寻址范围,可采用直接/间接寻址方式,若只增加一位直接/间接标志,指令可寻址范围为多少?指令直接寻址的范围为多少?
答案:1)1K,2)64K,512
解:
主存容量为64K字:内存以机器字长划分的,内存容量64K*16b
指令格式为单字长单地址:指令的总长16位,单地址:一个地址码
64条指令:指令的操作码表示64种操作, 2 6 2^6 26,操作码6位,地址码10位
第一题:地址码10位,直接寻址访问的内存单元 0 到 2 10 − 1 0到 2^{10}-1 02101
第二题:增加一位直接/间接标志:地址码剩9位
直接寻址方位 0 到 2 9 − 1 0到 2^{9}-1 0291
要到内存中才能找到有效地址。操作数在哪是由有效地址决定,由于机器字长16位,有效地址长度16位,有效地址范围 0 到 2 16 − 1 0到2^{16}-1 02161.(与间接地址没有关系)

寄存器寻址
寄存器(直接)寻址

指令的地址码给出CPU内某–通用寄存器的编号,指令的操作数存放在相应的寄存器中。
EA=Ri,S=(Ri)
在这里插入图片描述
速度快,指令短,一般用于存放中间结果。

寄存器间接寻址

指令的地址码给出某通用寄存器编号,该寄存器内放操作数的地址,根据该地址到内存找到操作数。
EA=(Ri),S=(Ri))

在这里插入图片描述

偏移寻址
相对寻址(相对于指令的寻址)

指令的地址码给出相对的位移量D程序计数器PC提供基准地址,两者相加后作为操作数的有效地址。
EA=(PC)+D,S= ((PC)+D)
在这里插入图片描述
一般用于程序控制类指令,如跳转指令 JMP 6

基址寻址(寄存器里面放的是基准量)

基址寻址:指令的地址码部分给出偏移量D,而基准地址放在基址寄存器Rb中,最后操作数的有效地址仍然是由基准地址A与偏移量D相加而成
即: EA= (Rb)+ D。
基址寄存器Rb中的内容称为基准地址,该值可正可负。
在这里插入图片描述
在这里插入图片描述
基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中寻址。

变址寻址(寄存器放的是变化量)

变址寻址:指令的地址码部分给出的基准地址A与CPU内特定的变址寄存器Rx中的内容相加,以形成操作数的有效地址,即: EA=A+(Rx)。
变址寄存器Rx中的内容称为变址值,该值可正可负。

在这里插入图片描述
在这里插入图片描述
数组为变址寻址,基准的地址固定,下标在变化

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值