7种寻址方式

合集下载

七种寻址方式定义

七种寻址方式定义

七种寻址方式定义1. 直接寻址(Direct Addressing)直接寻址是一种最简单的寻址方式,它通过使用一个固定的地址来引用存储器中的数据。

在直接寻址中,程序员可以直接指定要访问的内存地址,使得数据能够被快速地检索和处理。

优点: - 简单直观,易于理解和实现。

- 访问速度快,因为没有额外的计算操作。

缺点: - 空间浪费:由于每个变量都需要分配一个独立的内存地址,可能会导致内存空间的浪费。

- 灵活性差:无法动态地分配和管理内存。

2. 间接寻址(Indirect Addressing)间接寻址是一种通过使用指针来间接访问数据的寻址方式。

在间接寻址中,指针包含了要访问的数据的地址,程序员通过操作指针来获取或修改这些数据。

优点: - 灵活性高:可以动态地分配和管理内存。

- 节省空间:多个变量可以共享同一个指针,减少了内存占用。

缺点: - 访问速度相对较慢:由于需要额外的指针操作,访问数据比直接寻址要慢一些。

3. 寄存器寻址(Register Addressing)寄存器寻址是一种通过使用CPU内部的寄存器来访问数据的寻址方式。

在寄存器寻址中,操作数直接存储在CPU的寄存器中,而不是通过内存地址来获取。

优点: - 访问速度极快:由于数据直接存储在CPU的寄存器中,不需要额外的内存访问操作。

- 节省空间:不占用内存空间。

缺点: - 寄存器数量有限:由于现代计算机中可用的寄存器数量有限,可能无法满足大量数据的需求。

- 可移植性差:不同的计算机架构可能具有不同数量和类型的寄存器。

4. 立即寻址(Immediate Addressing)立即寻址是一种通过使用指令本身或指令后面紧跟着的常量值来访问数据的寻址方式。

在立即寻址中,操作数直接包含在指令中,而不需要额外的地址信息。

优点: - 简单直观:操作数直接包含在指令中,易于理解和实现。

- 节省空间:不需要额外的地址信息。

缺点: - 数据大小受限:由于操作数直接包含在指令中,所以通常只能表示较小的常量值。

80C51单片机指令系统的7种寻址方式

80C51单片机指令系统的7种寻址方式

80C51单片机指令系统的7种寻址方式寻址方式就是寻找操作数或指令地址的方式。

寻址方式包含两方面的内容:一是操作数的寻址,二是指令地址的寻址(如转移指令、调用指令)。

寻址方式是计算机性能的具体表达,也是编写汇编语言程序的根底,必须非***悉并灵活运用。

对于两操作数指令,源操作数有寻址方式,目的操作数也有寻址方式。

若不特别声明,后面提到的寻址方式均指源操作数的寻址方式。

80C51单片机指令系统共有7种寻址方式,包括:立即寻址、存放器寻址、直接寻址、存放器间接寻址、变址寻址、相对寻址和位寻址。

现以7条指令为例说明这7种寻址方式。

(1)立即寻址:将操作数直接写在指令中。

如指令①:MOV A,#3AH 执行的操作是将立即数3AH送到累加器A中,因为指令中有立即数3AH,所以称此寻址方式为立即寻址。

注意,立即数前面必须加“#”号,以区别立即数和直接寻址。

该指令的执行过程如图1所示。

图1 立即数寻址示意图(2)存放器寻址:是指将指令操作数存放于存放器中,存放器包括工作存放器R0~R7、累加器A、通用存放器B、地址存放器DPTR等。

如指令②:MOV A,R0 ;(A)←(R0)该指令将存放器R0中的数送入累加器A中,因为指令源操作数为存放器R0,所以称此寻址方式为存放器寻址。

如果程序状态存放器PSW的RS1RS0=00(选中第0组工作存放器,对应地址为(00H~07H),设RAM区00H 的内容为20H,则执行MOV A,R0指令后,累加器A中的内容变为20H。

该指令执行过程如图2所示。

图2 存放器寻址示意图(3)直接寻址:是指把存放操作数的内存单元的地址直接写在指令中。

在80C51单片机中可以直接寻址的存储器主要有内部RAM区和特殊功能存放器SFR区。

如指令③:MOV A,30H ;(A)←(30H)该指令将地址为30H的存储单元的内容送入累加器A,因为指令源操作数为地址直接给出的存储单元,故称此寻址方式为直接寻址。

寄存器与7种寻址方式

寄存器与7种寻址方式

一、寄存器总共有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 代码段IPDS 数据段SS 堆栈段SP BPES 附加段二、七种寻址方式:1、立即寻址方式:操作数就包含在指令中。

作为指令的一部分,跟在操作码后存放在代码段。

这种操作数成为立即数。

立即数可以是8位的,也可以是16位的。

例如:指令: MOV AX,1234H则: AX = 1234H2、寄存器寻址方式:操作数在CPU内部的寄存器中,指令指定寄存器号。

7种寻址方式

7种寻址方式
提一个问题我们知道工作寄存器就是内存单元的一部分如果我们选择工作寄存器组0则r0就是ram的00h单元那么这样一来mova00h和movar0不就没什么区别了吗201220123315151010的确这两条指令执行的结果是完全相同的都是将00h单元中的内容送到a中去但是执行的过程不同执行第一条指令需要2个机器周期而第二条则只需要1个机器周期第一条指令变成最终的目标码要两个字节e5h00h而第二条则只要一个字节e8h就可以了
2012-6-17
13
如:JC
23
指令代码
程序存储区 1000H 1001H 1002H 40 23 30
当前PC

1024H 1025H

47 45
23H
1002H ALU 1025H
2012-6-17
14
3.2.7 位寻址 Bit Addressing
对片内RAM的位寻址区和某些可位寻址的特殊功 能寄存器进行位操作时的寻址方式。
3.3.9 交换指令(5条) XCH A,Rn XCH A, direct XCH A, @Ri XCHD A, @Ri SWAP A 例: 已知A中的内容为34H
目的操作数寻址方式(3种):
直接寻址、寄存器寻址、寄存器间接寻址 除了目的操作数为ACC的指令影响奇偶标志P外,一般不影响 2012-6-17 17 标志位。
3.3.1 以累加器为目的操作数的指令(4条) MOV MOV MOV MOV
;Rn→A ;(direct)→A ;(Ri)→A ;data→A 将源操作数指定内容送到A中。
则就相当于执行了
2012-6-17
MOV DPTR,#3512H。
21
3.3.6 累加器A与片外RAM之间的数据传递类指令(4条) MOVX MOVX MOVX MOVX A,@Ri @Ri,A A,@DPTR @DPTR,A

七种寻址方式

七种寻址方式
取指过程
程序计数器 地址寄存器 外部地址总线AB 外部地址总线AB
0002H PC= 0000H 0001H
0000H
内 部 数 据 总 线
(PC) (PC) (PC)
执行过程
运算器 ①② 累加器A 累加器A 存 储 器
0002H 0001H 0 0 0 0 1 0 0 1 0000H 0 1 1 1 0 1 0 0
…Leabharlann MOVC A,@A+DPTR执行示意图 ,@A+DPTR执行示意图

6.位寻址方式 MCS-51有位处理功能 可以对数据位进行操作,例如: 有位处理功能, MCS-51有位处理功能,可以对数据位进行操作,例如: MOV C,40H C, 是把位40H的值送到进位位C 40H的值送到进位位 是把位40H的值送到进位位C。 寻址范围包括: 寻址范围包括: 内部RAM中的位寻址区。位有两种表示方法,例如, RAM中的位寻址区 (1)内部RAM中的位寻址区。位有两种表示方法,例如, 40H;另一种是单元地址加上位,例如,(28H).0, 40H;另一种是单元地址加上位,例如,(28H).0,指 的是28H单元中的最低位。它们是等价的。 28H单元中的最低位 的是28H单元中的最低位。它们是等价的。 (2)特殊功能寄存器中的可寻址位 可寻址位在指令中有如下4种的表示方法: 可寻址位在指令中有如下4种的表示方法: 直接使用位地址。例如PSW.5的位地址为0D5H PSW.5的位地址为0D5H。 a. 直接使用位地址。例如PSW.5的位地址为0D5H。
程序存储区 1020 EA 12 R2
片内RAM区 4A
ACC
4A
MOV A,R2执行示意图
2.直接寻址方式 操作数直接以单元地址的形式给出: 操作数直接以单元地址的形式给出: A, MOV A,40H 寻址范围: 寻址范围: 内部RAM 128个单元 RAM的 (1) 内部RAM的128个单元 特殊功能寄存器。除了以单元地址的形式外, (2) 特殊功能寄存器。除了以单元地址的形式外, 可用寄存器符号的形式给出 例如: 的形式给出。 还可用寄存器符号的形式给出。例如: A, A,P0是等价的 是等价的。 MOV A,80H 与 MOV A,P0是等价的。 直接寻址方式是访问特殊功能寄存器的唯一寻址方式

林立张俊亮版单片机原理及应用第三章答案

林立张俊亮版单片机原理及应用第三章答案

第三章习题1.MCS-51单片机有哪几种寻址方式?适用于什么地址空间?答: MCS-51单片机共有7种寻址方式:直接寻址、寄存器寻址、寄存器间接寻址、立即寻址、变址寻址、位寻址和相对寻址。

直接寻址:操作数所在存储单元地址由指令直接给出,仅限于在片内RAM 中寻址。

寄存器寻址:指令中以通用寄存器的形式表示操作数。

通用寄存器这里特指:A、B、DPTR、R0-R7、CY。

操作数在编码指定的寄存器中,适用于片内00H 至1FH的32个字节,用R0,…,R7表示。

注意B寄存器仅在乘法和除法指令中属于寄存器寻址。

寄存器间接寻址:指令指出某一个寄存器的内容作为操作数地址,操作数地址在编码指定的寄存器中,适用于片内RAM的全部空间,它是一种二次寻找操作数地址的寻址方式。

立即寻址:操作数在指令中直接给出,并与操作码的机器码一起存放在程序存储器中,程序执行时可以立即得到,而不需要另外寻找。

适用于用8位二进制立即数对片内RAM所有地址单元赋值,也可用16位二进制立即数对DPTR赋值,有些编译器中也可用十进制表示。

变址寻址:以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,将基址寄存器与变址寄存器的内容相加形成操作数的实际地址的一种寻址方式,变址寻址方式适用于程序存储器ROM。

位寻址:指令中直接给出操作数所在单元的位地址,适用于片内RAM里的部分存储单元和某些特殊功能寄存器。

相对寻址:为相对转移指令而设,以PC内容为基址,指令中直接给出转移的相对偏移量,其转移目标只能形成-128至+127字节范围内的跳转。

2.MCS-51单片机的PSW程序状态字中无ZERO(零)标志位,怎样判断某内部数据单元的内容是否为零?答:由于MCS-51单片机的PSW程序状态字中无ZERO(零)标志位,无法直接进行判断,则需要将PSW中的数字编程送到A累加器中,如MOV A,PSW再判断A中的数字是否为零来确定其值是否为零。

3.编程将内部RAM的20H--30H单元内容清零。

七种寻址方式.ppt

七种寻址方式.ppt
其中Ri中的内容为40H,把内部RAM中40H单元的内容送 到A。
寻址范围: (1)访问内部RAM低128个单元,其通用形式为@Ri (2)对片外数据存储器的64K字节的间接寻址,例如:
MOVX A,@DPTR
(3)片外数据存储器的低256字节
例如:MOVX A,@Ri
(4)堆栈区
堆栈操作指令PUSH(压栈)和POP(出栈)使用堆 栈指针(SP)作间址寄存器
寄存器DPTR等。
1020
程序存储区 EA
片内RAM区
12
R2
4A
ACC
4A
MOV A,R2执行示意图
2.直接寻址方式 操作数直接以单元地址的形式给出: MOV A,40H 寻址范围: (1) 内部RAM的128个单元 (2) 特殊功能寄存器。除了以单元地址的形式外, 还可用寄存器符号的形式给出。例如: MOV A,80H 与 MOV A,P0是等价的。
地址 译码
寄存器区 内部控制信号
数据缓冲器 外部数据总线DB
指令 时钟及清零 寄存器
译码
外部控制总线CB
返回
D7 D6 D5 D4 D3 D2 D1 D0 27H 0 0 1 0 0 0 0 0
3F 3E 3D 3C 3B 3A 39 38
图4.9 SETB 3DH 指令执行示意图
7.相对寻址方式
在相对寻址的转移指令中,给出了地址偏 移量,以“rel”表示,即把PC的当前值加上偏 移量就构成了程序转移的目的地址:
目的地址=转移指令所在的地址 + 转移指令的字 节数 + rel
偏移量rel是一带符号的8位二进制数补码数 。
范围是:–128 ~ +127
向地址增加方向最大可转移(127+转移指令字节) 个单元地址,向地址减少方向最大可转移 (128-转移指令字节)个单元地址。

8086中的七种寻址方式

8086中的七种寻址方式

8086中的七种寻址⽅式寻址⽅式8086/8088有七种基本的寻址⽅式:⽴即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址。

其中,后五种寻址⽅式(即直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址和相对基址变址寻址)属于存储器寻址,⽤于说明操作数或操作数地址所在存储单元的地址。

这五种⽅式也就是确定存放操作数的存储单元有效地址EA的⽅法,这⾥所说的有效地址就是在前⾯⼀节讲存储器分段中所说的段内偏移地址。

除了这些基本的寻址⽅式以外,还有固定寻址和I/O端⼝寻址等,但不会在本节中介绍到。

基本寻址⽅式下⾯重点说⼀下这七种基本寻址⽅式的特点:1. ⽴即寻址⽅式先解释⼀个概念,叫做⽴即数。

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

这种操作数称为⽴即数。

⽴即寻址⽅式所提供的操作数紧跟在操作码后⾯,与操作码⼀起放在指令代码段中,不需要到其他地址单元中去取。

⽴即数可以是8位,也可以是16位。

这种寻址⽅式主要⽤于给寄存器或存储单元赋初值的场合。

⽴即寻址⽅式是这七种寻址⽅式中速度最快的寻址⽅式。

举例:MOV AX, 1234H ; 给AX寄存器赋值为1234H2. 寄存器寻址⽅式寄存器寻址的特点是操作数在CPU内部的寄存器中,在指令中指定寄存器号。

对于16位操作数,寄存器可以是AX、BX、CX、DX、SI、DI和SP等;对于8位操作数,寄存器可以是AL、AH、BL、BH、CL、CH、DL和DH。

例如:MOV SI, AXMOV AL, DH由于操作数在寄存器中,不需要通过访问存储器来取得操作数,所以采⽤寄存器寻址⽅式的指令执⾏速度较快。

3. 直接寻址⽅式直接寻址的操作数在存储器中,指令直接包含有操作数的有效地址。

由于操作数⼀般存放在数据段,所以操作数的地址由DS加上指令中给出的16位偏移得到。

假如DS内容是5000H,地址为51234H字存储单元中的内容时6789H,那么在执⾏“MOV AX, [1234H]”后寄存器AX的内容是6789H。

七种寻址方式

七种寻址方式

七种寻址方式一、立即寻址方式操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。

立即数可以是8位、16位或32位,该数值紧跟在操作码之后。

如果立即数为16位或32位,那么,它将按“高高低低”的原则进行存储。

例如:MOV AH,80H ADD AX,1234H MOV ECX,123456HMOV B1,12H MOV W1,3456H ADD D1,32123456H其中:B1、W1和D1分别是字节、字和双字单元。

以上指令中的第二操作数都是立即数,立即数寻址方式通常用于对通用寄存器或内存单元赋初值。

二、寄存器寻址方式指令所要的操作数已存储在某寄存器中,或把目标操作数存入寄存器。

把在指令中指出所使用寄存器(即:寄存器的助忆符)的寻址方式称为寄存器寻址方式。

指令中可以引用的寄存器及其符号名称如下:8位寄存器有:AH、AL、BH、BL、CH、CL、DH和DL等;16位寄存器有:AX、BX、CX、DX、SI、DI、SP、BP和段寄存器等;32位寄存器有:EAX、EBX、ECX、EDX、ESI、EDI、ESP和EBP等。

寄存器寻址方式是一种简单快捷的寻址方式,源和目的操作数都可以是寄存器。

1、源操作数是寄存器寻址方式如:ADD VARD,EAX ADD VARW,AX MOV VARB,BH等。

其中:VARD、VARW和VARB是双字,字和字节类型的内存变量。

在第4章将会学到如何定义它们。

2、目的操作数是寄存器寻址方式如:ADD BH,78h ADD AX,1234h MOV EBX,12345678H等。

3、源和目的操作数都是寄存器寻址方式如:MOV EAX,EBX MOV AX,BX MOV DH,BL等。

三、直接寻址方式指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址,这种寻址方式为直接寻址方式。

在通常情况下,操作数存放在数据段中,所以,其物理地址将由数据段寄存器DS和指令中给出的有效地址直接形成,但如果使用段超越前缀,那么,操作数可存放在其它段。

MCS-51系列单片机寻址方式

MCS-51系列单片机寻址方式

程序存储器
SFR
PC
10010011 操作码 A
1XEXH
030FH
XX
DPH 02H 02F1H DPL F1H
ALU
02F1H +1EH=030FH
7
6、相对寻址(一)
相对寻址以PC当前值(PC当前值是执行完指令后的值,也就 是当前指令的PC值+指令所占的字节数)作为基地址,与指令 中给定的偏移量rel相加,所得的结果作为程序的转移地址, 指令中的偏移量rel是一个用补码表示的8位带符号数。相对 寻址用于相对转移指令中,如:
MCS-51系列单片机寻址方 式
寻址方式:计算机指令中操作数(按地址)获取的方式 MCS-51系列单片机提供了7种寻址方式,如果一条指令 中包含多个操作数,就可能用到一种以上的寻址方式
1、立即寻址 2、直接寻址 3、寄存器寻址 4、寄存器间接寻址 5、变址寻址 6、相对寻址 7、位寻址
1
1、立即寻址(一)
8
6、相对寻址(二)
程序存储器
PC 0100H PC+1 0101H PC+2 0102H
60H 30H
操作码
偏移量 rel=30H
PC 01032H
PC 0123H XX
ALU 0102H +30H= 0132H
9
7、位寻址
MCS-51系列单片机中有专用的位运算指令,可以对位寻址区的每一 个位进行数据传送、逻辑运算等操作,如:
R5 XX
A XX
5
4、寄存器间接寻址
在指令的操作码中包含了某一工作寄存器的地址(可用作地 址指针的工作寄存器是@Ri:R0、R1),而操作数地址则存 放在该寄存器中,如:

七种寻址方式

七种寻址方式

七种寻址方式1、立即寻址方式:操作数就包含在指令中。

作为指令的一部分,跟在操作码后存放在代码段。

这种操作数成为立即数。

立即数可以是8位的,也可以是16位的。

例如:指令: MOV AX,1234H则: AX = 1234H2、寄存器寻址方式:操作数在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 = 51234H51234H地址中的内容为:6789H执行该指令后,(AX) = 6789H5、寄存器相对寻址方式:操作数在存储器中,操作数的有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、DI)的内容加上指令中给定的8位或16位位移量之和BX 8位位移量EA(有效地址) = BP +SI 16位位移量DI在一般情况下,如果SI、DI、或BX中的内容作为有效地址的一部分,那么引用的段寄存器是DS;如果BP中的内容作为有效地址的一部分,那么引用的段寄存器是SS。

8051寻址方式总结

8051寻址方式总结

8051寻址方式总结8051 单片机共有7 种寻址方式。

寻址方式是指令中确定操作数的形式,用来确定操作数所处的存储空间。

1.立即寻址:在指令中直接给出操作数MOV A,#80H 8 位操作数MOV A, #2000H 16 位操作数2.直接寻址:指令中直接给出操作数地址(1)SFR,这一存储空间只能使用直接寻址MOV PSW, #50H(2)内部数据RAM,这一存储空间可以使用直接寻址和寄存器间接寻址MOV A, 30H3.寄存器寻址:以通用寄存器的内容作为操作数(通用寄存器包括A, B, DPTR, R0~R7)INC DPTR 注意:A、B 既是通用寄存器,也是SFR(直接寻址)4.寄存器间接寻址:以寄存器中的内容作为操作数的地址能够用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP 区分内部数据RAM 寻址和外部数据RAM 寻址:外部数据RAM 寻址指令上采用MOVX 对内部数据RAM 寻址:使用8 位的R0 或者R1 即可MOV @R0, A 对外部数据RAM 寻址:使用P2 端口提供高8 位地址,使用R0 或者R1 提供低8 位地址;或者使用16 位的DPTR 提供地址MOVX A, @R1MOVX @DPTR, A5.变址寻址:以基址寄存器PC 或者DPTR 与变址寄存器A 中的内容之和作为操作数的地址变址寻址只能对程序存储器中的数据进行寻址,由于程序存储器是只读的,因此变址寻址只有读操作,指令上采用MOVCMOVC A,@A+DPTRMOVC A, @A+PC6.相对寻址:用于修改PC 的值,使得PC 加上指令中给出的一字节的偏移量由于转移指令有两字节和三字节这两种形式,因此偏移量的范围分别为-126~+129 和-125~+130SJMP 80H。

8051单片机指令系统的7种寻址方式解析

8051单片机指令系统的7种寻址方式解析

8051单片机指令系统的7种寻址方式解析寻址方式:寻址就是寻找操作数的地址。

绝大多数指令执行时都需要操作数,因此就存在如何确定操作数地址的问题。

所谓寻址方式就是通过什么途径获取操作数的方式。

根据指令操作的需要,计算机总是提供多种寻址方式。

一般来说,寻址方式越多计算机的寻址能力就越强,但指令系统也就越复杂。

8051指令系统有7种寻址方式:寄存器寻址,直接寻址,寄存器间接寻址,立即寻址,基址寄存器加变址寄存器间接寻址,相对寻址,位寻址,下面分别介绍。

寄存器寻址寄存器寻址:寄存器寻址就是操作数在寄存器中,因此指定了寄存器就得到了操作数。

采用寄存器寻址方式的指令都是一字节的指令,指令中以符号名称来表示寄存器。

例如:MOV A R1 这条指令的功能是把工作寄存器R1的内容传送到累加器A中,由于操作数在R1中,因此指令中指定了R1,也就得到了操作数。

寄存器寻址方式的寻址范围包括:工作寄存器组R0~R7,部分特殊寄存器ACC,B,DPTR 等。

直接寻址直接寻址:直接寻址就是在指令中直接给出操作数所在单元的真实地址。

这里给出的操作数直接地址为8位二进制地址。

程序中一般用十六进制数表示。

例如:指令MOV A,30H 把内部RAM单元30H中的数据传送给累加器A,指令中30H就是操作数的直接地址。

直接寻址方式的寻址范围包括:内部数据存储器低128单元,特殊功能寄存器。

特殊功能寄存器在指令的表示中除了可以以直接地址形式给出外,还可以以寄存器符号形式给出,如对累加器A,在指令中可使用其直接地址OEOH,也可使用其符号形式ACC。

立即寻址立即寻址:立即寻址方式就是实际操作数作为指令的一部分,在指令中直接给出,取指令时,可在程序存储器中直接取得操作数。

通常把出现在指令中的操作数称为立即数。

采用立即寻址方式的指令,在立即数前面加上。

数据的7种寻址方式

数据的7种寻址方式

第3章数据的7种寻址方式,包括指令的格式,功能,指令的正误判断。

20位物理地址的生成:将段地址添上一个0(十六进制),再加上偏移地址。

数据传送指令:MOV PUSH,POP,XCHG,LEA,IN,OUT1、MOV ,注意指令的正误判断,可从3点入手。

(1)指令格式(2)数据大小是否超出范围(3)类型是否匹配。

通常,不能在两个内存单元间直接传送,段寄存器间不能直接传送,立即数不能直接传送到段寄存器,不能用CS作目的操作数。

2、PUSH 入栈指令,先减后压。

不能对字节进行压栈操作。

3、POP 出栈指令,先弹后加,将栈顶的一个字弹出到目的操作数。

4、EXCHG 交换指令。

不能在两个内存单元间直接交换。

5、LEA 取有效地址指令。

6、IN 输入指令,当端口大于255时,要用DX来表示端口号。

7、OUT 输出指令,当端口大于255时,要用DX来表示端口号算术运算等指令1、ADD AL,[1000H]例:AL=85H,BL=79H,执行指令ADD AL,BLAL= 0FEH ,CF= 0 ,OF= 02、SUB AL,BL3、INC [1000H] ERRORINC BYTE PTR [1000H]INC WORD PTR [1000H]该指令不影响CF标志4、DEC [1000H] ERRORDEC BX5、NEG AL 求相反数例:Y=X,X>=0; Y=|X|,X<0,编写程序段实现该功能MOV AL,XCMP AL,0JGE Y1NEG ALY1:MOV Y,ALHLT编程序的思路:取数据,在CPU里做运算,存数据;如果数据较多,通常要设指针,再取数据,取完数据后,修改地址指针,又取下一个数据,循环下去。

6、CMP AL,BL无符号数,A表示大,B表示小,E表示相等。

有符号数,G表示大,L表示小,E表示相等。

例:CMP AX,BXJGE NEXTXCHG AX,BXNEXT: CMP AX,CXJGE DONEXCHG AX,CXDONE:该程序段的功能是找AX,BX,CX中最大的数,并把最大的数放在AX中。

51单片机寻址方式

51单片机寻址方式

51单片机的寻址方式寻址方式:指定操作数所在单元的方法。

在我们学习的8051单片机中,有7种寻址方法,下面我们将逐一进行分析。

一、立即寻址用“#”作前缀MOV A,#20H在这种寻址方式中,指令多是双字节的。

立即数就是存放在程序存储器中的常数,换句话说就是操作数(立即数)是包含在指令字节中的。

例如:MOV A,#3AH这条指令的指令代码为74H、3AH,是双字节指令,这条指令的功能是把立即数3AH送入累加器A中。

MOV DPTR,#8200H在前面学单片机的专用寄存器时,我们已学过,DPTR是一个16位的寄存器,它由DPH及DPL两个8位的寄存器组成。

这条指令的意思就是把立即数的高8位(即82H)送入DPH寄存器,把立即数的低8位(即00H)送入DPL寄存器。

二、直接寻址指令中直接给出操作数的地址。

MOV A,30H;这条指令中操作数就在30H单元中,也就是30H是操作数的地址,并非操作数。

MOV 30H,DPH在80C51单片机中,直接地址只能用来表示内部数据存储器、位地址空间以及特殊功能寄存器,具体的说就是:1、内部数据存储器RAM低128单元。

在指令中是以直接单元地址形式给出。

我们知道低128单元的地址是00H-7FH。

在指令中直接以单元地址形式给出这句话的意思就是这0-127共1 28位的任何一位,例如0位是以00H这个单元地址形式给出、1位就是以01H单元地址给出、127位就是以7FH形式给出。

2、位寻址区。

20H-2FH地址单元。

3、特殊功能寄存器。

专用寄存器除以单元地址形式给出外,还可以以寄存器符号形式给出。

例如下面我们分析的一条指令 MOV IE,#85H 前面的学习我们已知道,中断允许寄存器IE的地址是80H,那么也就是此指令也可以以 MOV 80H,#85H的形式表述。

直接寻址是唯一能访问特殊功能寄存器的寻址方式!大家来分析下面几条指令:MOV 65H,A ;将A的内容送入内部RAM的65H单元地址中MOV A,direct ;将直接地址单元的内容送入A中MOV direct,direct;将直接地址单元的内容送直接地址单元MOV IE,#85H ;将立即数85H送入中断允许寄存器IE前面我们已学过,数据前面加了“#”的,表示后面的数是立即数(如#85H,就表示85H就是一个立即数),数据前面没有加“#”号的,就表示后面的是一个地址地址(如,MOV 65H,A这条指令的65H就是一个单元地址)。

7种寻址方式

7种寻址方式

7种寻址⽅式七种寻址⽅式1、(直接寻址⽅式)指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址,这种寻址⽅式为直接寻址⽅式。

在通常情况下,操作数存放在数据段中,所以,其物理地址将由数据段寄存器DS和指令中给出的有效地址直接形成,但如果使⽤段超越前缀,那么,操作数可存放在其它段。

例:假设有指令:MOV BX, [1234H],在执⾏时,(DS)=2000H,内存单元21234H的值为5213H。

问该指令执⾏后,BX的值是什么?解:根据直接寻址⽅式的寻址规则,把该指令的具体执⾏过程⽤下图来表⽰。

从图中,可看出执⾏该指令要分三部分:由于1234H是⼀个直接地址,它紧跟在指令的操作码之后,随取指令⽽被读出;访问数据段的段寄存器是DS,所以,⽤DS的值和偏移量1234H 相加,得存储单元的物理地址:21234H;取单元21234H的值5213H,并按“⾼⾼低低”的原则存⼊寄存器BX中。

所以,在执⾏该指令后,BX的值就为5213H。

由于数据段的段寄存器默认为DS,如果要指定访问其它段内的数据,可在指令中⽤段前缀的⽅式显式地书写出来。

下⾯指令的⽬标操作数就是带有段前缀的直接寻址⽅式。

MOV ES:[1000H], AX直接寻址⽅式常⽤于处理内存单元的数据,其操作数是内存变量的值,该寻址⽅式可在64K字节的段内进⾏寻址。

注意:⽴即寻址⽅式和直接寻址⽅式的书写格式的不同,直接寻址的地址要写在括号“[”,“]”内。

在程序中,直接地址通常⽤内存变量名来表⽰,如:MOV BX, VARW,其中,VARW是内存字变量。

试⽐较下列指令中源操作数的寻址⽅式(VARW是内存字变量):MOV AX, 1234H MOV AX, [1234H] ;前者是⽴即寻址,后者是直接寻址MOV AX, VARW MOV AX, [VARW] ;两者是等效的,均为直接寻址2、(寄存器间接寻址⽅式)操作数在存储器中,操作数的有效地址⽤SI、DI、BX和BP等四个寄存器之⼀来指定,称这种寻址⽅式为寄存器间接寻址⽅式。

7 种寻址方式及其基本 指令

7 种寻址方式及其基本 指令

7 种寻址方式及其基本指令寻址方式是计算机中指令执行时,计算需要访问内存地址的方式。

不同的寻址方式决定了如何计算出内存地址。

下面将介绍七种常见的寻址方式及其基本指令。

1.直接寻址:直接寻址是最简单的寻址方式,指令中直接给出了要访问的内存地址。

指令的操作数直接指向了存储器中的某个地址。

例如,"LOAD A, 100"表示从地址100加载数据到寄存器A中。

2.立即寻址:立即寻址方式是将常数直接作为指令操作数使用。

指令中给出了要操作的具体数值,而不是内存地址。

例如,"ADD A, 10"表示将寄存器A的值加上10。

3.间接寻址:间接寻址是通过间接寻址寄存器来确定要访问的内存地址。

指令中给出了要操作的寄存器,而不是具体的内存地址。

例如,"LOAD A,(B)"表示从存储器中加载B寄存器中的值作为内存地址,并将该地址处的内容放入寄存器A中。

4.寄存器寻址:寄存器寻址方式是将寄存器作为指令的操作数。

指令中给出了要操作的寄存器,而不是具体的内存地址或数值。

例如,"ADD A, B"表示将寄存器B的值加上寄存器A的值。

5.寄存器间接寻址:寄存器间接寻址方式是通过寄存器中的地址来确定要访问的内存地址。

指令中给出了要操作的寄存器,该寄存器中存储了内存地址。

例如,"LOAD A, (B)"表示从存储器中加载B寄存器中存储的内存地址处的内容,并将该内容放入寄存器A中。

6.相对寻址:相对寻址是通过指令中的相对偏移量来计算要访问的内存地址。

指令中给出了指令执行时相对于当前指令地址的偏移量。

例如,"JUMP 10"表示程序跳转到当前指令地址加上10的位置。

7.基址寻址:基址寻址方式是通过基址寄存器中存储的基地址加上一个偏移量来确定要访问的内存地址。

指令中给出了基址寄存器和偏移量。

例如,"LOAD A, (B+10)"表示从存储器中加载B寄存器中存储的基地址加上10的偏移量处的内容,并将该内容放入寄存器A中。

寻址方式

寻址方式

表3-2 单数据存储器操作数间接寻址类型
表3-3 位倒序寻址
1.倒序寻址
在FFT等算法中,经常要用到位倒序寻址方式。以16点FFT为例,运算结果的次序为 X(0)、X(8)、X(4)、„„X(15)
存储单元 变换结果 位码倒序 位码倒序 存储单元 变换结果 位码倒序 位码倒序 地址 寻址结果 地址 寻址结果
图3-1 DP作为基地址的直接寻址方式
图3-2 SP作为基地址的直接寻址方式
CPL=0时,选择DP的9位地址与指令中的7位地址,组成16位的数据存储器 存储单元的地址;当CPL=1时,选择SP的16位地址加指令中的7位地址,形成
16位的数据存储器存储单元的地址。
直接选择机器码形式:指令中包含数据存储器的低7位地址(dma)
数据寻址方式
寻址的意义:
CPU执行指令时,寻找指令所指定的参与运算的操作数的方法。 不同的寻址方法占有的代码长度、机器周期不一样,在实时信号处理中, 根据不同的情况选用不同的寻址方式非常重要。减少存储空间、减少机 器周期。
7种基本数据寻址方式:
(1)立即数寻址 (2)绝对地址寻址 (3)累加器寻址 (4)直接寻址 (5)间接寻址 (6)存储器映射寄存器寻址 (7)堆栈寻址
3.2.1 数据存储器(dmad)寻址
• 使用数据存储器寻址的指令有:
MVDK Smem, dmad MVKD dmad, Smem MVDM dmad, MMR MVMD MMR, dmad
• 数据存储器寻址使用符号(符号地址)或 一个表示16位地址的立即数来指明寻址的 数据存储单元的16位绝对地址。例如:
3.5.1
单操作数寻址
指令格式如下: 15~8 操作码 7 I=1 6~3 MOD 2~0 ARP

七种寻址方式举例例题

七种寻址方式举例例题

七种寻址方式举例例题:
1. 立即寻址:指令直接包含操作数,不需要经过任何地址计算。

例:MOV AL, 5 //把5赋值给AL寄存器。

2. 寄存器寻址:操作数在寄存器中,不需要经过任何地址计算。

例:MOV AX, CX //把CX寄存器的内容(即计数器的值)赋给AX寄存器。

3. 寄存器间接寻址:操作数需要经过地址计算才能取出,常用于寄存器间接寻址。

例:MOV DX, 8000H //把偏移地址8000H处的数据(即偏移地址加起来,实质是访问内存地址)赋给DX寄存器。

4. 直接寻址:指令直接给出操作数,需要经过地址计算。

例:MOV AL, [DX] //把偏移地址为DX的数据赋给AL寄存器。

5. 零页寻址:对于某一段指令来说,0页至1页的1024个字节被作为一个整体来处理,称这一段地址为零页。

例:MOV AX, [0F00H] //把偏移地址为0F00H的数据(即偏移地址加起来,实质是访问内存地址)赋给AX寄存器。

6. 间接寻址:指令给出的是内存地址,需要经过地址计算才能取出操作数。

例:MOV AX, [ES:DX] //把ES段的偏移地址DX(即ES段中偏移地址为DX的数据)处的数据赋给AX寄存器。

7. 偷窥寻址:在X86指令集中,有些指令后面可以跟一个“偷窥”码,该码指示该指令后面紧跟的某一条指令(即偷窥指令)被执行时,其内容被自动设置为零。

例如,在8086微处理器的汇编语言中,LOP指令用于循环执行一段指令,当执行LOP时,LOP后面的指令被执行,其内容被自动设置为零。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

七种寻址方式1、(直接寻址方式)指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址,这种寻址方式为直接寻址方式。

在通常情况下,操作数存放在数据段中,所以,其物理地址将由数据段寄存器DS和指令中给出的有效地址直接形成,但如果使用段超越前缀,那么,操作数可存放在其它段。

例:假设有指令:MOV BX, [1234H],在执行时,(DS)=2000H,内存单元21234H的值为5213H。

问该指令执行后,BX的值是什么?解:根据直接寻址方式的寻址规则,把该指令的具体执行过程用下图来表示。

从图中,可看出执行该指令要分三部分:由于1234H是一个直接地址,它紧跟在指令的操作码之后,随取指令而被读出;访问数据段的段寄存器是DS,所以,用DS的值和偏移量1234H 相加,得存储单元的物理地址:21234H;取单元21234H的值5213H,并按“高高低低”的原则存入寄存器BX中。

所以,在执行该指令后,BX的值就为5213H。

由于数据段的段寄存器默认为DS,如果要指定访问其它段内的数据,可在指令中用段前缀的方式显式地书写出来。

下面指令的目标操作数就是带有段前缀的直接寻址方式。

MOV ES:[1000H], AX直接寻址方式常用于处理内存单元的数据,其操作数是内存变量的值,该寻址方式可在64K字节的段内进行寻址。

注意:立即寻址方式和直接寻址方式的书写格式的不同,直接寻址的地址要写在括号“[”,“]”内。

在程序中,直接地址通常用内存变量名来表示,如:MOV BX, VARW,其中,VARW是内存字变量。

试比较下列指令中源操作数的寻址方式(VARW是内存字变量):MOV AX, 1234H MOV AX, [1234H] ;前者是立即寻址,后者是直接寻址MOV AX, VARW MOV AX, [VARW] ;两者是等效的,均为直接寻址2、(寄存器间接寻址方式)操作数在存储器中,操作数的有效地址用SI、DI、BX和BP等四个寄存器之一来指定,称这种寻址方式为寄存器间接寻址方式。

该寻址方式物理地址的计算方法如下:寄存器间接寻址方式读取存储单元的原理如图所示。

在不使用段超越前缀的情况下,有下列规定:若有效地址用SI、DI和BX等之一来指定,则其缺省的段寄存器为DS;若有效地址用BP来指定,则其缺省的段寄存器为SS(即:堆栈段)。

例:假设有指令:MOV BX,[DI],在执行时,(DS)=1000H,(DI)=2345H,存储单元12345H的内容是4354H。

问执行指令后,BX的值是什么?解:根据寄存器间接寻址方式的规则,在执行本例指令时,寄存器DI的值不是操作数,而是操作数的地址。

该操作数的物理地址应由DS和DI的值形成,即:PA=(DS)*16+DI=1000H*16+2345H=12345H。

所以,该指令的执行效果是:把从物理地址为12345H开始的一个字的值传送给BX。

其执行过程如图所示。

3、(寄存器相对寻址方式)操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、DI)的内容和指令中的8位/16位偏移量之和。

其有效地址的计算公式如公式所示。

在不使用段超越前缀的情况下,有下列规定:若有效地址用SI、DI和BX等之一来指定,则其缺省的段寄存器为DS;若有效地址用BP来指定,则其缺省的段寄存器为SS。

指令中给出的8位/16位偏移量用补码表示。

在计算有效地址时,如果偏移量是8位,则进行符号扩展成16位。

当所得的有效地址超过0FFFFH,则取其64K的模。

例:假设指令:MOV BX, [SI+100H],在执行它时,(DS)=1000H,(SI)=2345H,内存单元12445H 的内容为2715H,问该指令执行后,BX的值是什么?解:根据寄存器相对寻址方式的规则,在执行本例指令时,源操作数的有效地址EA为:EA=(SI)+100H=2345H+100H=2445H该操作数的物理地址应由DS和EA的值形成,即:PA=(DS)*16+EA=1000H*16+2445H=12445H。

所以,该指令的执行效果是:把从物理地址为12445H开始的一个字的值传送给BX。

其执行过程如图所示。

4、(基址加变址寻址方式)操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)和一个变址寄存器(SI、DI)的内容之和。

其有效地址的计算公式如公式所示。

在不使用段超越前缀的情况下,规定:如果有效地址中含有BP,则缺省的段寄存器为SS;否则,缺省的段寄存器为DS。

例:假设指令:MOV BX, [BX+SI],在执行时,(DS)=1000H,(BX)=2100H,(SI)=0011H,内存单元12111H的内容为1234H。

问该指令执行后,BX的值是什么?解:根据基址加变址寻址方式的规则,在执行本例指令时,源操作数的有效地址EA为:EA=(BX)+(SI)=2100H+0011H=2111H该操作数的物理地址应由DS和EA的值形成,即:PA=(DS)*16+EA=1000H*16+2111H=12111H所以,该指令的执行效果是:把从物理地址为12111H开始的一个字的值传送给BX。

其执行过程如图所示。

5、(相对基址加变址寻址方式)操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)的值、一个变址寄存器(SI、DI)的值和指令中的8位/16位偏移量之和。

其有效地址的计算公式如公式所示。

在不使用段超越前缀的情况下,规定:如果有效地址中含有BP,则其缺省的段寄存器为SS;否则,其缺省的段寄存器为DS。

指令中给出的8位/16位偏移量用补码表示。

在计算有效地址时,如果偏移量是8位,则进行符号扩展成16位。

当所得的有效地址超过0FFFFH,则取其64K的模。

例:假设指令:MOV AX, [BX+SI+200H],在执行时,(DS)=1000H,(BX)=2100H,(SI)=0010H,内存单元12310H的内容为1234H。

问该指令执行后,AX的值是什么?解:根据相对基址加变址寻址方式的规则,在执行本例指令时,源操作数的有效地址EA为:EA=(BX)+(SI)+200H=2100H+0010H+200H=2310H该操作数的物理地址应由DS和EA的值形成,即:PA=(DS)*16+EA=1000H*16+2310H=12310H所以,该指令的执行效果是:把从物理地址为12310H开始的一个字的值传送给AX。

其执行过程如图所示。

从相对基址加变址这种寻址方式来看,由于它的可变因素较多,看起来就显得复杂些,但正因为其可变因素多,它的灵活性也就很高。

比如:用D1[i]来访问一维数组D1的第i个元素,它的寻址有一个自由度,用D2[i][j]来访问二维数组D2的第i行、第j列的元素,其寻址有二个自由度。

多一个可变的量,其寻址方式的灵活度也就相应提高了。

相对基址加变址寻址方式有多种等价的书写方式,下面的书写格式都是正确的,并且其寻址含义也是一致的。

MOV AX, [BX+SI+1000H] MOV AX, 1000H[BX+SI]MOV AX, 1000H[BX][SI] MOV AX, 1000H[SI][BX]但书写格式BX [1000+SI]和SI[1000H+BX]等是错误的,即所用寄存器不能在“[“,”]”之外,该限制对寄存器相对寻址方式的书写也同样起作用。

相对基址加变址寻址方式是以上7种寻址方式中最复杂的一种寻址方式,它可变形为其它类型的存储器寻址方式。

下表列举出该寻址方式与其它寻址方式之间的变形关系。

6、(32位地址的寻址方式)在32位微机系统中,除了支持前面的七种寻址方式外,又提供了一种更灵活、方便,但也更复杂的内存寻址方式,从而使内存地址的寻址范围得到了进一步扩大。

在用16位寄存器来访问存储单元时,只能使用基地址寄存器(BX和BP)和变址寄存器(SI和DI)来作为地址偏移量的一部分,但在用32位寄存器寻址时,不存在上述限制,所有32位寄存器(EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP)都可以是地址偏移量的一个组成部分。

当用32位地址偏移量进行寻址时,内存地址的偏移量可分为三部分:一个32位基址寄存器,一个可乘1、2、4或8的32位变址寄存器,一个8位/32位的偏移常量,并且这三部分还可进行任意组合,省去其中之一或之二。

32位基址寄存器是:EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP;32位变址寄存器是:EAX、EBX、ECX、EDX、ESI、EDI和EBP(除ESP之外)。

下面列举几个32位地址寻址指令:MOV AX, [123456H]MOV EAX, [EBX]MOV EBX, [ECX*2]MOV EBX, [EAX+100H]MOV EDX, [EAX*4+200H]MOV EBX, [EAX+EDX*2]MOV EBX, [EAX+EDX*2+300H]MOV AX, [ESP]用32位地址偏移量进行寻址的有效地址计算公式归纳如公式所示。

由于32位寻址方式能使用所有的通用寄存器,所以,和该有效地址相组合的段寄存器也就有新的规定。

具体规定如下:1、地址中寄存器的书写顺序决定该寄存器是基址寄存器,还是变址寄存器;如:[EBX+EBP]中的EBX 是基址寄存器,EBP是变址寄存器,而[EBP+EBX]中的EBP是基址寄存器,EBX是变址寄存器;2、默认段寄存器的选用取决于基址寄存器;3、基址寄存器是EBP或ESP时,默认的段寄存器是SS,否则,默认的段寄存器是DS;4、在指令中,如果使用段前缀的方式,那么,显式段寄存器优先。

下面列举几个32位地址寻址指令及其内存操作数的段寄存器。

指令的举例访问内存单元所用的段寄存器MOV AX, [123456H];默认段寄存器DSMOV EAX, [EBX+EBP];默认段寄存器DSMOV EBX, [EBP+EBX];默认段寄存器SSMOV EBX, [EAX+100H];默认段寄存器DSMOV EDX, ES:[EAX*4+200H];显式段寄存器ESMOV [ESP+EDX*2], AX ;默认段寄存器SSMOV EBX, GS:[EAX+EDX*2+300H];显式段寄存器GSMOV AX, [ESP] ;默认段寄存器SS7、(立即寻址、寄存器寻址)一、立即寻址方式操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。

立即数可以是8位、16位或32位,该数值紧跟在操作码之后。

如果立即数为16位或32位,那么,它将按“高高低低”的原则进行存储。

例如:MOV AH, 80H ADD AX, 1234H MOV ECX, 123456HMOV B1, 12H MOV W1, 3456H ADD D1, 32123456H其中:B1、W1和D1分别是字节、字和双字单元。

相关文档
最新文档