4-4-1数据寻址

学习目标:

理解概念


学习内容:

概念:
1、直接寻址
2、间接寻址
3、寄存器寻址
4、寄存器间接寻址
5、隐含寻址
6、立即寻址
7、偏移寻址
8、堆栈寻址


1.指令寻址vs数据寻址

在这里插入图片描述

指令寻址
在这里插入图片描述
数据寻址
在这里插入图片描述

2.数据寻址

指令中的地址码字段并不代表操作数的真实地址,这种地址称为形式地址(A)。形式地址结合寻址方式,可以计算出操作数在存储器中的真实地址,这种地址称为有效地址(EA)。(A)表示地址为A的内容。

2.1直接寻址

       指令字中的形式地址A就是操作数的真实地址EA,即EA=A。
在这里插入图片描述
直接寻址一条指令的执行:取指令访存1次,执行指令访存1次,暂不考虑存结果共访存2次

优点:简单,指令执行阶段仅访问一次主存,不需专门计算操作数的地址。
缺点:A的位数决定了该指令操作数的寻址范围,操作数的地址不易修改。

2.2间接寻址

       间接寻址是相对于直接寻址而言的,指令的地址字段给出的形式地址不是操作数的真正地址,而是操作数有效地址所在的存储单元的地址,也就是操作数地址的地址,即EA=(A)
在这里插入图片描述
在这里插入图片描述
优点:
可扩大寻址范围(有效地址EA的位数大于形式地址A的位数)。
便于编制程序(用间接寻址可以方便地完成子程序返回,即程序直接可以相互调用)。
缺点:
指令在执行阶段要多次访存(一次间址需两次访存,多次寻址需根据存储字的最高位确定几次访存)。

2.3寄存器寻址(缩短指令中地址码字段)

       在指令字中直接给出操作数所在的寄存器编号,即EA =Rj,其操作数在由Rj所指的寄存器内。
在这里插入图片描述
优点:
指令在执行阶段本访问主存,只访问寄存器,指令字短且执行速度快,支持向量/矩阵运算。
缺点:
寄存器价格昂贵,计算机中寄存器个数有限。

2.4寄存器间接寻址

       寄存器Rj中给出的不是一个操作数,而是操作数所在主存单元的地址,即EA=(Rj)。
在这里插入图片描述

2.5隐含寻址(简化地址结构)

       不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址。

在这里插入图片描述

优点:有利于缩短指令字长。
缺点:需增加存储操作数或隐含地址的硬件。

2.6立即寻址

       形式地址A就是操作数本身,又称为立即数,一般采用补码形式。#表示立即寻址特征
       一条指令的执行:取指令访存1次,执行指令访存0次,暂不考虑存结果共访存1次
优点:
指令执行阶段不访问主存,指令执行时间最短
缺点:
A的位数限制了立即数的范围。如A的位数为n,且立即数采用补码时,可表示的数据范围为-2^(n-1) ~2^(n-1)-1

2.7偏移寻址

2.8堆栈寻址

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

       堆栈是存储器(或专用寄存器组)中一块特定的按“后进先出(LIFO)”原则管理的存储区,该存储区中被读/写单元的地址是用一个特定的寄存器给出的,该寄存器称为堆栈指针(SP)。

       堆栈寻址类似数据结构中的入栈出栈操作,将栈顶的数据pop,或者将外面的数据push,来实现堆栈寻址工作。

寄存器堆栈又称硬堆栈。硬堆栈因为需要大量的堆栈存储器所以成本较高,不适合做大容量的堆栈;而从主存中划出一段区域来做堆栈的堆栈称为软堆栈,是最合算且最常用的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值