第3章8086寻址方式与指令系统.ppt
文本预览下载声明
第三章 8086的寻址方式与指令系统
教学目的及要求:
1.了解8086/8088机器指令的构成;
2.准确理解8086/8088 CPU每种寻址方式的确切含义
3.准确理解指令系统中部分指令的含义、用途、执行过程、标志位解释,以及使用时需要注意的问题;
4.掌握调试工具DEBUG的基本使用方法
教学重点与难点:
1.各种寻址方式的含义、用途
2.堆栈的使用方法
3.算术指令对CF、OF标志的影响情况
4.理解DEBUG工具的基本使用方法
第三章 8086的寻址方式与指令系统
表示指令中操作数所在的方法称为寻址方式。
8086/8088有七种基本的寻址方式:立即数寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,基址加变址寻址,相对基址加变址寻址。
1. 立即数寻址方式
(1)操作数包含在指令中,它作为指令的一部分,跟在操作码后存放在代码段中。
(2)主要用于给寄存器或存储单元赋初值。
【例1】MOV AX, 10
执行后(AX)=?
该例中源操作数为立即寻址方式,立即数为10,存放在指令的下一单元。
图形表示:
执行:10→AX
执行后:(AX)=000AH
2.寄存器寻址方式
(1)操作数在CPU的内部寄存器里。
(2)可使用的寄存器有AX,BX,CX,DX,SI,DI,SP和BP和段寄存器,对于8位操作数可以是AH,AL,BH,BL,CH,CL,DH,DL。
(3)不需访问存储器,可得较快速度。
3. 直接寻址方式
16位偏移量(EA)包含在操作码后,放在代码段中,操作数在数据段中。
物理地址=16×(DS)+EA
如果采用段超越前缀,则操作数也可在DS段以外的段中。
eg:MOV AX, [1234H]
如(DS)=3000H,该指令的存储和执行情况如图:
。。。
op
34
12
。。。
50
30
30000
31234
30 50
AX
CS段
DS段
4. 寄存器间接寻址方式
操作数在存储器中,EA在SI、DI、BX、BP中。如果指令中指定的寄存器是BX、SI、DI,则操作数在数据段中,即操作数的物理地址为:
物理地址=16d×(DS)+(BX)
或 (SI)
或 (DI)
如果指令中指定BP寄存器,则操作数在堆栈中,即操作数的物理地址为:
物理地址=16d×(SS)+(BP)
eg: MOV AX,[BX]如果(DS)=2000H,(BX)=1000H.则物理地址=20000+1000=21000H执行情况如图所示:也可以采用段超越前缀,如:MOV AX,ES:[BX]
。。。
A0
50
。。。
20000
21000
50 A0
AX
数据段
5.寄存器相对寻址方式
操作数在存储器中,操作数的有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、DI)的内容加上指令中给定的8位或16位位移量之和。即:
EA= (BX)
(BP) 8位
(SI) + 位移量
(DI) 16位
除有段超越前缀者外,对于寄存器为BX、SI、DI的情况,段寄存器用DS,而对于寄存器BP则使用SS段寄存器的内容作为段地址。 物理地址=16d×(DS)+(BX) + 8位位移量 或(SI) 或16位位移量 或(DI)或 物理地址=16d×(SS)+(BP)+8位位移量 或16位位移量
例子
MOV AX,3000H[SI]
如果(DS)=3000H,(SI)=2000H,则
物理地址=30000+2000+3000=35000H
指令执行结果是:(AX)=1234H
执行情况如图所示:
注意书写时,基址或变址寄存器名一定要放在方括号中,位移量可不写在方括号中。如:
MOV AX,[SI+3]
MOV AX,3[SI] 是等价的
显示全部