“21天好习惯”第一期-2

计组学习笔记


目录

3.2.3        常见寻址方式

1)寻址的概念

2)指令寻址

3)操作数寻址


3.2.3        常见寻址方式

1)寻址的概念

寻址:寻找指令和操作数的有效地址的方法。

  • 指令寻址
  • 操作数寻址

2)指令寻址

计算指令有效地址的方式只有两种:

               ①顺序寻址:程序的指令序列在主存顺序存放,执行时从第一条指令开始,逐条取出并逐条执行。(CPU中设置程序计数器PC对指令的顺序号计数,每执行完一条指令,PC加“1”,指出下一条指令的地址,直到程序结束。!!!注意:“1”指的是存储1条指令占用的字节单元数)

                ②跳跃寻址(这种寻址方式的PC+“1”就不是下一条指令的地址了)

3)操作数寻址

1、立即寻址(立即数寻址)

  • 地址码字段是操作数本身。

例:

MOV000200H

                                                        MOV.AX,200H(AX<-200H)

特点:

  • 取值操作将数据与指令一并读入CPU内部的寄存器,指令执行速度快。
  • 便于程序设计(变量赋初值)
  • 数据大小受字段位数限制

2、主存直接寻址

  • 直接给出操作数的有效主存地址,根据该地址可从主存储器中读取或写入操作数。

 例:若主存储器数据区的地址与数据之间的对应关系如下,指令给出地址码A=2000H,按直接寻址方式读取操作数。

                                地址                                数据

                              1000H                           1A00H

                              2000H                           1B00H

                              3000H                           1C00H

        按照直接寻址方式的定义,我们找到地址为2000H的数据1B00H就是操作数。

3、寄存器直接寻址

  • 在指令中直接给出寄存器号,而操作数就存储在寄存器中。(CPU中有若干寄存器,其中一些可编程访问,也称为通用寄存器)

 

 例:若CPU寄存器内容如下,现指令中给出寄存器号为010(即R2),按寄存器直接寻址方式读取操作数。

                R0        1000H                                                R2        3A00H

                R1        2000H                                                R3        3C00H

         按寄存器直接寻址方式定义,找到寄存器R2,读取操作数S=3A00H.

优点:①从CPU的寄存器中读取操作数要比访问主存快得多。

           ②地址字段的位数与计算机通用寄存器数量相关。

           ③能访问的数据大小一般与计算机有关。

 4、主存间接寻址

  • 地址码字段给出的是操作数地址的地址。
  • 若操作数存放在某个主存单元中,则该主存单元的地址被称为操作数地址。若操作数地址又存放在另一主存单元中(不是由指令直接给出),则该主存单元被称为间址单元。

                ​​​​​​​        

例:若主存储器数据区的地址与单元内容之间对应关系如下,指令给出的主存间接地址A=2000H,按主存间接寻址方式读取操作数。

                地址                                                           存储内容

              1000H                                                          4000H

              2000H                                                          3000H

              3000H                                                          AC00H

按照主存间接寻址方式的定义,指令给出的间接地址是2000H,我们根据此间接地址访问主存,得到操作数地址3000H,然后依照操作数地址3000H,读取操作数S=AC00H。

        优点:能使用同一条指令并通过不断修改间址单元的内容就能实现对不同操作数的访问,有力地支持了程序的循环操作。

特点:

  • 解决了直接寻址方式下地址字段的位数限制访存范围大小的问题。
  • 获得数据要访存主存两次,指令执行速度太慢。

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值