• 计算机原理 5.3 操作数寻址方式


    操作数寻址方式:

    含义:形成操作数有效地址的方法

    1、立即数寻址

    地址码字段是操作数本身

     例:MOV AX,200H(AX<---200H)

    S=D

    特点:

    取指操作将数据与指令一并读入CPU内部的寄存器,指令执行速度块

    便于程序设计(变量赋初值)

    数据大小受字段位数限制

    2、寄存器寻址

    操作数在cpu的内部寄存器中

     例 MOV AX,BX(AX<---(BX)   )

    特点:

    操作数在寄存器中,指令执行速度快

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

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

     

    3、直接寻址

    地址码字段直接给出操作数在内存的地址,

    例  MOV AX,[200H]

     特点:

    提供访问主存的操作

    获得数据要访问主存,指令执行速度慢

    地址字段的位数决定了访存空间大小

    4、间接寻址

    地址码字段给出的是操作数主存地址的地址

    例  MOV AX,I[200H]

     这里的I表示间接寻址

    特点:

    解决了直接寻址方式下地址字段的位数限制访存范围大小的问题

    获得数据要访问主存2次,指令执行速度太慢。

    5、寄存器间接寻址

    地址码给出的是寄存器编码R

     特点:

    解决了直接寻址方式下地址字段的位数限制访存范围大小的问题

    获得数据只需访问主存1次

    6、相对寻址

     特点:

    可节省指令中的地址位数,便于程序在内存中成块移动

    注意PC的改变对计算E的影响,如  本例中E=200+2000+2

     若计算机字长32位,且PC的值在取值阶段修改,则读完地址后,PC要加4,因为32位占了四个字节。

    7、基址寻址

    指定一个基址寄存器B,与本指令地址无关

    E=D+(B),D为指令中地址字段的值

    例:

    MOV AX,32[B]

     特点:

    使用基址寄存器可以访问更大的主存空间(基址寄存器可以设置成比通用寄存器还大的位数)

    对某一程序而言,基址值设定后不变,故要访问不同数据需修改D

    8、变址寻址

    指定一个变址寄存器X,与本指令地址无关,内容可随便要求改变

    E=D+(X),D为指令中地址字段的值

    MOV AX,32[SI]  SI,DI都称为变址寄存器

    特点:

    不改变指令即可改变数据的有效地址,可在循环中使用

    在字符串处理,向量运算等等成批数据处理中非常有用

    9、数据寻址方式总结

  • 相关阅读:
    Java秒杀实战 (三)秒杀基本功能开发
    Java优化高性能高并发+高并发程序设计视频教程
    Java远程通讯可选技术及原理
    SCRUM MASTER检查单
    每日站会
    “完成”的定义
    Sprint
    敏捷估算
    VerbalExpressions ——另类正则表达式
    几篇关于VisualStudio的调试工具文章
  • 原文地址:https://www.cnblogs.com/fate-/p/13179071.html
Copyright © 2020-2023  润新知