操作系统指令系统—寻址方式

操作系统指令系统—寻址方式

指令和数据的寻址方式

操作数或指令在存储器中的地址:某个操作数或某条指令存放在某个存储单元时其存储单元的编号

在存储器中,操作数或指令字写入或读出的方式,有地址指定方式、相联存储方式和堆栈存取方式。

寻找方式:当采用地址指定方式时,形成操作数或指令地址的方式。

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

指令寻址

确定下一条预执行指令的指令地址

  • 顺序寻址:(PC)+1->PC 程序计数器自动加1
  • 跳跃寻址:由转移指令指出

在这里插入图片描述

数据寻址

确定本条指令的操作数地址

在这里插入图片描述

指令中所给出的地址码,并不一定是操作数的有效地址。

寻址过程就是把操作数的形式地址,变换为操作数的有效地址。

例如:一种单地址指令的结构如下所示,其中用X I D各字段组成该指令的操作数地址。
在这里插入图片描述

寻址方式

隐含寻址(操作数在累加寄存器中)

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

例如:单地址的指令格式,没有在地址字段指明第二操作数地址,而是规定累加寄存器AL或AX作为第二操作数地址,AL或AX对单地址指令格式来说是隐含地址。比如

MOV AL,LSRC_BYTE
MUL RSRC_BYTE

ADD 寻址特征 A

操作数地址隐含在操作码中,(寻址特征指明寻址类型)。

另一个操作数隐含在ACC中

先在内存中地址为A的地方找到一个操作数,另一个操作数隐含在寄存器ACC里,从ACC里取出另外一个操作数,然后和给出的A地址中的数相加暂存在ACC中。
在这里插入图片描述

立即寻址

操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。这种方式中形式地址A就是操作数本身。这样的寻址方式不必再次訪问主存去取操作数,当然也无须改动操作数(这样的方式获得操作数的速度最快)

OP 立即寻址特征# A
  • 指令执行阶段不访存
  • A的位数限制了立即数的范围

直接寻址

指令所要的操作数存放在内存中,直接根据读内存找到操作数,形式地址不需要经过任何处理。这种寻址方式为直接寻址方式。
在通常情况下,操作数存放在数据段中,所以,其物理地址将由数据段寄存器DS和指令中给出的有效地址直接形成。但这样的地址方式的不足之处在于寻址范围有限。

在这里插入图片描述

  • 执行阶段访问一次存储器

  • A的位数决定了该指令操作数的寻址范围

    MOV AX, [2222H]: 将有效地址为2222H的内存单元的内容读到累加器AX中
    

间接寻址

在指令的地址码部分直接给出的既不是操作数(直接给出操作数的是马上寻址),也不是操作数的地址(直接给出操作数地址的是直接寻址),而是操作数的地址的地址。

这样的方式提高了寻址的灵活性。扩大了寻址的范围。可是因为多次訪问主存。速度大为减少。

EA=(A)

有效地址由形式地址间接提供,形式地址是操作数的地址的地址

OP 间接寻址标识 A

根据A的内容到内存中寻找到的是操作的数地址,再根据这个地址去找操作数。

  • 执行指令阶段2次访存
  • 可扩大寻址范围

寄存器寻址

地址码的地址是寄存器的地址,和内存地址而言。訪问寄存器的速度是很快的,所以使用寄存器寻址有很快的速度。不足之处在于寄存器的数量有限。

EA=R1

形式地址是寄存器的编号,直接去寄存器中寻址操作数。

在这里插入图片描述

  • 执行阶段不访存,只访问寄存器,执行速度快

寄存器间接寻址

地址码保存的是寄存器的地址,相应的寄存器中保存的是操作数在主存中的地址。这样既快又有灵活性,是一种广泛使用的寻址方式。

在这里插入图片描述

  • 有效地址在寄存器中,操作数在存储器中,执行阶段访存。

偏移寻址

一种强有力的寻址方式

EA=A+(R)  

形式地址需要和另一个寄存器中的地址相加,形式地址A是显示的

另一个地址字段隐含在某个专用的寄存器R中。

常用的三个偏移寻址方式是:相对寻址 基址寻址 变址寻址(根据寄存器的不同类型来区分的)

相对寻址

A是相对于当前指令的位移量(可正 可负 补码)

在这里插入图片描述

EX=A+(PC)  ----PC程序计数器 PC存储当前正在执行指令的地址 
  • A的位数决定操作数的寻址范围
基址寻址

採用专用寄存器或通用寄存器作为基址寄存器,主要作用是扩大寻址空间和再定位。

EA=A+(BR)  

BR为基地址寄存器 (Base Register)

  • 可扩大寻址范围
变址寻址

是将地址码和变址寄存器内容相加后形成的数据地址,对数组运算、字符串操作等批量数据的处理很有效。

EA=A+(IX) 

IX为变址寄存器(专用) 通用寄存器也可以作为变址寄存器

  • 可扩大寻址范围
  • 在程序执行的过程中IX内容可变,形式地址A不变
  • 便于处理数组问题
    在这里插入图片描述
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

JermeryBesian

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

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

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

打赏作者

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

抵扣说明:

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

余额充值