指令系统寻址方式——指令寻址,数据寻址

前言

寻址方式是指确定本条指令的数据地址以及下一条将要执行的指令地址的方法,它与硬件结构紧密相关,而且直接影响指令格式和指令功能。

一、寻址方式的分类

寻址方式分为:指令寻址和数据寻址两大类。

指令寻址又可分为:顺序寻址和跳跃寻址两大类。

数据寻址方式种类较多可分为:立即寻址,直接寻址,隐含寻址,间接寻址,寄存器寻址,寄存器间接寻址,基址寻址,变址寻址,相对寻址九大类。

二,指令寻址 

        1,顺序寻址

顺序寻址可通过计数器PC加1,自动形成下一条指令的地址;

如图讲解,程序的首地址为0,只要先将0送至程序计数器PC中,启动机器运行后,程序便按0,1,2,3顺序执行。其中1,2,3号指令均有PC自动依次加一形成。

        2,跳跃寻址

跳跃寻址是通过转移类指令实现。

如图讲解,程序执行到第3号地址时,因第3号地址为“JMP 7”,故执行完第3号指令后,便无条件将 7 送至PC,此刻指令地址跳过4,5,6三条 ,直接执行第7条指令。这就是跳跃寻址。

三,数据寻址

数据寻址的方式种类较多,在指令字中必须设一字段来指明属于哪一种寻址方式。

指令的地址码字段通常不代表操作数的真实地址,故把它称为形式地址,记作A。操作数的真实地址称为有效地址,记作EA,它是由寻址方式和形式地址共同确定的。

指令的格式如下图:

指令的格式

操作码

寻址特征形式地址A

为了便于分析,假设指令字长,存储字长,机器字长均相等。

1,立即寻址

        立即寻址的特点是操作数设在指令字内,即形式地址A不是操作数地址,而是操作数本身,又称为立即数。数据是采用补码存放的。

优点:是只要取出指令就能立即获得操作数,在执行阶段不必再访问存储器。

缺点:A的位数限制了这类指令所能表达的立即数的范围。

 2,直接寻址

        直接寻址的特点是指令中的形式地址A就是操作数的实际地址EA。即:

EA=A

优点:寻找操作数比较简单,不需要专门计算操作数的地址,在指令执行阶段对主存只访问一次。

缺点:A的范围限制了操作数的寻址范围,而且必须修改A的值,才能修改操作数的地址。

3,隐含寻址

        隐含寻址是指指令字中不明显的给出操作数的地址,其操作数的地址隐含在操作码或者某个寄存器中。例如一地址格式的加法指令只给出一个操作数的地址,另一个操作数隐含在累加器ACC中,这些ACC就成了另一个操作数的地址。

如图所示: 

优点:在指令字中少了一个地址,因此,这种方式的指令有利于缩短指令字长。

4,间接寻址 

        形式地址不直接指出操作数的地址,而是指出操作数有效地址所在的存储单元地址,也就是说有效地址是由形式地址间接提供的,即为间接寻址。

优点:1,扩大了操作数的寻址范围。

           2,便于编制程序。例如间接寻址可以很方便地完成子程序的返回。如下图

 缺点:是指令在执行阶段需要访问两次内存(一次间接寻址)或多次(多次间接寻址),使执行时间延长。

5,寄存器寻址

在寄存器的指令中,地址码字段直接指出了寄存器的编号,即EA=Ri.

如下图示:

优点:操作数不在主存中,而在寄存器中,故寄存器寻址在指令执行阶段无需访存,减少执行时间。地址字段只需指明寄存器编号(寄存器数量有限),故指令字较短,节省了存储空间。

6,寄存器间接寻址

        寄存器寻址指令中的Ri的内容不是操作数,而是操作数所处在主存单元的地址号,即有效地址EA=(Ri),与寄存器寻址相比指令的执行阶段还需要访存,但他比间接寻址少访存一次。

 

 7,基址寻址

基址寻址需设基址寄存器BR,其操作数的有效地址EA等于指令字中的形式地址与基址寄存器中的内容相加,即

EA=A+(BR)

 基址寄存器可采用隐式和显式两种。

        隐式:在计算机内专门设有一个基址寄存器BR,不必指明该基址寄存器,只需有指令的寻址特征反映出基址寻址即可。

        显式:在一组通用寄存器里,由用户明确指出那个寄存器用作基址寄存器,存放基地址。

基址寻址主要用于为程序或数据分配存储空间,故基址寄存器的内容通常由操作系统或管理程序确定,在程序的执行过程中其值是不可变的,而指令字中的A是可变的。

        优点:基址寻址可以扩大寻址范围,寄存器位数可以大于形式地址A的位数。

8,变址寻址

变址寻址与基址寻址极为相似,其有效地址EA等于形式地址A与变址寄存器IX的内容相加之和,

即:EA=A+(IX)

 在变址寻址中,变址寄存器的内容是用户设定的,而指令之中的A 是不可改变的。

变址寄存器主要用于处理数组问题,在数组处理过程中可设定A为数组的首地址,不断改变变址寄存器IX的内容,便可容易形成数组中任意数据的地址,特别适合变址循环程序。

9,相对寻址

相对寻址的有效地址是将程序计数器PC的内容(当前指令的地址)与指令中的形式地址A相加之和,即:EA=(PC)+A

相对寻址常被用于转移类指令,转以后的目标地址与当前指令有一段距离,称为相对位移量,他有指令字的形式地址A给出,故又称A 为位移量。位移量A可正可负,通常用补码表示。 


     建议收藏,以便今后学习方便


 文章部分图片引用《计算机组成原理》——唐朔飞

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欢快的小太阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值