微机接口技术
微机接口技术
第三章指令系统 3.18086的寻址方式 328086的指令系统
2 ❖ 3.1 8086的寻址方式 ❖ 3.2 8086的指令系统 第三章 指令系统
318086的寻址方式 1.操作数的寻址方式 2.转移地址的寻址方式
3 3.1 8086的寻址方式 ❖ 1.操作数的寻址方式 ❖ 2.转移地址的寻址方式
1.操作数的寻址方式 冷(1)立即寻址 冷(2)寄存器寻址 (3)直接寻址六 (4)寄存器间接寻址 (5)寄存器相对寻址方式 (6)基址变址寻址方式 (7)相对基址变址寻址方式 冷(8)其它
4 1.操作数的寻址方式 ❖ (1)立即寻址 ❖ (2)寄存器寻址 ❖ (3)直接寻址 * ❖ (4)寄存器间接寻址 ❖ (5)寄存器相对寻址方式 ❖ (6)基址变址寻址方式 ❖ (7)相对基址变址寻址方式 ❖ ( 8) 其它
(1)立即寻址 例如: MOV AX,1234H;十六进制数1234H 送入AX。 如图3-1所示。 AX 操作码 AH AL 34
5 (1)立即寻址 ❖ 例如:MOV AX,1234H ;十六进制数1234H 送入AX。 ❖ 如图3-1所示。 A H A L 操作码 1 2 3 4 · · · · · A X
(2)寄存器寻址 操作数存放在指令规定的寄存器中,对于16位操作数, 寄存器可以是AX,BX,CX,DX,SI,DL,SP或BP; 而对8位操作数,寄存器可以是AH,AL,BH,BL CH,CL,DH或DL。 例如: MOV AX,BX;将寄存器BX的内容送入AX。 冷如图所示。 ar BX
6 (2)寄存器寻址 ❖ 操作数存放在指令规定的寄存器中,对于16位操作数, 寄存器可以是AX,BX,CX,DX,SI,DL,SP或BP; 而对8位操作数,寄存器可以是AH,AL,BH,BL, CH,CL,DH或DL。 ❖ 例如:MOV AX,BX ;将寄存器BX的内容送入AX。 ❖ 如图所示。 X X X X A X B X
(3)直接寻址 在 IBM PO机中,把操作数的偏移地址称为 有效地址 EA(Effective Address) 如果指令中没有用前缀指明操作数存放在哪 段,则默认为使用的段寄存器为数据段寄存器 DS,因此,操作数的物理地址为16×DS+EA,即为 10HXDS+EA
7 (3)直接寻址 在 IBM PC 机中,把操作数的偏移地址称为 有效地址EA (Effective Address)。 如果指令中没有用前缀指明操作数存放在哪 一段,则默认为使用的段寄存器为数据段寄存器 DS,因此,操作数的物理地址为16×DS+EA,即为 10H×DS+EA
例如: MOV AL, DS:[2000H;将逻辑地址 为DS:2000单元内的字节 送入AL。 4000H DS 操作码 40000H 若段基址DS=4000H,则 操作码 200OH OOH 段起始物理地址为4000H 20H 左移4位,即40000H,此 指令将数据段中物理地址 42000H 为42000H单元的内容56H 56H 传至AL寄存器。 如图所示
8 ❖例 如 : MOV AL , DS : [2000H] ;将逻辑地址 为 DS :2000单元内的字节 送入AL 。 ❖若段基址DS=4000 H , 则 段起始物理地址为4000 H 左移 4 位 , 即40000 H , 此 指令将数据段中物理地址 为42000H 单元的内容56H 传至AL寄存器 。 ❖如图所示 。 4000H 56H A X DS 40000H + 2000H 操作码 操作码 00H 20H 56H····· 42000H
段超越前缀: 如果要对代码段堆栈段或附加段寄存器所指出 的存储区进行直接寻址,应在指令中指定段超越前 缀 例如,数据若放在附加段中,则应在有效地址 前加“ES:”,“:”称为属性修改符,计算物 理地址时要用ES作基地址,而不再是默认值DS MOV A, ES: 500H
9 段超越前缀: 如果要对代码段堆栈段或附加段寄存器所指出 的存储区进行直接寻址,应在指令中指定段超越前 缀。 例如,数据若放在附加段中,则应在有效地址 前加“ES: ” , “ : ”称为属性修改符,计算物 理地址时要用ES作基地址,而不再是默认值DS。 MOV AX , ES:[500H]
符号地址: MOVAX AREAl MOVAX, AREAI
10 符号地址: MOV AX , AREA1 MOV AX , [AREA1]