存储器的操作数有哪几种寻址方式
㈠ 存储器寻址方式有哪些
存储器寻址可进一步分为直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址
㈡ 什么是直接寻址,什么是间接寻址,什么是存储器寻址
一、直接寻址方式
指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址,这种寻址方式为直接寻址方式。
在通常情况下,操作数存放在数据段中,所以,其物理地址将由数据段寄存器DS和指令中给出的有效地址直接形成,但如果使用段超越前缀,那么,操作数可存放在其它段。
如
MOV
BX,
[1234H]
二、寄存器间接寻址方式
操作数在存储器中,操作数的有效地址用SI、DI、BX和BP等四个寄存器之一来指定,称这种寻址方式为寄存器间接寻址方式。
在不使用段超越前缀的情况下,有下列规定:
若有效地址用SI、DI和BX等之一来指定,则其缺省的段寄存器为DS;
若有效地址用BP来指定,则其缺省的段寄存器为SS(即:堆栈段)。
如
MOV
BX,[DI]
㈢ 计算机中常用的寻址方式有哪几种
存取数据有关的寻址方式:立即寻址 、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址与程序控制有关的寻址方式:段内直接寻址、段间直接寻址、段内间接寻址、段间间接寻址。
寻址方式是指寻找指令或操作数有效地址的方式,也就是指确定本条指令的数据地址,以及下一条将要执行的指令地址的方式。
(3)存储器的操作数有哪几种寻址方式扩展阅读:
指令中的地址码字段并不代表操作数的真实地址,称为形式地址(A)。用形式地址并结合寻址方式,可以计算出操作数在存储器中的真实地址,称为有效地址(EA)。寻找下一条要执行的指令地址称为指令寻址,寻找操作数的地址称为数据寻址。
1、指令寻址
指令寻址方式分为顺序寻址方式和跳跃寻址方式。
1)顺序寻址方式可通过程序计数器PC加1,自动形成下一条指令的地址。
2)跳跃寻址则通过转移指令实现。所谓跳跃,是指下条指令的地址码不是由程序计数器给出的,而是由本条指令给出。
2、数据寻址
数据寻址是如何在指令中表示一个操作数的地址,如何用这种表示得到操作数或怎样计算出操作数的地址。
数据寻址方式的种类较多,为了区别各种方式,通常在指令中设一个字段,用来指明属于属于那种寻址方式。
㈣ 基本指令集对存储器操作数的寻址方式有哪些
. 立即寻址 . 直接寻址 . 变址寻址 . 基址寻址 追问: 这几个寻址方式你能帮我简单归纳一下吗。
满意请采纳
㈤ 访问程序存储器中的常数数据,可以使用哪些寻址方式
1立即数寻址;2寄存器寻址;3.主存寻址。
直接在指令中给出操作数,不需要存储单元,执行速度快,但是显然数据也不能冗长,通用型性就差,一般用来指定一些要求不高的整形整数。操作数来源于寄存器,结果也写回寄存器。显然这个主要用到寄存器,这也是他的名字的由来。
指令特点
MCS-51的指令系统由111条指令组成。如果按字节数分类,有49条单字节指令,46条双字节指令和16条三字节指令,以单字节指令为主;如果按照指令执行时间分类,有64条单周期指令、45条双周期指令和2条四周期指令,以单周期指令为主。存储效率高、执行速度快,可以进行直接地址到直接地址的数据传送,能把一个并行I/O口中的内容传送到内部RAM单元中而不必经过累加器A或工作寄存器Rn。这样可以大大提高传送速度和缓解累加器A的瓶颈效应。
㈥ 简述三种不同的寻址方式及其操作数来源。
1、寻址方式:
立即寻址、寄存器寻址、直接寻址。
2、操作数来源:
立即数、寄存器操作数、内存操作数。
寻址方式分为两类,即指令寻址方式和数据寻址方式,前者比较简单,后者比较复杂。值得注意的是,在传统方式设计的计算机中,内存中指令的寻址与数据的寻址是交替进行的。
(6)存储器的操作数有哪几种寻址方式扩展阅读
顺序寻址方式
由于指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令地顺序进行。也就是说,从存储器取出第1条指令,然后执行这条指令;接着从存储器取出第2条指令,再执行第二条指令;接着再取出第3条指令。
跳跃寻址方式
当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。注意,程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。
㈦ 汇编语言中操作数寻址方式有哪些,各自有什么特点,怎么区分呢
形成操作数的有效地址的方法,称为操作数的寻址方式。
例如,一种单地址指令的结构如下所示,其中用X、I、D各字段组成该指令的操作数地址。操作码OP 变址X 间址I 形式地址D
指令中操作数字段的地址码是由形式地址和寻址方式特征位等组合形成,因此,一般来说,指令中所给出的地址码,并不是操作数的有效地址。因此,寻址过程就是把操作数的形式地址,变换为操作数的有效地址的过程。
一、隐含寻址
在指令中不明显的给出而是隐含着操作数的地址。例如,单地址的指令格式,没有在地址字段中指明第
二操作数地址,而是规定累加寄存器AC作为第二操作数地址,AC对单地址指令格式来说是隐含地址。
二、立即寻址
指令的地址字段指出的不是操作数的地址,而是操作数本身。这种方式的特点是指令执行时间很短,不需要访问内存取数。
例如:单地址的移位指令格式为 OP(移位) F D
这里D不是地址,而是一个操作数。F为标志位,当F=1,操作数进行右移;当F=0时,操作数进行左移。
三、直接寻址
直接寻址特点是:在指令格式的地址字段中直接指出操作数在内存的地址D。点击演示
采用直接寻址方式时,指令字中的形式地址D就是操作数的有效地址E,既E=D。因此通常把形式地址。 点击演示
D又称为直接地址。此时,由寻址模式给予指示。 如果用S表示操作数,那么直接寻址的逻辑表达式为
S=(E)=(D)
四、间接寻址
间接寻址的情况下,指令地址字段中的形式地址D不是操作数的真正地址,而是操作数地址的指示器,D单元的内容才是操作数的有效地址。
如果把直接寻址和间接寻址结合起来,指令有如下形式:操作码 I D
寻址特征位I=0,表示直接寻址,这时有效地址E=D;I=1,表示间接寻址,这时有效地址E=(D)。
间接寻址方式是早期计算机中经常采用的方式,但由于两次访存,影响指令执行速度,现在已不大使用。
五、寄存器寻址方式和寄存器间接寻址方式
当操作数不放在内存中,而是放在CPU的通用寄存器中时,可采用寄存器寻址方式。此时指令中给出的操作数地址不是内存的地址单元号,而是通用寄存器的编号。
寄存器间接寻址方式与寄存器寻址方式的区别在于:指令格式中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数在内存中。
六、相对寻址方式
相对寻址是把程序计数器PC的内容加上指令格式中的形式地址D而形成操作数的有效地址。程序计数器的内容就是当前指令的地址。“相对”寻址,就是相对于当前的指令地址而言。 点击演示
采用相对寻址方式的好处是程序员无须用指令的绝对地址编程,所编程序可以放在内存任何地方。
此时形式地址D通常称为偏移量,其值可正可负,相对于当前指令地址进行浮动。
七、基址寻址方式
基址寻址方式是将CPU中基址寄存器的内容加上指令格式中的形式地址而形成操作数的有效地址。点击演示
它的优点是可以扩大寻址能力。同形式地址相比,基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中寻址。
八、变址寻址方式
变址寻址方式与基址寻址方式计算有效地址的方法很相似,它把CPU中某个变址寄存器的内容与偏移量D相加来形成操作数有效地址。 但使用变址寻址方式的目的不在于扩大寻址空间,而在于实现程序块的规律性变化。
九、块寻址方式
块寻址方式经常用在输入输出指令中,以实现外存储器或外围设备同内存之间的数据块传送。块寻址方式在内存中还可用于数据块搬家。 块寻址时,通常在指令中指出数据块的起始地址(首地址)和数据块的长度(字数或字节数)。
如果数据块是变长的,可用三种方法指出它的长度:
(1)指令中划出字段指出长度;
(2)指令格式中指出数据块的首地址与末地址;
(3)由块结束字符指出数据块长度。 操作码 首地址 标志位 末地址
十、段寻址方式
微型机中采用了段寻址方式,例如它们可以给定一个20位的地址,从而有1M存储空间的直接寻址能力。为此将整个1M空间存储器以64K为单位划分成若干段。在寻址一个内存具体单元时,由一个基地址再加上某些寄存器提供的16位偏移量来形成实际的20位物理地址。这个基地址就是CPU中的段寄存器。在形成20位物理地址时,段寄存器中的16位数会自动左移4位,然后以16位偏移量相加,即可形成所需的内存地址。
这种寻址方式的实质还是基址寻址。 点击演示
㈧ 指令寻址方式主要是哪两种
指令寻址可以细分为顺序寻址和跳跃寻址。
1、顺序寻址方式
程序中的指令序列在主存中是顺序存放的。因此,程序执行时,从该程序的第一条指令开始,逐条取出并逐条执行的。这种程序的顺序执行过程,称为顺序寻址方式。顺序寻址可通过程序计数器PC加1,自动形成下一条指令的地址。
2、跳跃寻址方式
跳跃寻址则需要通过程序转移类指令实现。跳跃寻址的转移地址形成方式有3种:直接(绝对)、相对和间接寻址。
(8)存储器的操作数有哪几种寻址方式扩展阅读
在存储器中,操作数或指令字写入或读出的方式,有地址指定方式、相联存储方式和堆栈存取方式。几乎所有的计算机,在内存中都采用地址指定方式。当采用地址指定方式时,形成操作数或指令地址的方式称为寻址方式。
寻址方式分为两类,即指令寻址方式和数据寻址方式,前者比较简单,后者比较复杂。值得注意的是,在传统方式设计的计算机中,内存中指令的寻址与数据的寻址是交替进行的。
㈨ ip寻址方式有哪几种
七种寻址方式“
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]