文档详情

第3章8086寻址方式与指令系统.ppt

发布:2016-08-20约字共113页下载文档
文本预览下载声明
第三章 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] 是等价的
显示全部
相似文档