精华内容
下载资源
问答
  • 寻址方式(立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址)
    千次阅读
    2021-09-28 20:23:34

    概念

    寻址方式就是处理器根据指令中给出的地址信息来寻找有效地址的方式,是确定本条指令的数据地址以及下一条要执行的指令地址的方法。

    常用寻址方式

    立即寻址

    指令中在操作码字段后面的部分不是通常意义上的操作数地址,而是操作数本身立即寻址是获取操作数最快的方式

    直接寻址

    指令中在操作码字段后面的部分是操作数的地址

    直接寻址和立即寻址的区别

    立即寻址:是把一个“常数”送到指定位置。
    直接寻址:是把一个“变量”送到指定位置。

    间接寻址

    指令中给出的地址是操作数地址的地址

    寄存器寻址

    指定的寄存器中存放着操作数本身。

    寄存器间接寻址

    指定的寄存器中存放的不是操作数,而是操作数的地址。

    不常用的寻址方式

    基址寻址

    将基址寄存器 Rb 的内容与指令中给出的位移量 D 相加,形成操作数有效地址,即 EA=(Rb)+D。

    相对寻址

    相对寻址是基址寻址的一种变通,由程序计数器提供基准地址,指令中的地址码字段作为位移量 D,两者相加后得到操作数的有效地址,即 EA=(PC)+D。

    变址寻址

    把 CPU 中某个变址寄存器的内容与偏移量 D 相加来形成操作数有效地址。

    隐含寻址

    这种类型的指令,不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址。

    例题

    1. 在汇编指令中,操作数在某寄存器中的寻址方式称为(C)寻址。
      A.直接 B.变址 C.寄存器 D.寄存器间接

    2. 在汇编指令中,操作数包含在指令中的寻址方式称为(B)寻址。
      A.直接 B.立即 C.寄存器 D.寄存器间接

    3. 在汇编指令中,操作数的地址在某寄存器中的寻址方式称为(D)寻址。
      A.直接 B.立即 C.寄存器 D.寄存器间接

    更多相关内容
  • 直接寻址,指令中直接放地址: MOV A, 50H 把internal ram上,地址为80H单元里的数据送进A,假设80H地址里放的数据是01,那么最后A里的数据就是01 ...寄存器寻址,数据存于寄存器中 MOV A, R0 把R0中的数据放入A中 ...

    立即数寻址,指令中放的是数据
    MOV A, #01H
    把数据01H放入A中

    直接寻址,指令中直接放地址:
    MOV A, 50H
    把internal ram上,地址为80H单元里的数据送进A,假设80H地址里放的数据是01,那么最后A里的数据就是01

    间接寻址,地址存于寄存器中
    MOV A,@R0
    R0中存放的是地址值,把这个地址值中的数据放入A

    寄存器寻址,数据存于寄存器中
    MOV A, R0
    把R0中的数据放入A中

    在这里插入图片描述
    在这里插入图片描述
    图片内容转载自:http://jyhshin3.blogspot.com/search/label/8051

    展开全文
  • 文章目录指令格式指令中的(目标 / 源)操作数来源一、立即数寻址二、寄存器寻址三、存储器寻址3.1 直接寻址3.2 寄存器间接寻址3.3 基址寻址3.4 变址寻址3.5 基址变址寻址3.6 带位移的基址加变址寻址方式3.7 小结---...

    指令格式

    在这里插入图片描述

    指令中的(目标 / 源)操作数来源

    立即数:四位十六进制,如1234H
    寄存器:操作手在寄存器中
    存储器:操作数有“[ ]”

    一、立即数寻址

    把一个数直接在指令里面给出来,然后把这个数赋值给目标操作数。如:把 1234H 这个数赋值给DX【数据寄存器】
    在这里插入图片描述

    但是,一般这种寻址方式我们只会在赋初值的时候才会用。



    二、寄存器寻址

    就是我们不直接在指令里面给出源操作数,而是把这个源操作数放在一个寄存器里面,通过寄存器来赋值。

    例如:把通用寄存器 BX 里面存放的数据赋值给 AX。(源寄存器和目标寄存器的大小一定要相同)
    在这里插入图片描述



    三、存储器寻址

    3.1 直接寻址

    直接寻址的意思是,我们直接在指令里面给出源操作数的偏移地址,例如:
    在这里插入图片描述

    这里,我们就给出了源操作数的偏移地址是 3000H,那么段地址去哪了?

    在没有特殊声明时,默认数据都在数据段 DS,如果数据是在其他段,例如附加段 ES,那么需要通过段超越的方式:
    在这里插入图片描述

    下图所示过程执行的是指令: MOV AL , [2000H]
    在这里插入图片描述
    直接寻址看起来简单易懂,但是有一个大问题:假设我们要计算1+2+⋯+100,假设 1 位于存储器的第100个单元,如果采用直接寻址的方式,我们首先:要写出第一个地址,赋值、再写第二个地址,赋值、再相加、继续写地址,赋值、、、、这样一来,这个简单的问题都快需要几百行指令了,这显然十分麻烦,因此也有了下面的寄存器间接寻址。



    3.2 寄存器间接寻址

    这里是通过把偏移地址放在寄存器中的寻址方式。用于存放数据在内存中的偏移地址的,只能有 4 个通用寄存器:BX, BP, SI, DI

    BX:基址寄存器
    BP:基址指针
    SI:源变址寄存器
    DI:目的变址寄存器

    如果存放偏移地址的是寄存器:BX, SI, DI, 那么默认的段就是数据段 DS;
    如果存放偏移地址的是寄存器:BP,那么默认的段就是堆栈段 SS


    例子:
    在这里插入图片描述
    这就说明数据的偏移地址存放在 BX 里面,由于没有使用段超越,所以段默认是数据段 DS。但是这个例子里面取完数据赋值是有讲究的:

    因为我们知道:16位 CPU 它这个内存单元一个就是 8位的,我们通过 [BX] 所访问到的就是一个存储单元,也就是说,我们只取出了1个数,这个数是 8 位的。但是想要赋值的寄存器 AX 是 16位的,因此这时,我们还需要再往下多取一个8位二进制数,作为高位,存放在 AH。

    下图所示的过程执行的是指令: MOV AX , [ BX]
    在这里插入图片描述



    3.3 基址寻址 (寄存器相对寻址?)

    采用基址寻址时,我们的偏移地址是这样表示的:[基址寄存器] + 偏移量

    这里,偏移量是一个常数,而能够存放基址的,只有 BP 和 BX

    • 在使用 BX【基址寄存器】 时,默认的段就是数据段DS;
    • 在使用 BP 【基址指针】时,默认的段就是堆栈段 SS

    例子:
    在这里插入图片描述

    下图所示过程展示的是指令:MOV AL , [ BX + 5]
    在这里插入图片描述



    3.4 变址寻址(寄存器相对寻址?)

    上面我们采用的偏移地址表示是 [基址寄存器] + 偏移量,而在变址寻址中,我们偏移地址的表示就是:[变址寄存器] + 偏移量。

    在16位变址寻址中,变址寄存器只能是SI 、 DI,且它们都是默认段是 DS

    变址寻址主要的目的是为了一维数组的操作,因为我们知道,要想访问一维数组,需要有表头,还要有数组内数据和表头的距离。那么我们常常用那个常数偏移量代表表头,有寄存器的变化代表数组内元素距表头的距离。

    例子:
    在这里插入图片描述



    3.5 基址变址寻址

    类似的,在这种寻址方式下,我们的偏移地址就表示成:[基址寄存器] + [变址寄存器]

    基址+变址的目的是为了用于二重循环和对二维数组的操作。例如:
    在这里插入图片描述

    说明:在这种寻址模式下,哪个段主要取决于基址寄存器

    下图展示的是指令: MOV AX , [ BX + SI ]
    在这里插入图片描述



    3.6 带位移的基址加变址寻址方式

    一样地,这里偏移地址的表示方式是:[基址寄存器]+[变址寄存器]+偏移量]
    例如:
    在这里插入图片描述



    3.7 小结

    在这里插入图片描述



    ---------------------------------------------------------------------------------

    寻址方式中容易出现的错误

    在这里插入图片描述



    另类写法

    在这里插入图片描述
    在这里插入图片描述



    练习题

    第1题

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    第2题

    在这里插入图片描述

    展开全文
  • 寄存器寻址入门

    2021-07-29 21:22:34
    寄存器寻址指令的地址码部分给出某一个通用寄存器的编号Ri,这个指定的寄存器中存放着操作数.其寻址过程如图5.3所示, 图中的IR表示指令寄存器,它的内容是从主存中取出的指令.操作数S与寄存器Ri的关系为: 这种...

    寄存器寻址指令的地址码部分给出某一个通用寄存器的编号Ri,这个指定的寄存器中存放着操作数.其寻址过程如图5.3所示,

    在这里插入图片描述
    图中的IR表示指令寄存器,它的内容是从主存中取出的指令.操作数S与寄存器Ri的关系为:
    在这里插入图片描述

    这种寻址方式具有两个明显的优点:
    (1)从寄存器中存取数据比从主存中存取快得多.
    (2)由于寄存器的数量较少,其地址码字段比主存单元地址字段短得多.

    这种方式可以缩短指令长度,提高指令的执行速度,几乎所有的计算机都使用了寄存器寻址方式.

    总结

    • 寄存器寻址快
    展开全文
  • 关键字:、立即寻址、寄存器寻址、存储器操作数寻址方式【直接寻址、寄存器间接寻址、基址寻址、变址寻址、基址加变址寻址】、标志寄存器
  • 2、指令寻址与数据寻址指令寻址思维导图顺序寻址跳跃寻址数据寻址直接寻址间接寻址寄存器寻址寄存器间接寻址隐含寻址立即寻址总结偏移寻址基址寻址变址寻址相对寻址堆栈寻址比较 指令寻址 思维导图 顺序寻址 由于...
  • 4.4 数据的寻址方式4.4.1 指令数据的寻址方式4.4.2 数据寻址方式说明4.4.3 立即寻址4.4.4 直接寻址 4.4.1 指令数据的寻址方式 寻址方式:确定本条指令的数据地址或下一条要执行的指令地址的方法。 4.4.2 数据...
  • 寄存器寻址

    万次阅读 多人点赞 2017-04-05 20:24:06
    一、寄存器 ... AH(8位) AL(8位) AX(16位) (AXAL又称累加器)  BH(8位) BL(8位) BX(16位) (BX又称基址寄存器,唯一作为存储器指针使用寄存器)  CH(8位) CL(8位) CX(16位) (计数器,CX
  • 简单说一下寄存器寻址

    千次阅读 2021-03-21 09:00:13
    对于初学的朋友来说,寄存器寻址的几个常见的方式,理解起来还是比较麻烦的。现在尽量给大家说明白一点。 所谓寻址,就是要找存放某个东西的位置。 以下用日常生活中的情形来打比方,虽然不是很精准,但还是...
  • 操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。 立即数可以是8位、16位或32位,该数值紧跟在操作码之后。如果立即数为16位或32位,那么,它将按“高高低低...
  • [汇编语言]立即数寻址和寄存器寻址

    千次阅读 2018-11-25 19:41:45
    1. 什么是立即数? 操作数从指令代码中得到,即立即数(Immediate),也可以说就是指令的一部分了, 例如: MOV EAX 33221100H ;机器代码为 B8 00 11 22 33 ;操作码为 B8 ...立即数寻址方式只用于源操作...
  • 基于FPGA的带寄存器寻址SPI接口设计.pdf
  • 几个寄存器寻址方式

    2020-12-29 21:49:34
    sa:[idata]直接寻址 sa:[bx]寄存器间接寻址 sa:[bp]寄存器间接寻址 sa:[si]寄存器间接寻址 sa:[di]寄存器间接寻址 sa:[bx+idata]寄存器相对寻址 sa:[bp+idata] 寄存器相对寻址 sa:[si+idata] 寄存器相对寻址 sa:[di+...
  • 寄存器寻址方式

    2019-11-19 22:29:13
    微机系统有七种基本的寻址方式:立即寻址方式、寄存器寻址方式、直接寻址方式、寄存器间接寻址方式、寄存器相对寻址方式、基址加变址寻址方式、相对基址加变址寻址方式等。其中,后五种寻址方式是确定内存单元有效...
  • 间接寻址和寄存器寻址的比较间接寻址优点 扩大了操作数的寻址范围 便于编制程序,方便地完成子程序的返回 缺点 访存次数多,执行时间长 寄存器寻址优点 无须访存,减少执行时间 指令字短,节省存储空间 基址...
  • 寄存器寻址 IA: 每次传送后地址加4; IB: 每次传送前地址加4; DA: 每次传送后地址减4; DB: 每次传送前地址减4; FD: 满递减堆栈; ED: 空递减堆栈; FA: 满递增堆栈; EA: 空递增堆栈。 例: LDRIA R0!,...
  • 计算机只容许使用bx、si、di、bp寄存器做间接相对寻址 其中bx为基址存储器,si、di为变址存储器   内存寻址方式:确定访问内存存储单元偏移地址的方式称为寻址方式。 直接寻址:[偏移地址] 寄存器间接寻址:...
  • 数据寻址的方式 总而言之,数据寻址就是通过地址查找操作数的方法 立即数寻址 寄存器寻址 有寄存器的就是寄存器寻址 简单快捷 还有段寄存器比如说,ds,cs,ss 存储器寻址 ...
  • 存储器寻址方式:( 直接寻址方式,寄存器间接寻址方式,变址基址寻址方式,基址变址寻址方式) 串操作寻址方式 I/O端口寻址方式8086采用的是变字长指令格式,指令长度为1~6个字节,第一个字节包含操作码,第二...
  • 2,直接按照给出数据为地址,寻址; 3,以给出数据为地址找到数据,再以找到的数据为地址,寻需要的操作数; 先读百度百科《寻址方式》: http://baike.baidu.com/view/889427.htm 立即数寻址: ....
  • 寄存器间接寻址(register indirect addressing) 操作数...寄存器的使用在16位寻址和32位寻址时不一样。 (1)16位寻址 寄存器 有效地址存放在SI, DI, BX, BP中。 如果指令中指定的寄存器是BX, SI, DI,则操作数......
  • 常见的寻址方式有立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址、相对寻址变址寻址等。在立即寻址方式中,操作数包含在指令中;在直接寻址方式中,操作数存放在内存单元中;在寄存器寻址方式中,操作...
  • 具体操作时的寻址 简单的说就是如何给他地址,是直接给呢还是用寄存器 直接寻址方式(direct addressing) []里没有寄存器 寄存器间接寻址方式(register indirect) []只有一个寄存器 寄存器相对寻址方式(register ...
  • 标志寄存器 ZF:zero falg零标志位,判断运算结果是否为0,ZF=1,意味着运算结果为0,ZF=0,意味着运算结果为1 PF:奇偶标志位,判断运算结果1的个数是否为偶数 SF:sign flag符号标志位,判断运算结果是否为负,对象是有...
  • 低地址的数据加载到标号小的寄存器,高地址的数据加载到标号大的寄存器。 LDMIA R0!, {R1, R2, R3} --> addr=R0, R1 = [addr], R2 = [addr+4], R3 = [addr+8], R0 = R0+12 LDMIB/LDMED Load Multiple Increment ...
  • 0 前言 众所周知,对于8086汇编语言,有几大寻址方式,不过我觉得这...看了很多资料,让人眼花缭乱,各种专业词汇让人眼花缭乱,扑朔迷离,我直接用最简练的语言说明。 寻址,就是找数据 寻址方式,就是找数据的方...
  • 寄存器寻址:LDMIA,LDMIB,STMIA,STMIB,LDMDA,LDMDB,STMDA,STMDB; 堆栈寻址:LDMFA,LDMFD,STMFA,STMFD,LDMEA,LDMED,STMEA,STMED; IA: 每次传送后地址加4; IB: 每次传送前地址加4; DA: 每次...
  • 寄存器间接寻址

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

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 67,992
精华内容 27,196
关键字:

寄存器寻址和直接寻址的区别