精华内容
下载资源
问答
  • ARM寻址方式

    千次阅读 2018-07-28 11:38:08
    寻址方式处理器根据指令中给出的地址信息来寻找物理地址的方式,目前ARM指令系统支持以下几种寻址方式: 1.立即寻址 也称为立即数寻址,这种寻址方式指令中就已经给出了操作数。也就是在执行指令的过程中,...

    寻址方式是指处理器根据指令中给出的地址信息来寻找物理地址的方式,目前ARM指令系统支持以下几种寻址方式:

    1.立即寻址

    也称为立即数寻址,这种寻址方式指令中就已经给出了操作数。也就是在执行指令的过程中,处理器取得指令的同时也取得了操作数,因此称为立即数寻址。例如:

    ADD  R0, #1                 ;R0+1->R0
    ADD  R0, R0, #0x3F          ;R0+0x3F->R0

    在上面两条指令中,源操作数就是立即数,要求以“#”开始,对于十六进制的立即数,要求在“#”后面加“0x”或“&”。

    2.寄存器寻址

    即将寄存器中的数值作为操作数,是各类微处理器常用的寻址方式,也是效率较高的寻址方式。例如:

    ADD  R0, R1, R2           ;R1+R2->R0

    该指令的执行效果是将R1和R2的值相加,将结果存入R0

    3.寄存器间接寻址

    寄存器间接寻址是以寄存器中的值作为操作数的地址,操作数本身存放在寄存器中。例如:

    ADD  R0, R1, [R2]           ;R1+[R2]->R0
    LDR   R0, [R1]              ;[R1]->R0

    第一条指令,以寄存器R2的值作为操作数的地址,在寄存器中取得一个操作数后与R1相加,将结果存入寄存器R0。第二条指令,将寄存器中以R1为地址的值赋给R0。

    4.基址变址寻址

    基址变址寻址是把基址寄存器的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。该方式常用于访问基地址附近的某些存储单元,一般有以下几种方式:

    LDR   R0, [R1, #4]        ;[R1+4]->R0

    第一条指令,将寄存器R1的值加上4作为操作数的有效地址,取得操作数后存入R0中。

    LDR   R0, [R1, #4]!       ;[R1+4]->R0、R1+4->R1

    第二条指令,将寄存器R1的值加上4作为操作数的有效地址,取得操作数后存入R0中,然后寄存器R1的值加上4个字节。

    LDR   R0, [R1], #4      ;[R1]->R0、R1+4->R1

    第三条指令,将寄存器R1的值作为操作数的有效地址,取得操作数后存入R0中,然后寄存器R1的值加上4个字节。

    LDR   R0, [R1, R2]       ;[R1+R2]->R0

    第四条指令,将寄存器R1和R2的值相加作为操作数的有效地址,取得操作数后存入R0中。

    5.多寄存器寻址

    使用多寄存器寻址,一条指令可以完成多个寄存器值的传送,一条指令最多可以传送16个通用寄存器的值。例如:

    LDMIA  R0, {R1,R2,R3,R4,}      ;[R0]->R1,[R0+4]->R2,[R0+8]->R3,[R0+12]->R4

    该指令后缀IA表示每次执行完读取/存储操作后,R0按字长增加,因此,指令可以将连续存储单元的值传送到R1~R4。

    6.相对寻址

    与基址变址寻址类似,相对寻址以程序计数器PC的当前值作为基地址,指令中的地址标号作为偏移量,将两者相加后得到操作数的有效地址。以下程序完成子程序的调用和返回,跳转指令BL采用了相对寻址方式:

    BL    NEXT           ;跳转到子程序NEXT处执行指令
    ......
    NEXT
    ......
    MV  PC, LR         ;从子程序返回

    7.堆栈寻址

    堆栈是一种数据结构,按先进后出的方式工作,使用一个称为堆栈指针的专用寄存器指示当前的操作,堆栈指针总是指向堆栈顶端。当堆栈指针指向最后压入的数据时,称为满堆栈;当堆栈指针指向下一个将要压入的位置时,称为空堆栈。

    根据堆栈的生成方式,可分为递增堆栈和递减堆栈。当堆栈由低地址向高地址生成时,称为递增堆栈,反之称为递减堆栈。排列组合后可得到4中类型的堆栈工作方式,ARM微处理器支持全部4种类型的堆栈工作方式。具体如下:

    满递增堆栈:堆栈指针指向最后压入的数据,由低地址向高地址生成。
    满递减堆栈:堆栈指针指向最后压入的数据,由高地址向低地址生成。
    空递增堆栈:堆栈指针指向下一个将要压入数据的空位置,由低地址向高地址生成。
    空递减堆栈:堆栈指针指向下一个将要压入数据的空位置,由高地址向低地址生成。

     

    展开全文
  • 【计算机组成原理】寻址方式

    千次阅读 多人点赞 2020-05-11 12:01:14
    一、寻址方式确定本条指令的数据地址以及下一条将要执行的指令地址的方法,与硬件结构紧密相关,而且直接影响指令格式和指令功能。分为指令寻址和数据寻址两大类。 二、指令寻址分为顺序寻址和跳跃寻址两种。...

    一、寻址方式是指确定本条指令的数据地址以及下一条将要执行的指令地址的方法,与硬件结构紧密相关,而且直接影响指令格式和指令功能。分为指令寻址和数据寻址两大类。

    二、指令寻址分为顺序寻址和跳跃寻址两种。顺序寻址可通过程序计数器PC加1,自动形成下一条指令的地址;跳跃寻址则通过转移类指令实现。

    数据寻址种类较多,在指令字中必须设一字段来指明属于哪一种寻址方式。指令的地址码字段通常都不代表操作数的真实地址,把它称为真实地址,记作A。操作数的真实地址成为有效地址,记作EA,它是由寻址方式和形式地址共同来确定的。由此可得指令的格式应如下所示。

    操作码

    寻址特征

    形式地址A

    1.立即寻址

    立即寻址的特点是操作数本身设在指令字内,即形式地址A不是操作数的地址,而是操作数本身,又称之为立即数。数据是采用补码形式存放的。优点在于只要取出指令,便可立即获得操作数,在执行阶段不必再访问存储器。缺点是A的位数限制了这类指令所能表述的立即数的范围。

    图1 立即寻址示意图

    2.直接寻址

    直接寻址的特点是,指令中的形式地址A就是操作数的真实地址EA,即EA=A。优点是寻找操作数比较简单,不需要专门计算操作数的地址,在指令执行阶段只访问一次。缺点在于A的位数限制了操作数的寻址范围,而且必须修改A的值,才能修改操作数的地址。

    图2 直接寻址示意图

    3.隐含寻址

    隐含寻址是指指令字中不明显地给出操作数的地址,其操作数的地址隐含在操作码或某个寄存器中。例如,一地址格式的加法指令只给出一个操作数的地址,另一个操作数隐含在累加器ACC中,这样累加器ACC成了另一个数的地址。由于隐含寻址在指令字中少了一个地址,因此,这种寻址方式的指令有利于缩短指令字长。

    图3 隐含寻址示意图

    4.间接寻址

    倘若指令字中的形式地址不直接指出操作数的地址,而是指出操作数有效地址所在的存储单元地址,也就是说,有效地址是由形式地址间接提供的,即为间接寻址,即EA=(A)。优点是与直接寻址相比,扩大了操作数的寻址范围,并且便于编程,缺点在于指令的执行阶段需要访存多次,致使指令执行时间延长。

    图4 间接寻址示意图

    5.寄存器寻址

    在寄存器寻址的指令字中,地址码字段直接指出了寄存器的编号,即EA=R。其操作数在由R所指的寄存器中。由于操作数不在主存中,故寄存器寻址在指令执行阶段无须访存,减少了执行时间。由于地址字段只需指明寄存器编号(计算机中寄存器数有限),故指令字较短,节省了存储空间,因此寄存器寻址在计算机中得到广泛应用。

    图5 寄存器寻址示意图

    6.寄存器间接寻址

    寄存器中的内容不是操作数,而是操作数所在主存单元的地址号,即有效地址EA=(R)。与寄存器寻址相比,指令的执行阶段还需访问主存。与间接寻址相比,因有效地址不是存放在存储单元中,而是存放在寄存器中,故称其为寄存器间接寻址,比间接寻址少访存一次。

    图6 寄存器间接寻址示意图

    7.基址寻址

    基址寻址需设有基址寄存器BR,其操作数的有效地址EA等于指令字中的形式地址与基址寄存器中的内容(称为基地址)相加,即EA=A+(BR)。因为基址寄存器的位数可以大于形式地址A的位数,所以基址寻址可以扩大操作数的寻址范围。

    图7 基址寻址示意图

    8.变址寻址

    变址寻址与基址寻址极为相似。其有效地址EA等于指令字中的形式地址A与变址寄存器IX的内容相加之和,即EA=A+(IX)。

    图8 变址寻址示意图

    变址寻址与基址寻址的有效地址形成过程极为相似,但是由于二者的应用场合不同,因此从本质上讲他们还是有很大区别的。基址寻址主要用于为程序或数据分配存储空间,故基址寄存器的内容通常由操作系统或管理程序确定,在程序的执行过程中其值是不可变的,而指令字中的A是可变的。在变址寻址中,变址寄存器的内容是由用户设定的,在程序执行过程中其值可变,而指令字中的A是不可变的。变址寻址主要用于处理数组问题。

    9.相对寻址

    相对寻址的有效地址是将程序计数器PC的内容(即当前指令的地址)与指令字中的形式地址A相加而成,即EA=(PC)+A。常被用于转移类指令

    图9 相对寻址示意图

    展开全文
  • 4.2 指令寻址方式

    千次阅读 2019-09-04 20:46:14
    寻址方式寻找指令或操作数有效地址的方式,即确定本条指令的数据地址及下一条待执行指令的地址的方法。寻址方式分为指令寻址和数据寻址。 指令中的地址码字段并不代表操作数的真实地址,这种地址称为形式地址...

    寻址方式是指寻找指令或操作数有效地址的方式,即确定本条指令的数据地址及下一条待执行指令的地址的方法。寻址方式分为指令寻址和数据寻址。

    指令中的地址码字段并不代表操作数的真实地址,这种地址称为形式地址(A)。形式地址结合寻址方式,可以计算出操作数在存储器中的真实地址,这种地址被称为有效地址(EA).

    (A)表示地址为A的数值,A即可以是寄存器编号,也可以是内存地址。对应的(A)就是寄存器中的数值,或相应内存单元的数值。

    寻找下一套将要执行的指令称为指令寻址

    1> 顺序寻址

    通过程序计数器(PC)加1(1个指令字长)(加多少不同的计算机不一样),自动形成下一条指令。

    2> 跳跃寻址

    由本条指令给出的下条指令地址。是否跳跃可能受到状态寄存器和操作数的控制,跳跃到的地址分为绝对地址(由标记符直接得到)和相对地址(相对于当前指令地址的偏移量),跳跃结果是当前指令修改PC值,所以下一条指令仍然通过程序计数器给出

     

    寻找指令中表示的操作数或怎样计算出操作数的地址,这种被称为数据寻址

    指令格式如下

     

    字和字节的区别如下

    常见的数据寻址

    1> 隐含寻址

    指令不明显给出操作数的地址,而在指令中隐含操作数的地址。如单地址的指令格式就不明显在地址字段指出第二操作数的地址,二规定累加器(ACC)作为第二操作数的地址,累加器对单地址指令来说就是隐含指令

    2> 立即(数)寻址

    地址字段就是操作数本身

    3> 直接寻址

    指令字中的形式地址A是操作数的真实地址(EA),EA=A

    4> 间接寻址

    指令的地址字段给出的形式地址不是操作数的真正地址,而是操作数有效地址所在的存储单元的地址,也就是操作数地址,EA=(A),可以是一次间接寻址,还可以是多次间接寻址

    5> 寄存器寻址

    指令字中直接给出操作数所在的寄存器编号,EA=Ri

    6> 寄存器间接寻址

    寄存器R中给出的不是一个操作数,而是操作数所在主存单元的地址,EA=(R)

    7> 相对寻址

    把程序计数器(PC)的内容加上指令格式中的形式地址A而形成操作数的有效地址,即EA=(PC)+A,A是相对于当前指令地址的位移量,可正可负

    8> 基址寻址

    CPU中的基址寄存器(BR)的内容加上指令格式中的形式地址A而形成的操作数的有效地址,EA=(BR)+A,基址寄存器既可采用专用寄存器,又可采用通用寄存器。

    9> 变址寻址

    变址寻址是指有效地址EA等于指令字中的形式地址A与变地址寄存器IX的内容之和,即EA=(IX)+A,可以是专用寄存器,也可是通用寄存器

    10> 堆栈寻址

    由一个特定的寄存器给出,该寄存器被称为堆栈指针(SP)。可分为硬堆栈和软堆栈

    寄存器堆栈又称为硬堆栈。从主存中划出一段地址,称为软堆栈。

    展开全文
  • 寻址方式

    千次阅读 2020-04-22 12:31:04
    指令寻址 指令寻址分为顺序寻址和跳跃寻址两种。 顺序寻址:通过程序计数器PC加1,自动形成下一跳指令的地址。 跳跃寻址:通过转移类指令实现。 数据寻址 立即寻址 操作数本身就在指令字内,即形式地址A不是...

    指令寻址

    • 指令寻址分为顺序寻址和跳跃寻址两种。
    • 顺序寻址:通过程序计数器PC加1,自动形成下一跳指令的地址。
    • 跳跃寻址:通过转移类指令实现。
      在这里插入图片描述

    数据寻址

    在这里插入图片描述

    立即寻址

    • 操作数本身就在指令字内,即形式地址A不是操作数地址,而是操作数本身,又称之为立即数。
    • 数据是采用补码的形式进行存放的,‘#’表示立即寻址标记。
      在这里插入图片描述

    直接寻址

    • 间接寻址的特点是,指令字当中的形式地址A就是操作数的真实地址EA。
      在这里插入图片描述

    隐含寻址

    • 隐含寻址是指指令字当中不明显地给出操作数的地址,其操作数隐含在操作码或某个寄存器当中。
    • 例如:一个地址格式的加法指令只给出一个操作地址,另一个操作数隐含在累加器ACC当中,这样累加器ACC成了另外一个数的地址。
      在这里插入图片描述

    间接寻址

    • 倘若指令字当中的形式地址不直接指出操作数的地址,而是指出操作数有效地址所在存储单元的地址,也就是说,有效地址是由形式地址间接停工的,即为间接寻址,即EA=(A).
    • 存储字的首尾为‘1’时,表示当前还需要继续访存寻址;当存储字的首位为‘0’时,表明该存储字即为EA
      在这里插入图片描述

    寄存器寻址

    • 地址码直接给出了寄存器的编号Ri,即EA=Ri。
      在这里插入图片描述

    寄存器间接寻址

    • Ri当中的内容不是操作数,而是操作数所在的主存单元的地址号,即有效地址EA=(Ri)。
      在这里插入图片描述

    基址寻址

    • 基址寻址设有寄存器BR,其操作数的有效地址EA等于指令字当中的形式地址与基址寄存器当中的内容(称之为基地址)相加,即EA=A+(BR)。
    • 在程序执行的过场当中BR当中的内容不变,A当中内容可变。
      在这里插入图片描述
    • 常采用寄存器做基址寄存器
      在这里插入图片描述

    变址寻址

    • 变址寻址与基址寻址极其相似。其有效地址EA等于指令字当中的形式地址A与变址寄存器IX当中的内容相加之和,即EA=A+(IX)
    • 在程序执行过程当中IX内容可变,形式地址A不变
      在这里插入图片描述

    相对寻址

    • 相对寻址的有效地址是将程序计数器PC的内容(即当前指令的地址)与指令字当中的形式地址A相加而成,即EA=(PC)+A
      在这里插入图片描述
    展开全文
  • 所谓寻址方式:确定本条指令的操作数地址,下一条要执行指令的指令地址 一、指令寻址 指令寻址分为顺序寻址和跳跃寻址两种。 顺序寻址可通过程序计数器PC加1,自动形成下一条指令的地址;跳跃寻址则通过...
  • 【寻址】寻址方式

    千次阅读 热门讨论 2016-11-05 20:09:28
    寻址方式
  • 寻址方式就是寻找操作数或指令地址的方式。寻址方式包含两方面的内容:一是操作数...若不特别声明,后面提到的寻址方式源操作数的寻址方式。80C51单片机指令系统共有7种寻址方式,包括:立即寻址、寄存器寻址、...
  • CPU寻址方式

    2016-02-16 14:22:39
    寻址方式寻找操作数或操作数地址的方法寻址方式
  • 指令中形成操作数或操作数地址的方式称为操作数的寻址方式。一般把指令中直接给出的地址称为形式地址,从形式地址生成有效地址的各种方式称为各种不同的存储器寻址方式,每种寻址方式都有一种对形式地址进行变换处理...
  • 8086寻址方式

    2017-09-04 22:57:42
    8086寻址方式8086寻址方式主要分为三种,立即数寻址方式,寄存器寻址方式,存储器寻址方式。 寻址:就是寻找操作数的过程。注:获取操作数采用的寻址方式,会影响机器运行效率。操作码:有时候,机器指令的
  • ARM汇编之寻址方式

    2013-05-25 21:24:56
    ARM7处理器有两个指令集:32位的ARM指令集,16位的Thumb指令集。 1> ARM指令集:效率高,代码密度高 2> Thumb指令集:具有较高的代码密度。 注: 1. 所有的ARM指令集都是有条件执行的,而Thumb...寻址方式根据
  • ARM处理器寻址方式

    2020-11-09 16:34:58
    寻址寻找寄存器里存放的数据或者是地址里存放的数据并加以使用。 寻址有以下八种方式: 1.立即寻址; 2.寄存器寻址; 3.寄存器移位寻址; 4.寄存器间接寻址; 5.基质寻址; 6.多寄存器寻址; 7.堆栈寻址; 8....
  • 依次对数组里的元素进行操作。 循环结构进行下一次循环时,if-else跳转,当主函数调用其他函数时跳转。 指令给出的地址吗就是形式地址,...立即寻址方式所提供的操作数紧跟在操作码的后面,与操作码一起放在...
  • 80x86指令系统和寻址方式

    千次阅读 2015-10-16 20:43:29
    一、数据类型   计算机执行指令过程中需要处理各种类型的机器数,可处理的数据类型有七种:  1)无符号二进制数 ... 寻址方式寻找指令中操作数或指令转移地址的方式,分为数据寻址方式和程序寻址方式。数
  • 指令寻址方式总结

    千次阅读 2020-04-14 09:33:44
    指令寻址方式总结引言指令编码格式寻址方式指令寻址数据寻址立即(数)寻址直接寻址寄存器直接寻址间接寻址寄存器间接寻址隐含寻址堆栈寻址相对寻址基址寻址变址寻址小结练习 引言 在这里,主要是要说明什么是寻址方式...
  • ARM的寻址方式

    2018-10-11 01:02:57
    ARM的寻址方式好像没有官方的定论,网间传闻的9种寻址方式分别是: 1、立即寻址; 2、寄存器直接寻址; 3、寄存器间接寻址; 4、寄存器偏移寻址; 5、寄存器基址变址寻址; 6、批量(多)寄存器寻址; 7、相对寻址...
  • 七种寻址方式

    万次阅读 多人点赞 2018-08-09 17:36:36
    七种基本的寻址方式:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址。其中,后五种寻址方式(即直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址和相对...
  • 计组学习笔记(五):寻址方式

    千次阅读 2018-07-05 16:37:40
    寻址方式寻找指令或操作数的有效地址的方式,就是给你一条指令,要以什么样的方法通过这条指令确定本指令的数据地址,以及下一条要执行的指令的地址。所以,寻址方式分为亮大类,一个是数据寻址,一个是指令寻址...
  • 8086/8088寻址方式

    千次阅读 2021-06-13 10:26:25
    所谓寻址方式,主要是获得操作数所在的地址的方式,在8088/8086系统中,一般将寻址方式分为两种不同的类型 寻找操作数的地址 寻找要执行的下一条指令的地址,即程序的地址。后者主要在程序转移或过程调用时用来...
  • 寻址方式寻找指令中操作数或者指令转移地址的方式,分为数据寻址方式和指令转移地址方式两类。 指令系统是机器所支持的所有指令的集合。   数据寻址方式有:立即数寻址,寄存器寻址,存储器寻址等方式; ...
  • 寻址方式CPU根据指令中给出的地址码字段寻找相应的操作数的方式,它与计算机硬件结构紧密相关,而且对指令的格式和功能有很大的影响。 研究的问题:1、找下一条指令 2、找操作数 指令的寻址方式 顺序方式 (PC...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 63,417
精华内容 25,366
关键字:

寻址方式是指