zoukankan      html  css  js  c++  java
  • 计算机原理 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、数据寻址方式总结

  • 相关阅读:
    指针细说
    C++编码规范101
    关于C标准
    Bjarne Stroustrup语录2
    Bjarne Stroustrup 语录1
    计算机网络基础识别
    ssh
    matplotlib画图
    数据分析之Numpy
    数据分析
  • 原文地址:https://www.cnblogs.com/fate-/p/13179071.html
Copyright © 2011-2022 走看看