【细碎知识8】 指令和数据的寻址方式

0. 提醒

所谓的立即寻址、直接寻址、存储器间接寻址、寄存器寻址、寄存器间接寻址、相对寻址、相对基址寻址、相对变址寻址、相对基变址寻址都是针对数据的寻址,而寻址方式可以分为数据寻址指令寻址两种。

1. 指令格式

一条指令由操作码OP和地址码A组成,如图所示
在这里插入图片描述
其中,操作码为一条指令的ID,具有唯一性,操作码的位数n与操作系统中指令的条数N有如下关系:
在这里插入图片描述
地址码指明该指令的操作数据或操作数的主存地址寄存器地址

也就是说,一条指令由 操作 数据两部分组成。

其中, 操作由操作码标识,不同的操作码代表不同的操作, 数据由数据码表示,数据码部分可以直接放数据(立即数寻址),也可以放数据在存储器或寄存器中的地址。

P.s:关于存储器和寄存器的区别 :
存储器包括主存储器(内存)、辅存储器(外存)、U盘等等各种存储器,而寄存器又称为缓存,是为了缓解CPU的高速和内存的低速的,利用了局部性原理。
CPU在计算时,先把数据从外存读到内存,再从内存读到寄存器,速度比较慢,如果数据直接存放在寄存器中,读取速度会快很多。

因此,寻址方式又可分为 指令寻址方式(针对操作)和 数据寻址方式(针对数据)。

在这里插入图片描述
看着很多,但其实很好理解。

2. 指令寻址

指令寻址分为顺序寻址和跳跃寻址,顾名思义。

顺序寻址 是一条一条顺序执行指令,而 跳跃寻址 是直接跳到某条指令去执行。

顺序寻址: PC = PC + 1
跳跃寻址: PC = M
(PC为程序计数寄存器,存放下一条指令的地址)

3. 数据寻址

3.1 立即寻址

含义:

指令的地址码中存放的是操作数。

示意图:
在这里插入图片描述

优缺点:

优点
指令已经提供操作数,无需再次访问存储器。提供操作数最快.。
缺点
①操作数为指令一部分,不能修改,适用于给某一寄存器或存储单元赋初值等操作。
②指令中A的位数限制了这类指令所表述的立即数的范围。

3.2 直接寻址

含义:

指令的地址码中存放的是操作数在存储器中的地址。为区别于立即数,A用[ ]括上。

示意图:

在这里插入图片描述
特点:

访问存储器次数较少;
操作数地址在指令中,灵活性较差;
操作数A的位数限制了操作数的寻址范围。

3.3 存储器间接寻址

含义:

地址码中存的是存储器的地址A1,A1中存的是存储器地址A2,A2中存的才是操作数。

示意图:

在这里插入图片描述
优缺点:

优点
实现简便,对编程带来较大的灵活性,当操作数地址改变时,只需修改间接地址指示器的单元内容,而不必修改指令,原指令的功能照样实现。这给编程带来很大方便。
缺点
多次访问内存,增加了指令的执行时间;占用主存储器单元多。

3.4 寄存器寻址

含义:

地址码中存的是操作数在寄存器中的地址。

示意图:

在这里插入图片描述

3.5 寄存器间接寻址

含义:

地址码中存放的是寄存器地址A1,A1中存放的是存储器地址A2,A2中存放的是操作数。

示意图:

在这里插入图片描述

3.6 相对寻址

含义:

地址码中存放有偏移量disp,操作数在存储器中的实际地址为(PC)+disp。即指令计数寄存器中的值加上偏移量disp。

示意图:

在这里插入图片描述

3.7 相对基址寻址、相对变址寻址、相对基变址寻址:

这三者比较像,所以放在一起来说:

含义:

相对基址寻址 : 地址码中有偏移量disp,操作数在存储器中的实际地址 = 基址寄存器中的内容 + 偏移量disp

相对变址寻址 : 地址码中有偏移量disp,操作数在存储器中的实际地址 = 变址寄存器中的内容 + 偏移量disp

相对基变址寻址 : 地址码中有偏移量disp,操作数在存储器中的实际地址 = 变址寄存器中的内容 + 基址寄存器中的内容+ 偏移量disp

相对基址寻址示意图:(别的两者示意图类似)

在这里插入图片描述

【总结】

综上,我们可以进行总结:

数据寻址方式操作数所在位置
立即寻址操作码中
直接寻址存储器中
存储器间接寻址存储器中
寄存器寻址寄存器中
寄存器间接寻址存储器中
相对寻址存储器中
相对基址寻址、相对变址寻址、相对基变址寻址存储器中
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

SinHao22

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

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

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

打赏作者

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

抵扣说明:

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

余额充值