微机原理与接口技术(第3版)彭虎-第3章8086的指令系统剖析

上传人:我** 文档编号:114191681 上传时间:2019-11-10 格式:PPT 页数:168 大小:4.38MB
返回 下载 相关 举报
微机原理与接口技术(第3版)彭虎-第3章8086的指令系统剖析_第1页
第1页 / 共168页
微机原理与接口技术(第3版)彭虎-第3章8086的指令系统剖析_第2页
第2页 / 共168页
微机原理与接口技术(第3版)彭虎-第3章8086的指令系统剖析_第3页
第3页 / 共168页
微机原理与接口技术(第3版)彭虎-第3章8086的指令系统剖析_第4页
第4页 / 共168页
微机原理与接口技术(第3版)彭虎-第3章8086的指令系统剖析_第5页
第5页 / 共168页
点击查看更多>>
资源描述

《微机原理与接口技术(第3版)彭虎-第3章8086的指令系统剖析》由会员分享,可在线阅读,更多相关《微机原理与接口技术(第3版)彭虎-第3章8086的指令系统剖析(168页珍藏版)》请在金锄头文库上搜索。

1、“十一五”国家级规划教材,微机原理与接口技术 (第3版),第3章,8086的指令系统,本章主要内容,8086的寻址方式,概述,指令是指挥计算机进行操作的命令。 指令系统是指微处理器能执行的各种指令的集合。 程序是一系列按一定顺序排列的指令。 执行程序的过程就是计算机的工作过程。 微处理器的主要功能由它的指令系统来体现。 不同的微处理器有不同的指令系统,其中每一条指令对应着处理器的一种基本操作,这在设计微处理器时确定。,3 8086 的指令系统,3.1 8086 指令的特点,特点,3 8086 的指令系统,3.2 8086 的寻址方式,例如:MOV AX, BX,源操作数,指令,操作码(描述指令

2、的操作功能),操作数(指明指令的操作对象),立即数,寄存器操作数,存储器操作数,3 8086 的指令系统,3.2 8086 的寻址方式,寻址方式就是指令中用于说明操作数所在地址的方法,指令,操作码(描述指令的操作功能),操作数(指明指令的操作对象),立即数,寄存器操作数,存储器操作数,3.2 8086的寻址方式,3.2.1 8086 的寻址方式的说明,1、有效地址EA(Effective Address) 当操作数在内存中时,指令的地址码(操作码)给出所访问的内存单元的逻辑地址。 在寻址方式中,逻辑地址的形成是由多个分量组合而成,该组合地址又叫有效地址。,2、 MOV数据传送指令 其格式为:

3、MOV 目的操作数DST,源操作数SRC 目的操作数和源操作数均可采用不同的寻址方式, 两个操作数的类型必需一致。,3.2 8086的寻址方式,3.2 8086的寻址方式,3.2.2 8086 的寻址方式介绍,1.立即寻址,EAH 34H,3.2.2 8086的寻址方式介绍,2.寄存器寻址,3.2.2 8086的寻址方式介绍,3.直接寻址,322A0H,322A1H,32H,48H,48,32,16,3.2.2 8086的寻址方式介绍,3.2.2 8086的寻址方式介绍,13E4CH,13E4DH,12H,34H,34,12,10H,3.2.2 8086的寻址方式介绍,3.直接寻址,3.2.2

4、 8086的寻址方式介绍,4.寄存器间接寻址,361A8H,361A9H,50H,A0H,A0,50,10H,3.2.2 8086的寻址方式介绍,物理地址=(DS)10H+(SI)/(DI)/(BX),32000H,32001H,B0H,62H,62,B0,10H,3.2.2 8086的寻址方式介绍,物理地址=(SS)10H+(BP),3.2.2 8086的寻址方式介绍,5.基址/变址寻址,偏移量是符号数,8位偏移量的取值范围为:80H7FH(即-128D+127D); 16位偏移量的取值范围为:80007FFFH(即-32768D+32767D)。,3.2.2 8086的寻址方式介绍,30H

5、,20H,12036H,12037H,20,30,10H,3.2.2 8086的寻址方式介绍,56H,78H,14100H,14101H,78,56,10H,3.2.2 8086的寻址方式介绍,6.基址+变址寻址,物理地址=(DS)10H+(SI)/(DI)+(BX)+8位或16位位移量,物理地址=(SS)10H+(SI)/(DI)+(BP)+8位或16位位移量,3.2.2 8086的寻址方式介绍,56H,78H,3208AH,3208BH,78,56,10H,3.2.2 8086的寻址方式介绍,7.串寻址,在串指令中使用,操作数在内存单元中。 源操作数的逻辑地址为:DS:SI 目的操作数的逻

6、辑地址为:ES:DI 根据设定的方向标志DF内容,SI和DI会自动调整,3.2.2 8086的寻址方式介绍,8.I/O 端口寻址,直接端口寻址,间接端口寻址,【例】 IN AL,25H ;将地址为25H的外设的内容读入AL中 MOV DX,3E4H OUT DX,AL ;将AL中内容输出给以DX的内容(3E4H)为地址 的外设,3.3 8086的指令格式及数据类型,3.3 8086 的指令格式及数据类型,一、指令格式,指令,操作码(描述指令的操作功能),操作数(指明指令的操作对象),3.3 8086的指令格式及数据类型,3.2.3 8086 的指令格式及数据类型,2、双操作数指令 指令助记符

7、指令的16进制代码 MOV AL , 04 B004H MOV AX , 04 B80400,1、单操作数指令 指令助记符 指令的16进制代码 INC AX 40H INC BX 43H,3.3 8086的指令格式及数据类型,3.2.3 8086 的指令格式及数据类型,3、三个操作数指令 8086指令系统中,大多数指令中只有12个操作数,但也有少数指令中有3个操作数,不过有一操作数隐含在操作码中。 例: ADC AX , BX 该指令完成操作数AX、BX和CF位相加。,3.3 8086的指令格式及数据类型,3.3 8086 的指令格式及数据类型,二、指令中的数据类型,无符号数 带符号数 ASC

8、II码 BCD数(压缩BCD和非压缩BCD),3 8086 的指令系统,3 8086 的指令系统,3.4 8086 的指令集,8086 指令系统包括六大类指令: 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 控制转移指令 处理器控制指令,3 8086 的指令系统,3.4 8086 的指令集,3.4.1 数据传送指令,数据传送指令,1、通用数据传送指令,通用数据传 送指令,MOV指令,堆栈操作 指令,数据交换指令,入栈指令,出栈指令,3.4.1 数据传送指令,3.4 8086 的指令集,1,3.4 8086 的指令集,(1) MOV指令,1、通用数据传送指令,格式:MOV 目标操作

9、数,源操作数 功能:将源操作数的内容(一个字或一个字节)传送到目标操作数指定的寄存器或内存单元,源操作数内容不变。例如: MOV AL,5 ;字节传送,立即数送通用寄存器 MOV AX,BX ;字传送,通用寄存器送通用寄存器 MOV DS,AX ;字传送,通用寄存器送段寄存器,3.4 8086 的指令集,(1) MOV指令,3.4 8086 的指令集,源操作数可以是立即数、寄存器或内存操作数。 目标操作数可以是寄存器或内存操作数。 立即数和CS寄存器只能作源操作数,不允许作目标操作数。 IP和FR都不可作为源操作数或是目标操作数。 立即数不允许直接传送至DS、ES或SS寄存器。 源操作数和目标

10、操作数不允许同时是内存操作数,也不允许同时是段寄存器。 源操作数和目标操作数的类型必须相同,即同为字节类型或字类型。,使用说明:,3.4 8086 的指令集,(2) 堆栈指令,1、通用数据传送指令,堆栈操作指令中操作数的类型只能是字,不能是字节。 立即数不能作为操作数。,3.4 8086 的指令集,进栈指令,(2) 堆栈指令,格式:PUSH 源操作数 功能:源操作数入栈。 指令的执行如下操作: SPSP-1 ;SPOPH(操作数高字节) SPSP-1 ;SPOPL(操作数低字节) 说明: 源操作数可以是寄存器或是内存操作数。,3.4 8086 的指令集,出栈指令,(2) 出栈指令,格式:POP

11、 目的操作数 功能:数据出栈,存入目的操作数。 指令的执行如下操作: 目标操作数(SP) (SP) (SP) +2 说明: 目标操作数可以是段寄存器、16位寄存器或内存操作数。 当目标操作数是段寄存器时,不能是CS寄存器。,3.4 8086 的指令集,(3) 交换指令,1、通用数据传送指令,格式:XCHG 目标操作数,源操作数 功能:源操作数的内容(一个字或字节)与目标操作数的内容(一个字或字节)互换。 例如: XCHG BL,AH ;字节交换,BL与AH的内容交换 XCHG AX,BXSI ;字交换,AX与内存单元的内容交换,3.4 8086 的指令集,源操作数和目标操作数都可以是寄存器或内

12、存操作数。 源操作数和目标操作数不可同时是内存操作数。 源操作数和目标操作数不可以同时是寄存器AX(累加器)。 段寄存器、IP寄存器或立即数不可以作为源操作数或目标操作数。 例如: XCHG AX,2011H;源操作数不能是立即数 XCHG CS,5SI;CS不能作为操作数 XCHG AX,AX ;源操作数和目标操作数不可同是AX,使用说明:,2、累加器专用传送指令,累加器专用 传送指令,输入指令 IN,输出指令 OUT,换码指令 XLAT,3.4.1 数据传送指令,3.4 8086 的指令集,3.4 8086 的指令集,2、累加器专用传送指令,(1)输入指令IN 格式:IN AL,端口地址n

13、 IN AX,端口地址n IN AL,DX IN AX,DX 功能:从指令中指定的I/O端口读入一字节数据到AL或 一个字数据到AX。,3.4 8086 的指令集,2、累加器专用传送指令,(2)输出指令OUT 格式:OUT 端口地址n,AL OUT 端口地址n,AX OUT DX,AL OUT DX,AX 功能:将AL或AX的内容输出到一个8位I/O端口或 16位I/O端口。,3.4 8086 的指令集,采用格式1和格式2时,端口地址的取值范围是:0FFH,可以寻址256个I/O端口。 当端口地址值超过255D时,只能采用格式3或格式4,把端口地址保存到寄存器DX中,此时,端口地址的取值范围是

14、:0FFFFH,可以寻址65536个I/O端口。 当端口地址是8位时,目标操作数选用AL寄存器;当端口地址是16位时,目标操作数选AX寄存器。,IN/OUT指令使用说明:,MOV DX,60H ;端口地址送DX寄存器中 IN AL,DX ;从60H端口写入一个8位数 OUT 90H,AX ;将16位数输出到90H端口,3.4 8086 的指令集,2、累加器专用传送指令,(3)换码指令XLAT 格式:XLAT 功能:将BX的内容和AL的内容相加作为有效地址EA, 在一个表格中找出此单元中的内容并传送至AL中。例如,把字符的扫描码转换成ASCII码。 指令的执行如下操作: 执行XLAT前,将表的首

15、地址送入BX,表项序号送入AL; 把数据段中偏移地址为BX+AL的内存单元的内容送到AL 中,即:(AL) (BX) + (AL))。,3.4 8086 的指令集,若(DS)=2000H,执行下列程序: MOV BX,0020H MOV AL,9H XLAT 则执行指令XLAT后,(AL)=39H。,3.4 8086 的指令集,3、目标地址传送指令,3.4.1 数据传送指令,(1)LEA(有效地址传送到寄存器) 格式:LEA 16位寄存器,源操作数偏移地址 功能:将源操作数偏移地址(有效地址EA),送到16位寄存器中。,例如,设DS=2100H,BX=100H,SI=10H,(DS:110H)

16、=1234H 执行指令: LEA BX,BX+SI MOV AX,BX+SI 执行后,(BX)=(BX)+(SI)=110H;(AX)=1234H,3.4 8086 的指令集,3、目标地址传送指令,(2)LDS(装入一个新的物理地址) 格式:LDS 16位寄存器,源操作数偏移地址 功能:该指令有3个操作数,其中两个目的操作数。将源操作数指示的偏移地址开始的4个连续字节中的内容,传送到16位寄存器和DS寄存器中。,例如, LDS DI,2130H ; 执行后,将2130H和2131H单元的内容送DI 将2132H和2133H单元的内容送DS,3.4 8086 的指令集,3、目标地址传送指令,(3)LES(装入一个新的物理地址) 格式:LES 16位寄存器,源操

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号