资源预览内容
第1页 / 共168页
第2页 / 共168页
第3页 / 共168页
第4页 / 共168页
第5页 / 共168页
第6页 / 共168页
第7页 / 共168页
第8页 / 共168页
第9页 / 共168页
第10页 / 共168页
亲,该文档总共168页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
“十一五”国家级规划教材微机原理与接口技术(第3版)第3章8086的指令系统本章主要内容2半导体存储器的分类18086 指令的特点 18086 指令格式及数据类型38086的寻址方式8086的指令集4概述v 指令是指挥计算机进行操作的命令。v 指令系统是指微处理器能执行的各种指令的集合。v 程序是一系列按一定顺序排列的指令。v 执行程序的过程就是计算机的工作过程。v 微处理器的主要功能由它的指令系统来体现。v 不同的微处理器有不同的指令系统,其中每一条指 令对应着处理器的一种基本操作,这在设计微处理 器时确定。3 8086 的指令系统3.1 8086 指令的特点指令格式的 一对多形式特点指令格式的灵活性较强的运 算指令多类型 数据处理3 8086 的指令系统3.2 8086 的寻址方式例如:MOV AX, BX操作码目的操作数源操作数指令操作码(描述指令的操作功能)操作数(指明指令的操作对象)立即数寄存器操作数存储器操作数3 8086 的指令系统3.2 8086 的寻址方式uu寻址方式寻址方式就是指令中用于就是指令中用于说明操作数所在地址的方法说明操作数所在地址的方法指令操作码(描述指令的操作功能)操作数(指明指令的操作对象)立即数寄存器操作数存储器操作数3.2 8086的寻址方式3.2.1 8086 的寻址方式的说明v1、有效地址EA(Effective Address) 当操作数在内存中时,指令的地址码(操作码) 给出所访问的内存单元的逻辑地址。在寻址方式中,逻辑地址的形成是由多个分量组 合而成,该组合地址又叫有效地址。v2、 MOV数据传送指令其格式为:MOV 目的操作数DST,源操作数SRC 目的操作数和源操作数均可采用不同的寻址 方式, 两个操作数的类型必需一致。3.2 8086的寻址方式3.2 8086的寻址方式3.2.2 8086 的寻址方式介绍1.立即寻址立即寻址的操作数是一个立即数,它直接包含在指令中,存放 在内存代码段中。立即寻址主要用于给存储器或寄存器赋初 值。操作码 立即数低字节立即数高字节高址EAH34HAH ALAX3.2.2 8086的寻址方式介绍操作数在内部寄存器中。 对16位操作数,寄存器可以是AX、BX、CX、DX、SI、DI、 SP或BP 对8位操作数,寄存器可以是AH、AL、BH、BL、CH、CL、DH 、DL。ALAH寄存器寻址示意图【例】 MOV AL,AH 执行过程如图所示。2.寄存器寻址3.2.2 8086的寻址方式介绍操作数在存储器中,指令中以具体数值的形式直接给出操 作数所在存储单元的有效地址EA。为了与立即数区别,该 有效地址必须用 括起。操作数存放的物理地址=DS16 + 16位地址偏移量。3.直接寻址直接寻址时,在没有声明的情况下,有效地址隐含在寄存 器DS中。使用其他段寄存器,需在指令中指出。此种情况为段超越 。如:MOV ES:1234H,BL322A0H322A1H32H48H操作码偏移量A0H偏移量22H代码段数据段AX 图 直接寻址方式示意图3 0 0 0+) 2 2 A 03 2 2 A 0 HDS48 32 16【例】 MOV AX,22A0H 执行过程如图所示,设DS=3000H3.2.2 8086的寻址方式介绍3.2.2 8086的寻址方式介绍13E4CH13E4DH12H34H操作码偏移量3EH偏移量4CH代码段数据段AX 图 直接寻址方式示意图10 0 0+) 3E4C13E4CHDS34 12 10H【例】 MOV AX,3E4CH 执行过程如图所示,设DS=1000H3.2.2 8086的寻址方式介绍3.直接寻址直接寻址时,没有用前缀说明操作数存放在哪个段,有效地 址隐含在寄存器DS中。 8086系统允许操作数存放在代码段CS、堆栈段SS或附加段 ES。此时,就需要在指令中指明段超越。例如:MOV ES:1225H,AX 该指令的目标操作数采用直接寻址方式。操作数存放在 由ES指示的附加段中。 物理地址=ES10H+1225H。3.2.2 8086的寻址方式介绍4.寄存器间接寻址操作数在内存单元中,有效地址EA存放在基址寄存器BX、 BP或变址寄存器SI、DI中。为了区别于寄存器寻址方式,指令中指定的寄存器名要用 括起来。若以SI、DI、BX间接寻址,操作数通常在现行数据段DS中, 即DS中的值左移四位加上SI、DI或BX中的有效地址即为操作 数的物理地址。若以BP间接寻址,则操作数在堆栈段SS中,即操作数的物理 地址位堆栈段寄存器SS中的值左移四位与BP相加。【例】 MOV SI,61A8H MOV AX,SI 程序执行过程如图所示。361A8H361A9H50HA0H3 0 0 0+) SI 61A83 61A8HDSA0 50 10H3.2.2 8086的寻址方式介绍寄存器间接寻址情况一物理地址=(DS)10H+(SI)/(DI)/(BX) 【例】 MOV BP,2000H MOV AX,BP 程序执行过程如图所示。32000H32001HB0H62H3 0 0 0+) BP 2 0 0 03 2 0 0 0 HSS62 B0 10H3.2.2 8086的寻址方式介绍寄存器间接寻址情况二物理地址=(SS)10H+(BP) 3.2.2 8086的寻址方式介绍5.基址/变址寻址操作数在内存单元中,有效地址EA是指令中指定的基址或变 址寄存器的值与相对位移量之和,也称相对寻址。基址寻址:变址寻址:EA=BXBP+8位偏移量16位偏移量EA=SIDI+8位偏移量16位偏移量偏移量是符号数,8位偏移量的取值范围为:80H7FH(即-128D+127D); 16位偏移量的取值范围为:80007FFFH(即-32768D+32767D)。3.2.2 8086的寻址方式介绍【例】 MOV BX,2000H MOV AX,36HBX 程序执行过程如图所示。30H20H12036H12037H1 0 0 0+) BX 2 0 0 01 2 0 36 HDS+) 3620 30 10H3.2.2 8086的寻址方式介绍【例】 MOV SI,2000H MOV AX,2100HSI 程序执行过程如图所示。56H78H14100H14101H1 0 0 0+) SI 2 0 0 01 4 1 0 0 HDS+) 2 1 0 078 56 10H3.2.2 8086的寻址方式介绍6.基址+变址寻址操作数在内存单元中,有效地址EA是指令中指定的基址+变 址寄存器的值+相对位移量之和。EA=BXBP+8位偏移量16位偏移量SIDI+以基址寄存器选择段寄存器:p使用基址寄存器BX时,操作数默认存放在数据段DS中;p使用基址寄存器BP时,操作数默认存放在堆栈段SS中, 允许段超越。物理地址=(DS)10H+(SI)/(DI)+(BX)+8位或16位位移量物理地址=(SS)10H+(SI)/(DI)+(BP)+8位或16位位移量3.2.2 8086的寻址方式介绍【例】 MOV BX,1000H MOV SI,1000H MOV AX,8AHBXSI 程序执行过程如图所示。56H78H3208AH3208BH78 56 10H10H 3 0 0 0+) BX 1 0 0 03 2 0 8A HDS+) SI 1 0 0 0+) 8 A3.2.2 8086的寻址方式介绍7.串寻址p在串指令中使用,操作数在内存单元中。p源操作数的逻辑地址为:DS:SIp目的操作数的逻辑地址为:ES:DIp根据设定的方向标志DF内容,SI和DI会自动调整【例】 MOVSB执行后: DI SI SISI1 DIDI1 3.2.2 8086的寻址方式介绍8.I/O 端口寻址端口寻址I/O直接端口寻址间接端口寻址由指令直接给出输入输出 设备的端口地址。规定端 口地址为8位,能寻址256 个端口。由寄存器DX给出输入输出 设备的端口地址。由于DX 是16位,因此能寻址64K个 端口。【例】 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、双操作数指令指令助记符 指令的16进制代码MOV AL , 04 B004HMOV AX , 04 B804001、单操作数指令指令助记符 指令的16进制代码INC AX 40HINC BX 43H3.3 8086的指令格式及数据类型3.2.3 8086 的指令格式及数据类型3、三个操作数指令 8086指令系统中,大多数指令中只有12个操作 数,但也有少数指令中有3个操作数,不过有一操作数 隐含在操作码中。例: ADC AX , BX 该指令完成操作数AX、BX和CF位相加。3.3 8086的指令格式及数据类型3.3 8086 的指令格式及数据类型二、指令中的数据类型 无符号数 带符号数 ASCII码 BCD数(压缩BCD和非压缩BCD) 3 8086 的指令系统3 8086 的指令系统3.4 8086 的指令集8086 指令系统包括六大类指令:v 数据传送指令v 算术运算指令v 逻辑运算和移位指令v 串操作指令v 控制转移指令v 处理器控制指令3 8086 的指令系统3.4 8086 的指令集3.4.1 数据传送指令数据传送指令指令类型指令功能指令书写格式通用数据传送字节或字传送 字压入堆栈 字弹出堆栈 字节或字交换MOV 目标,源 PUSH 源 POP 目标 XCHG 目标,源累加器专用 传送指令输入指令 输出指令 换码指令IN 目标,源 OUT 目标,源 XLAT目标地址传送装入有效地址 装入DS寄存器 装入ES寄存器LEA 目标,源 LDS 目标,源 LES 目标,源标志位传送将FR低字节装入AH寄存器 将AH内容装入FR低字节 将FR内容压栈 从堆栈中弹出一个字给FRLAHF SAHF PUSHF POPF1、通用数据传送指令通用数据传 送指令MOV指令堆栈操作 指令数据交换指令入栈指令出栈指令3.4.1 数据传送指令3.4 8086 的指令集13.4 8086 的指令集(1) MOV指令1、通用数据传送指令v 格式:MOV 目标操作数,源操作数 v 功能:将源操作数的内容(一个字或一个字节)传送到目标操作数指定的寄存器或内存单元,源操作数内容不变。例如:MOV AL,5 ;字节传送,立即数送通用寄存器MOV AX,BX ;字传送,通用寄存器送通用寄存器MOV DS,AX ;字传送,通用寄存器送段寄存器3.4 8086 的指令集(1) MOV指令段寄存器 CS DS ES S
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号