首页
社区
课程
招聘
计算机组成原理 指令寻址
发表于: 2023-12-11 08:29 3508

计算机组成原理 指令寻址

2023-12-11 08:29
3508

指令寻址

指令 寻址下一条欲执行指令的地址(始终由程序计数器PC给出)
顺序寻址 (PC)+“1”-> PC
这里的1理解为1个指令字长,实际加的值会因指令长度、编址方式而不同
**跳跃寻址 **由转移指令指出
image.png

数据寻址

确定 本条指令 的 地址码指明的真实地址
image.png
image.png
image.png

直接寻址

image.png
直接寻址:指令字中的形式地址A就是操作数的真实地址EA,即EA=A。
image.png
条指令的执行:
取指令访存1次
执行指令访存1次
暂不考虑存结果
共访存2次
优点:简单,指令执行阶段仅访问一次主存,不需专门计算操作数的地址。
缺点:A的位数决定了该指令操作数的寻址范围。操作数的地址不易修改。

间接寻址

image.png
间接寻址:指令的地址字段给出的形式地址不是操作数的真正地址,而是操作数有效地址
所在的存储单元的地址,也就是操作数地址的地址,即EA=(A)。
image.png
条指令的执行:
取指令访存1次
执行指令访存2次
暂不考虑存结果
共访存3次
image.png
优点:
可扩大寻址范围(有效地址EA的位数大于形式地址A的位数)。
便于编制程序(用间接寻址可以方便地完成子程序返回)。
缺点:
指令在执行阶段要多次访存(一次间址需两次访存,多次寻址需根据存储字的最高位确定几次访存)。

寄存器寻址

image.png
寄存器寻址:在指令字中直接给出操作数所在的寄存器编号,即EA=R,其操作数在由R,所指的寄存器内。
image.png
条指令的执行:
取指令访存1次
执行指令访存0次
暂不考虑存结果
共访存1次
优点:
指令在执行阶段不访问主存,只访问寄存器,指令字短且执行速度快,支持向量/矩阵运算。
缺点:
寄存器价格昂贵,计算机中寄存器个数有限。

寄存器间接寻址

image.png
寄存器间接寻址:寄存器R,中给出的不是一个操作数,而是操作数所在主存单元的地址,即EA=(R)
image.png
一条指令的执行:
取指令访存1次
执行指令访存1次
暂不考虑存结果
共访存2次
特点:
与一般间接寻址相比速度更快,但指令的执行阶段需要访问主存(因为操作数在主存中)。

隐含寻址

隐含寻址:不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址。
image.png
优点:有利于缩短指令字长。
缺点:需增加存储操作数或隐含地址的硬件。

立即寻址

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

一条指令的执行:
取指令访存1次
执行指令访存0次
暂不考虑存结果
共访存1次
优点:指令执行阶段不访问主存,指令执行时间最短
缺点:
A的位数限制了立即数的范围。
如A的位数为n,且立即数采用补码时,可表示的数据范围为-2的n-1次方~2的n-1次方-1
image.png

偏移寻址

基址寻址

BR--base address register
EA--effective address
基址寻址:
将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A,
而形成操作数的有效地址,即EA=(BR)+A。
image.png
image.png
基址寻址的作用
基址寻址:将cPU中基址寄存器(BR)的内容加上指令格式中的形式地址A,
而形成操作数的有效地址,即EA=(BR)+A。
image.png
优点:便于程序“浮动”,方便实现多道程序并发运行
注:基址寄存器是面向操作系统的,其内容由操作系统或管理程序确定。在程序执行过程中,基址寄存器的内容不变(作为基地址),形式地址可变(作为偏移量)。
当采用通用寄存器作为基址寄存器时,可由用户决定哪个寄存器作为基址寄存器,但其内容仍由操作系统确定。
优点:可扩大寻址范围(基址寄存器的位数大于形式地址A的位数)﹔用户不必考虑自己的程序存于主存的哪一空间区域,故有利于多道程序设计,以及可用于编制浮动程序(整个程序在内存里边的浮动)。

变址寻址

变址寻址:有效地址EA等于指令字中的形式地址A与变址寄存器IX的内容相加之和,即EA=(IX)+A,其中IX可为变址寄存器(专用),也可用通用寄存器作为变址寄存器。
image.png
注:变址寄存器是面向用户的,在程序执行过程中,变址寄存器的内容可由用户改变(IX作为偏移量),形式地址A不变(作为基地址)。
变址寻址的作用
image.png
image.png
优点:在数组处理过程中,可设定A为数组的首地址,不断改变变址寄存器IX的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序。
基址&变址复合寻址
image.png

相对寻址

相对寻址:
把程序计数器PC的内容加上指令格式中的形式地址A而形成操作数的有效地址,
即EA=(PC)+A,其中A是相对于PC所指地址的位移量,可正可负,补码表示。
image.png
image.png
优点:操作数的地址不是固定的,它随着PC值的变化而变化,并且与指令地址之间总是相差一个固定值,因此便于程序浮动(一段代码在程序内部的浮动))。
相对寻址广泛应用于转移指令。
image.png
注意:取出当前指令后,PC会指向下一条指令,相对寻址是相对于下一条指令的偏移

堆栈寻址

SP--Stack Pointer
堆栈寻址:操作数存放在堆栈中,隐含使用堆栈指针(SP)作为操作数地址。
堆栈是存储器(或专用寄存器组)中一块特定的按“后进先出(LIFO)”原则管理的存储区,该存储区中被读/写单元的地址是用一个特定的寄存器给出的,该寄存器称为堆栈指针(SP) 。
image.png
image.png
image.png
堆栈可用于函数调用时保存当前函数的相关信息
image.png


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 498
活跃值: (47971)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
图裂了怎么删帖
2023-12-11 08:35
0
雪    币: 3070
活跃值: (30876)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
图挂了
2023-12-11 09:40
1
雪    币: 498
活跃值: (47971)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
测试
2023-12-20 17:57
0
雪    币: 23080
活跃值: (3432)
能力值: (RANK:648 )
在线值:
发帖
回帖
粉丝
5
小旺不正经 [em_2]图裂了怎么删帖
辛苦编辑一下,重新贴一下图
2023-12-22 10:19
0
游客
登录 | 注册 方可回帖
返回
//