精华内容
下载资源
问答
  • 寄存器间接寻址(register indirect addressing) 操作数在存储器中,其有效地址EA存放在某个寄存器中。寄存器的使用在16位寻址和32位寻址时不一样。 (1)16位寻址 寄存器 有效地址存放在SI, DI, BX, BP中。 如果...
  • 存储器间接寻址 …..................................................................................................... 6 用于存储器间接寻址的指针结构 .....................................................
  • 间接寻址

    千次阅读 2017-07-06 08:23:10
    间接寻址

    间接寻址是公式化描述和链表描述的组合。

    大多数间接寻址链表操作的时间复杂性都与元素的总数无关。

    在间接寻址方式中,使用一个指针表来跟踪每个元素。可采用一个公式来定位每个指针的位置,以便找到所需要的元素。元素本身可能存储在动态分配的节点或节点数组之中。

    这里写图片描述

    间接寻址的类定义及其操作

    #pragma once
    template<class T>
    class IndirectList 
    {
    public:
        IndirectList(int MaxListSize = 10);
        ~IndirectList();
        bool IsEmpty() const { return length == 0; }
        int Length() const { return length; }
        bool Find(int k, T& x) const;
        int Search(const T& x) const;
        IndirectList<T>& Delete(int k, T& x);
        IndirectList<T>& Insert(int k, const T& x);
        void Output(ostream& out) const;
    private:
        T **table; //一维T类型指针数组
        int length, MaxSize;
    };
    
    template<class T>
    IndirectList<T>::IndirectList(int MaxListSize)
    {
        //构造函数
        MaxSize = MaxListSize;
        table = new T *[MaxSize];
        length = 0;
    };
    
    template<class T>
    IndirectList<T>::~IndirectList()
    {
        //删除表
        for (int i = 0; i < length; i++)
            delete table[i];
        delete[] table;
    };
    
    template<class T>
    bool IndirectList<T>::Find(int k, T& x) const
    {
        //取第k个元素至x
        //如果不存在第k个元素,函数返回false,否则返回true
        if (k < 1 || k > length) return false; //不存在第k个元素
        x = *table[k - 1];
        return true;
    };
    
    template<class T>
    IndirectList<T>& IndirectList<T>::Delete(int k, T& x)
    { 
        //把第k个元素传送至x,然后删除第k个元素
        // 如果不存在第k个元素,则引发异常OutOfBounds
        if (Find(k, x)) 
        {
            //向前移动指针k+l, ...
            for (int i = k; i < length; i++)
                table[i - l] = table[i];
            length--;
            return *this;
        }
        else throw OutOfBounds();
    };
    
    template<class T>
    IndirectList<T>& IndirectList<T>::Insert(int k, const T& x)
    {
        // 在第k个元素之后插入x
        // 如果不存在第k个元素,则引发异常OutOfBounds
        // 如果没有足够的空间,则传递NoMem异常
        if (k < 0 || k > length) throw OutOfBounds();
        if (length == MaxSize) throw NoMem();
        // 向后移动一个位置
        for (int i = length - 1; i >= k; i--)
            table[i + 1] = table[i];
        table[k] = new T;
        *table[k] = x;
        length++;
        return *this;
    }

    以上内容整理自网络电子资料,仅供学习交流用,勿作商业用途。转载请注明来源。

    展开全文
  • 寄存器间接寻址

    2021-01-06 14:34:58
    某指令采用寄存器间接寻址访问内存操作数,则在它执行时需要访问内存2次。

    某指令采用寄存器间接寻址访问内存操作数,则在它执行时需要访问内存2次。

    展开全文
  • 4.4 数据的寻址方式4.4.1 指令和数据的寻址方式4.4.2 数据寻址方式说明4.4.3 立即寻址4.4.4 直接寻址 4.4.1 指令和数据的寻址方式 寻址方式:确定本条指令的数据地址或下一条要执行的指令地址的方法。 4.4.2 数据...

    4.4.1 指令和数据的寻址方式

    寻址方式:确定本条指令的数据地址或下一条要执行的指令地址的方法。
    在这里插入图片描述

    4.4.2 数据寻址方式说明

    目的操作数和源操作数均可采用不同的寻址方式;
    两个操作数的类型必须一致。
    AX表示16位寄存器,AH、AL表示其高低字节,可单独使用。

    4.4.3 立即寻址

    操作数就在指令中,紧跟在操作码后面,作为指令一部分存放在内存的代码段中,该操作数为立即数,这种寻址方式称为立即寻址方式。数据通常采用补码的形式存放。常用于给寄存器赋初值(作用);
    在这里插入图片描述
    举例: MOV AX , 34EAH;
    在这里插入图片描述
    注意
    ①立即数可以送到寄存器、一个存储单元(8位)、两个连续的存储单元(16位)中去;
    立即数只能作源操作数,不能作目的操作数;
    ③以A~F打头的数字,前面必须加数字0
    如下指令
    MOV AL,3400H ×,前后格式不匹配
    MOV AX,34H √,等价于 MOV AX,0034H
    MOV 87H,BX ×,立即数不能作为目的操作数
    MOV AX,F98AH ×,应为 MOV AX,0F98AH

    设16位计算机中,存储器宽度为16位,一条指令占据一个机器字。
    已知操作码为6位,目的操作数为寄存器编号,占4位;
    源操作数寻址方式为 立即数寻址 ,以补码整数形式给出,
    则该指令立即数寻址方式的数值范围是多少?
    

    在这里插入图片描述
    操作码占6位,目的操作数据占4位,那么立即数(源操作数)占6位,按补码的形式,第一位为符号位,所以数值范围为 -32~31 。

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

    4.4.4 直接寻址

    存储单元有效地址EA(即:操作数的有效地址)直接由指令给出。
    作用:实现对存储单元的读/写操作。
    特点:
    访问存储器次数较少;
    操作数地址在指令中,灵活性较差。
    操作数A的位数限制了操作数的寻址范围。

    4.4.5 (存储器)间接寻址

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

    4.4.6 寄存器寻址

    操作数包含在寄存器中,寄存器的名称由指令指定。
    常用于寄存器之间传递数据。优势是速度快。注意源操作数的长度必须与目的操作数一致

    4.4.7 寄存器间接寻址

    操作数所在内存单元的地址通过寄存器间接给出。
    作用:有效地址可以存放在寄存器中。

    4.4.8 相对地址

    操作数的有效地址是程序计数器PC的内容与n位位移量
    位移量的概念:在寄存器间接寻址给出的偏移地址上,加上一个相对偏移量。位移量是一个带符号的补码机器数。
    可有效缩短地址的长度 。
    兼具灵活性,只与PC相对位置有关,与绝对地址无关。

    4.4.9 相对基址寻址

    这种寻址方式下,EA是由两部分组成的,基址寄存器BX或BP的内容加上偏移量DISP。

    4.4.10 相对变址寻址

    这种寻址方式下,EA是由两部分组成的,变址寄存器的内容加上偏移量DISP。

    与基址寻址类似。基址寻址,往往变化的是形式地址;变址寻址,往往形式地址不变,变化的是变址寄存器。

    4.4.11 相对基址变址寻址

    这种寻址方式下,EA是由三部分组成的,基址寄存器BX或BP的内容加上变址寄存器的内容,以及位移量的和。

    展开全文
  • 立即寻址,直接寻址,间接寻址

    万次阅读 多人点赞 2017-04-10 23:17:40
    间接寻址就只指令中存放的是地址的地址,或者是存放地址的寄存器,最慢。 总共有14个16位寄存器,8个8位寄存器   通用寄存器:  数据寄存器:  AH(8位) AL(8位) AX(16位) ...
    立即寻址就是指令当中自带数据,直接读取,最快;
    直接寻址就是指令中存放的是地址,直接解析这个地址;
    间接寻址就只指令中存放的是地址的地址,或者是存放地址的寄存器,最慢。




    总共有14个16位寄存器,8个8位寄存器

     

    通用寄存器:

      数据寄存器:

      AH(8位)  AL(8位)  AX(16位)   (AX和AL又称累加器)

      BH(8位)  BL(8位)  BX(16位)   (BX又称基址寄存器,唯一作为存储器指针使用寄存器)  

      CH(8位)  CL(8位)  CX(16位)   (CX用于字符串操作,控制循环的次数,CL用于移位)

      DH(8位)  DL(8位)  DX(16位)   (DX一般用来做32位的乘除法时存放被除数或者保留余数)

     

      指针寄存器:

      SP 堆栈指针 (存放栈顶地址)

      BP 基址指针 (存放堆栈基址偏移)

     

      变址寄存器:主要用于存放某个存储单元地址的偏移,或某组存储单元开始地址的偏移,

      即作为存储器(短)指针使用。作为通用寄存器,它们可以保存16位算术逻辑运算中的操

      作数和运算结果,有时运算结果就是需要的存储单元地址的偏移.

     

      SI 源地址  (源变址寄存器)

      DI 目的地址 (目的变址寄存器)

      

    控制寄存器:

      IP 指令指针

      FLAG 标志寄存器

       ① 进位标志 CF,记录运算时最高有效位产生的进位值。

     ② 符号标志 SF,记录运算结果的符号。结果为负时置1,否则置0。

     ③ 零标志  ZF,运算结果为0时ZF位置1,否则置0。

     ④ 溢出标志 OF,在运算过程中,如操作数超出了机器可表示数的范围称为溢出。溢出时OF位置1,否则置0。

     ⑤ 辅助进位标志 AF,记录运算时第3位(半个字节)产生的进位值。

     ⑥ 奇偶标志 PF,用来为机器中传送信息时可能产生的代码出错情况提供检验条件。当结果操作数中1的个数为偶数时置1,否则置0。

     

    段寄存器

      CS 代码段  IP

      DS 数据段  

      SS 堆栈段  SP BP

      ES 附加段

     

    七种寻址方式:

    1、立即寻址方式:

    操作数就包含在指令中。作为指令的一部分,跟在操作码后存放在代码段。

    这种操作数成为立即数。立即数可以是8位的,也可以是16位的。

    例如:

        指令: MOV AX,1234H

          则: AX = 1234H

     

    2、寄存器寻址方式:

    操作数在CPU内部的寄存器中,指令指定寄存器号。

    对于16位操作数,寄存器可以是:AX、BX、CX、DX、SI、DI、SP和BP等。

    对于8位操作数,寄存器可以是AL 、AH、BL、BH、CL、CH、DL、DH。

    这种寻址方式由于操作数就在寄存器中,不需要访问存储器来取得操作数

    因而可以取得较高的运算数度。

     

    3、直接寻址方式:

    操作数在寄存器中,指令直接包含有操作数的有效地址(偏移地址)

    注:操作数一般存放在数据段

    所以操作数的地址由DS加上指令中直接给出的16位偏移得到。如果采用

    段超越前缀,则操作数也可含在数据段外的其他段中。

    例如:

    MOV AX,[8054]

    如(DS) = 2000H,

    则执行结果为(AX) = 3050H

    (物理地址=20000+8054=28054H)

    28054H里的内容为3050H

     

    在汇编语言指令中,可以用符号地址代替数值地址

    如:MOV AX,VALUE

    此时VALUE为存放操作数单元的符号地址。

    如写成:MOV AX,[VALUE]也是可以的,两者是等效的。

    如VALUE在附加段中,则应指定段超越前缀如下:

    MOV AX,ES:VALUE 或 MOV AX,ES:[VALUE]

     

    4、寄存器间接寻址方式:

    操作数在寄存器中,操作数有效地址在SI、DI、BX、BP

    这四个寄存器之一中。在一般情况下,如果有效地址在

    SI、DI和BX中,则以DS段寄存器中的内容为段值。如果

    有效地址在BP中,则以SS段寄存器中的内容为段值

    例如:

    MOV AX,[SI]

    如果(DS) = 5000H (SI) = 1234H

    则物理地址 =  50000 + 1234 = 51234H

    51234H地址中的内容为:6789H

    执行该指令后,(AX) = 6789H

     

    5、寄存器相对寻址方式:

    操作数在存储器中,操作数的有效地址是一个基址寄存器(BX、BP)

    或变址寄存器(SI、DI)的内容加上指令中给定的8位或16位位移量之和

     

        BX  8位 位移量

    EA(有效地址) =  BP  + 

        SI  16位 位移量

        DI

    在一般情况下,如果SI、DI、或BX中的内容作为有效地址的一部分,那么

    引用的段寄存器是DS;如果BP中的内容作为有效地址的一部分,那么引用的

    段寄存器是SS。

     

    物理地址 = 16d × (DS) + (BX) + 8

               或(SI)或16位位移量

               或(DI)

    物理地址 = 16d × (SS) + (BP) + 8位位移量

                           或16位位移量

    在指令中给定的8位或16位位移量采用补码形式表示。在计算有效地址时,如

    位移量是8位,则被带符号扩展成16位。

    例如:

    MOV AX,[DI+1223H]

    假设,(DS) = 5000H,(DI) = 3678H

    则物理地址 = 50000 + 3678 + 1233 = 5489BH

    5489BH地址中的内容:55AAH

    执行该指令后AX = 55AAH

    下面指令中,源操作数采用寄存器相对寻址,引用的段寄存器是SS: MOV BX,[BP-4]

    下面指令中,目的操作数采用寄存器相对寻址,引用的段寄存器是ES: MOV ES:[BX+5],AL

    指令:MOV AX,[SI+3]与MOV AX,3[SI]是等价的

     

    6、基址加变址寻址方式:

    操作数在寄存器中,操作数的有效地址由:

    基址寄存器之一的内容与变址寄存器之一的内容相加

       BX   SI

    即: EA =    + 

       BP   DI

    在一般情况下,如果BP之内容作为有效地址的一部分,则以SS之内容为段值,否则已DS

    为段值。

    例如:

    MOV AX,[BX][DI]

    如:(DS)=2100H,

       (BX)=0158H,

       (DI)=10A5H

    则EA=0158 + 10A5 = 11FD

    物理地址=21000 + 11FD = 221FDH

    221FDH地址中的内容:1234H

    执行该指令后AX = 1234H

     

    下面指令中,目的操作数采用基址加变址寻址,

    引用的段寄存器是DS: MOV DS:[BP+SI],AL

     

    下面指令中,源操作数采用基址加变址寻址,

    引用的段寄存器ES: MOV AX,ES:[BX+SI]

     

    这种寻址方式使用与数组或表格处理。用基址寄存器存放数组首地址,而用变地寄存器

    来定位数组中的各元素,或反之。由于两个寄存器都可改变,所以能更加灵活地访问数

    组或表格中的元素。

    下面的两种表示方法是等价的:

    MOV AX,[BX+DI]

    MOV AX,[DI][BX]

     

    7、相对基址加变址寻址方式:

    操作数在存储器中,操作数的有效地址由于基址寄存器之一的内容与变址寄存器之一的

    内容及指令中给定的8位或16位位移量相加得到。

             BX    SI    8位

    即: EA =     +     +      位移量

       BP    DI    16位

    在一般情况下,如果BP中的内容作为有效地址的一部分,则以SS段寄存器中的内容为段

    值,否则以DS段寄存器中的内容为段值。

    在指令中给定的8位或16位位移量采用补码形式表示。

    在计算有效地址时,如果位移量是8位,那么被带符号扩展成16位。

    当所得的有效地址操作FFFFH时,就取其64K的模

    例如:

    MOV AX,[BX+DI-2]

    假设,(DS) = 5000H, (BX) = 1223H, DI = 54H, (51275) = 54H, (51276) = 76H

    物理地址= 50000 + 1223 + 0054 + FFFE(-2 各位取反末位加一) = 51275H

    执行该指令后 (AX) = 7654H

     

    相对基址加变址这种寻址方式的表示方法多种多样,以下四种方法均是等价的:

    MOV AX,[BX+DI+1234H], MOV AX,1234H[BX][DI]

    MOV AX 1234H[BX+DI],  MOV AX,1234H[DI][BX]


    展开全文
  • 汇编语言--寄存器间接寻址

    万次阅读 2016-11-01 01:38:20
    本文旨在以通俗的语言描述这些寻址方式之间的联系 .   在认识以及应用这些寻址方式之前 , 我们首要应当了解一个数据在寄存器当中的物理地址是怎么算的 .   物理地址由段址和段内的偏移量决定的 , 这个段址有...
  • 间接寻址和寄存器寻址的比较间接寻址优点 扩大了操作数的寻址范围 便于编制程序,方便地完成子程序的返回 缺点 访存次数多,执行时间长 寄存器寻址优点 无须访存,减少执行时间 指令字短,节省存储空间 基址...
  • 七种寻址方式(寄存器间接寻址方式)

    千次阅读 2018-01-22 19:12:09
    操作数在存储器中,操作数的有效地址用SI、DI、BX和BP等四个寄存器之一来指定,称这种寻址方式为寄存器间接寻址方式。该寻址方式物理地址的计算方法如下: 寄存器间接寻址方式读取存储单元的原理如图所示。 ...
  • 间接寻址的基本操作实现

    千次阅读 2017-10-15 20:13:18
    由于间接寻址是将数组和指针结合起来的一种方法,它将数组中存储数据元素的单元改为存储指向该元素的指针,所以间接寻址表的结点的定义,与插入、删除的相关操作都需要与之前的其他链表操作有不同。我通过仔细研究书...
  • 寻址空间与寻址范围

    万次阅读 多人点赞 2017-04-07 23:39:16
    寻址空间一般指的是CPU对于内存寻址的能力。通俗地说,就是能最多用到多少内存的一个问题,即能够寻址的最大容量。一般用MB和G来表示。 数据在存储器(RAM)中存放是有规律的 ,CPU在运算的时候需要把数据提取出来就...
  • 寄存器间接寻址方式

    千次阅读 2016-08-27 10:00:05
    操作数在存储器中,操作数的有效地址用SI、DI、BX和BP等四个寄存器之一来指定,称这种寻址方式为寄存器间接寻址方式。该寻址方式物理地址的计算方法如下: 寄存器间接寻址方式读取存储单元的原理如图所示。 ...
  • 本博文源于《计算机组成原理》通过本文大家可以收获的是: 1. 寄存器间接寻址方法 2. 基址寻址特点 4. 变址寻址特点
  • 数据结构实验二,间接寻址操作成绩表。
  • 计算寻址范围

    万次阅读 多人点赞 2019-09-13 10:34:42
    则单字的位数为32位,范围为(25610248位)/32位=64K。(已化成位,故没有B单位) 本题中一个字长是32位,对于按字编址来说一个地址单元有32个基本单元,按双字编址则是一个地址单元有64个,按字节是8个,总容量是...
  • ​前言:自动化控制系统是综合性、复杂性的,处于现场层的PLC控制器...不同品牌的PLC间接寻址方式各有不同,AB PLC的间接寻址方式很简单,也很人性化。 一、间接寻址 ABPLC的间接寻址主要分为两种方式 基...
  • 间接寻址就只指令中存放的是地址的地址,或者是存放地址的寄存器,最慢。总共有14个16位寄存器,8个8位寄存器通用寄存器: 数据寄存器: AH(8位) AL(8位) AX(16位) (AX和AL又称累加器) BH(8位) BL(8位) BX(16位) (BX又...
  • 51单片机的直接寻址与间接寻址

    千次阅读 2013-09-17 16:12:00
    以寄存器中的内容为地址,该地址的内容为操作数的寻址方式称为寄存器间接寻址。能够进行寄存器间接寻址的寄存器有:R0、R1、DPTR,用前面加@表示,如@R0、@R1、@DPTR。寄存器间接寻址的存储空间包括内部数据存储器...
  • 间接寻址实现

    2017-10-10 22:43:31
    一、实验目的 ...间接寻址,在网上看了一些代码,理解了以下,再加上与同学的交流,然后做出来了。这个相比其他的,语句没有那么麻烦。但我在运行的时候,运行时间相比其他的有点久,不知道是什么原因。
  • 计算机组成原理:史上最全寻址方式集合

    千次阅读 多人点赞 2019-11-11 20:34:53
    史上最全寻址方式集合 话不多说,直接上我们这次说的主题:寻址方式。 寻址方式中,我们的大框架可以分为两种:指令寻址和数据寻址,来看看吧! 提前术语说明: (A)指的是A所指向的单元地址。 指令寻址 指令寻址比较...
  • 8086CPU的寻址方式

    千次阅读 2019-09-04 23:31:48
    在计算机中操作数地址的形成就是寻址方式。 8086系统中的操作数: 立即操作数:操作数包含在指令中。 寄存器操作数:操作数包含在 CPU 的某个内部寄存器中。 储存器操作数:约定操作数放在储存器中存放数据的...
  • 七种寻址方式(立即寻址、寄存器寻址)

    万次阅读 多人点赞 2016-10-04 10:24:34
    七种寻址方式(立即寻址、寄存器寻址) 一、立即寻址方式 操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。 立即数可以是8位、16位或32位,该数值...
  • 8086的寻址方式

    2020-08-20 22:28:54
    同时,8086有20根地址总线,可寻址最大1MB的内存。但是8086一次最多处理16位数据,内存地址可达20位,这意味着8086不能一次性确定内存地址。8086为了解决这个问题,在内部采用两个16位地址合成的方法来形成一个20位...
  • 寄存器寻址

    万次阅读 2017-04-05 20:24:06
    微机系统有七种基本的寻址方式:立即寻址方式、寄存器寻址方式、直接寻址方式、寄存器间接寻址方式、寄存器相对寻址方式、基址加变址寻址方式、相对基址加变址寻址方式等。 其中,后五种寻址方式是确定内存单元有效...
  • 寻址方式

    千次阅读 2018-01-04 19:59:51
    寻址方式
  • i_block[13] 这个是间接寻址,并且采用二级间接寻址方式,即这个数值给出的是块地址,并且块内容也是一个块地址,形式如下: i_block[13]---->| ID0 | -------------------------------------------------->| | ...
  • 指令寻址: 一、指令寻址的定义 二、转移范围 (1)段内转移 (2)段间转移 三、指令寻址方式 (1)顺序寻址 (2)跳转寻址 1.指令的相对寻址 2.指令的直接寻址 3.指令的间接寻址
  • s7 300寻址方式详解

    千次阅读 2019-06-20 17:00:47
    分类:寻址方式从大的方面可以分成直接寻址和间接寻址。 直接寻址就像甲要和乙说话直接叫乙的名字就可以了,甲直接和乙建立联。 间接寻址就像甲要和乙说话,而乙在另外一个城市,甲就写了一封信通过邮递员送给乙,甲...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,709
精华内容 4,283
关键字:

间接寻址的寻址范围