微机接口技术 2004.3.10
微机接口技术 2004 . 3 . 10
第三章指令系统与汇编程序设计 31寻址方式 328086的指令系统 33汇编语言程序设计
2 ❖ 3.1 寻址方式 ❖ 3.2 8086的指令系统 ❖ 3.3 汇编语言程序设计 第三章 指令系统与汇编程序设计
31寻址方式 1.操作数的寻址方式 2.转移地址的寻址方式
3 3.1 寻址方式 ❖ 1.操作数的寻址方式 ❖ 2.转移地址的寻址方式
1.操作数的寻址方式 冷(1)立即寻址 冷(2)寄存器寻址 (3)直接寻址 (4)寄存器间接寻址 (5)寄存器相对寻址方式 (6)基址变址寻址方式 (7)相对基址变址寻址方式
4 1.操作数的寻址方式 ❖ (1)立即寻址 ❖ (2)寄存器寻址 ❖ (3)直接寻址 ❖ (4)寄存器间接寻址 ❖ (5)寄存器相对寻址方式 ❖ (6)基址变址寻址方式 ❖ (7)相对基址变址寻址方式
(1)立即寻址 例如: MOV AX,1234H;十六进制数1234H 送入AX。 如图3-11所示。 AX 操作码 AH AL 34
5 (1)立即寻址 ❖ 例如:MOV AX,1234H ;十六进制数1234H 送入AX。 ❖ 如图3-11所示。 A H A L 操作码 1 2 3 4 · · · · · A X
(2)寄存器寻址 操作数存放在指令规定的寄存器中,对于16位操作数, 寄存器可以是AX,BX,CX,DX,SI,DI,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,DI,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)直接寻址 例如: MOV AL, DS:[2000H;将逻辑地址 为DS:2000单元内的字节 送入AL。 4000H DS 操作码 40000H 若段基址DS=4000H,则 操作码 200OH OOH 段起始物理地址为4000H 20H 左移4位,即40000H,此 指令将数据段中物理地址 42000H 为42000H单元的内容56H 56H 传至AL寄存器。 如图所示
7 ( 3)直接寻址 ❖例 如 : 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
(4)寄存器间接寻址 冷例如: MOV AX,[BX];BX内容为有效地址EA(偏移量) 若DS=4000H,BX=100H,此指令将物理地址40100H单元的内容 传至AL寄存器(段基地址同样为40000H) 如图所示。 DS 4000H 段 40000H BX0100 010OH AX 34H25H 4010OH 段 25H 34H
8 (4)寄存器间接寻址 ❖ 例如:MOV AX,[BX] ;BX内容为有效地址EA(偏移量)。 若DS=4000H,BX=100H,此指令将物理地址40100H 单元的内容 传至AL寄存器(段基地址同样为40000H)。 ❖如图所示。 4000H A X 34H 25H DS 40000H + 0100H 25H · · · · 40100H 34H 0100H BX 数 据 段 代 码 段 ·
(5)寄存器相对寻址方式 令例如: MOVAL,BX+5; 代 0s6000 码 若DS=6000H,BX=2000H 操作码段 BX的内容加上8位位移量Bx[200 操作码 05H作为操作数的有效地址。=2020 传送数据段中的一个字节到 AL中。如果使用BP,则隐 据 9AH 段 含地表示操作数存放在堆栈 段中。如图3-15所示。 62005 9AH
9 (5)寄存器相对寻址方式 ❖ 例如:MOV AL,[BX+5]; 若 DS=6000H,BX=2000H, BX的内 容加上 8位位移 量 05H作为操作数的有效地址。 传送数据段中的一个字节到 AL中。如果使用BP,则隐 含地表示操作数存放在堆栈 段中。如图3-15所示。 6000H A X 9AH DS 操作码 操作码 05H · · · · 9AH 2000H BX 数 据 段 代 码 段 · EA=2000H+05H=2005H 62005 60000
(6)基址变址寻址方式 例如: MOV AX, Ds|5000H IBX+S∏;BX的内容 代 BX 2000H 与S的内容之和作为 码 操作码段 操作数的有效地址 SI 0006H 操作码 传送数据段中的一个 50000H 字。如图3-16所示。EA=2000n AX ABH 78H 数据段 52006H 78H
10 (6)基址变址寻址方式 ❖ 例 如 : MOV AX, [BX+SI];BX的内容 与SI的内容之和作为 操作数的有效地址。 传送数据段中的一个 字。如图3-16所示。 5000H A X ABH 78H D S 操作码 操作码 · 78H · · · · ABH B X 2000H 数 据 段 代 码 段 · EA=2000H+06H=2006H 52006H 50000H EA SI 0006H +