计组——十种数据寻址方式

针对地址码的解读方式不同,寻址方式分为十种
这是一地址指令格式:

操作码(OP) 寻址特征 形式地址(A)

这是二地址指令格式:

操作码(OP) 寻址特征 形式地址(A1) 寻址特征 形式地址(A2)

形式地址用A表示
真实地址用EA表示

下面以一地址为例进行讲解,并且假设指令字长=机器字长=存储字长

1. 直接寻址

指令中的形式地址A就是EA,即EA=A
计组——十种数据寻址方式_第1张图片
总计访存2次:取指令+执行指令

2.间接寻址

指令中的形式地址是有效地址所在的存储单元的地址,即EA=(A)
计组——十种数据寻址方式_第2张图片
总计访存三次:取指令+执行指令(读形式地址+读操作数)
此外还有两次间接寻址:
计组——十种数据寻址方式_第3张图片
优点:
可扩大寻址范围(有效地址EA的位数大于形式地址A的位数)
便于编制程序(用间接寻址可以方便的完成子程序返回)
缺点:
指令在执行阶段要多次访存(一次间接寻址需两次访存,多次寻址需根据存储字的最高位确定几次访存)

3. 寄存器寻址

假设指令字长=机器字长=存储字长,操作数为3
在这里插入图片描述

在指令字中直接给出操作数所在的寄存器编号,即 E A = R i EA=R_{i} EA=Ri,其操作数在 R i R_{i} Ri所指的寄存器内
计组——十种数据寻址方式_第4张图片
总计访存1次:取指令1次+执行指令0次(执行阶段不访问主存,只访问寄存器)
优点:指令字短且执行速度快,支持向量/矩阵运算

4. 寄存器间接寻址

开始套娃,寄存器 R i R_{i} Ri中给出的不是一个操作数,而是操作数所在主存单元的地址,即 E A = ( R i ) EA=(R_{i}) EA=(Ri)
计组——十种数据寻址方式_第5张图片
总计两次访存:取指令1次+执行指令1次
特点:与一般间接寻址相比速度更快,但指令执行阶段需要访问主存(因为操作数在主存中)

5. 隐含寻址

地址不是明显给出,而是隐藏在指令中
计组——十种数据寻址方式_第6张图片
优点:有利于缩短指令字长
缺点:需增加存储操作数或隐含地址的硬件

6. 立即寻址

假设指令字长=机器字长=存储字长,操作数为3

在这里插入图片描述

形式地址A就是操作数本身,又称立即数,一般用补码形式表示
#表示立即寻址特征

共访存一次:取指令1次访存+执行指令0次访存
缺点:
A的位数会限制立即数的范围
如A的位数为n,且立即数采用补码时,可表示的数据范围为:-2n-1~2n-1-1

计组——十种数据寻址方式_第7张图片

7. 偏移寻址——基址寻址

基址寻址:以程序的起始存放地址作为“起点”,EA=(BR)+A

计组——十种数据寻址方式_第8张图片

计组——十种数据寻址方式_第9张图片
需要根据通用寄存器的总数判断要用几个bit指明寄存器

优点:便于程序“浮动”,方便实现多道程序并发运行
注意:基址寄存器是面向操作系统的,其内容由操作系统或管理系统确定。在程序执行过程中,基址寄存器的内容不变(作为基地址),形式地址可变(作为偏移量)
当采用通用寄存器作为基址寄存器时,可由用户决定哪个寄存器作为基址寄存器,但其内容由操作系统确定。
OS课中的“重定位寄存器”就是“基址寄存器”

优点:可扩大寻址范围(基址寄存器的位数大于形式A的位数);用户不必考虑自己的程序存于主存的哪一空间区域,故有利于多道程序设计,以及可用于编制浮动程序(整个程序在内存里边的浮动)

8. 偏移寻址——变址寻址

变址寻址:程序员自己决定从哪里作为“起点”,EA=(IX)+A,
其中IX可谓变址寄存器(专用),也可用通用寄存器作为变址寄存器。

计组——十种数据寻址方式_第10张图片
注:变址寄存器是面向用户的,在程序执行过程中,变址寄存器的内容可由用户改变(IX作为偏移量),形式地址A不变(作为基地址)
基址寻址中,BR保持不变作为基地址,A作为偏移量
方便实现循环程序,或者对数组的

9. 偏移寻址——相对寻址

相对寻址:以程序计数器PC所指地址作为“起点”,EA=(PC)+A
程序计数器PC的内容加上指令格式中的形式地址A而形成操作数的有效地址,其中A是相对PC所指地址的位移量,可正可负,补码表示。

计组——十种数据寻址方式_第11张图片

优点:操作数的地址不是固定的,它随着PC值的变化而变化,并且与指令地址之间总是相差一个固定值,因此便于程序浮动(一段代码在程序内部的浮动)
相对寻址广泛应用于转移指令。

相对寻址,取出当前指令后,PC会自动指向下一条指令,相对寻址是相对于下一条指令的偏移。

10. 堆栈寻址

操作数存放在堆栈中,隐含使用堆栈指针(SP)作为操作数地址。

总结

计组——十种数据寻址方式_第12张图片

第四章第04,05(偏移寻址)节

你可能感兴趣的:(计算机学科基础综合,计组,408,寻址)