上海工程技术大学微机原理与接口技术yp 第3章 8086指令系统

上传人:ji****en 文档编号:110630253 上传时间:2019-10-30 格式:PPT 页数:122 大小:3.99MB
返回 下载 相关 举报
上海工程技术大学微机原理与接口技术yp 第3章 8086指令系统_第1页
第1页 / 共122页
上海工程技术大学微机原理与接口技术yp 第3章 8086指令系统_第2页
第2页 / 共122页
上海工程技术大学微机原理与接口技术yp 第3章 8086指令系统_第3页
第3页 / 共122页
上海工程技术大学微机原理与接口技术yp 第3章 8086指令系统_第4页
第4页 / 共122页
上海工程技术大学微机原理与接口技术yp 第3章 8086指令系统_第5页
第5页 / 共122页
点击查看更多>>
资源描述

《上海工程技术大学微机原理与接口技术yp 第3章 8086指令系统》由会员分享,可在线阅读,更多相关《上海工程技术大学微机原理与接口技术yp 第3章 8086指令系统(122页珍藏版)》请在金锄头文库上搜索。

1、1,第3章 8086的指令系统,2,几个概念 8086的寻址方式 8086指令集,主要内容,3,CPU内部14个16位寄存器,8086CPU内部寄存器,问,4,一、几个概念,指令:是指使计算机执行某种操作的命令。 指令系统:是指处理器所能成的所有指令的集合-指令集,每种计算机都有组它的指令系统。 机器指令: 用二进制编码(代码各种组合)形式表示一条指令称为机器指令。通常指令以二进制编码的形式存放在存储器中,CPU可以直接识别机器指令。,符号指令:用符号表示的指令称为符号指令。,5,指令的组成:任意一条指令都由操作码和操作数构成。,操作码规定了计算机执行 什么样操作。,操作数它指明了操作的对象和

2、 操作对象的地址。,6,一条指令要解决的两个问题: 要指出进行什么操作操作码; 要指出操作数和操作结果放在何处寻址方式。,因此:,7,组成,操作数,操作码,CPU指令,标号: 指令助记符 操作数,操作数 ;注释,寻找操作数或操作数地址的方式,指明了操作的对象和 操作对象的地址,规定了计算机执行 什么样操作,任意一条指令都由操作码和操作数构成,格式,寻址方式,8,如数据传输指令,格式 :,MOV 目的操作数,源操作数,(助记符),操作码部分,操作数,可见,指令中的操作数有源操作数和目的操作数之分,如:MOV AX 1234H,9,二、 8086的寻址方式,主要内容: 8086的寻址方式说明 寻址

3、方式介绍 立即数寻址;寄存器寻址;直接寻址; 寄存器间接寻址;基址/变址寻址; 基址变址寻址;I/O端口寻址,10,8086的寻址方式说明,寻址方式:是寻找操作数或操作数地址的方式。,存放位置:8086指令中的操作数有三种可能的存放位置。 操作数在指令中, 即指令的操作数部分就是操作数本身, 这种操作数叫立即操作数。 如:MOV AX, 1234H,11, 操作数包含在CPU的某个内部寄存器中,这种操作数叫寄存器操作数,这时指令的操作数部分是CPU内部寄存器的一个编码。 如:MOV AX, BX,12, 操作数在内存的数据区中,这种操作数叫存储器操作数, 这时指令的操作数部分包含此操作数所在的

4、内存地址。 如:MOV AX, 1234H,此外, 操作数在端口中。 如:IN AL,20,13,逻辑地址: 8086CPU中,内存中任何存储单元的实际地址都由两部分组成:段基址和段内偏移地址,用段基址:段内偏移地址来表示。 有效地址EA :在存储器寻址时,指令的操作数部分给出的地址是段内偏移地址。段内偏移量由几个基本部分组合而成, 所以也称为有效地址EA。,14,组成有效地址EA的基本部分包括: 基址寄存器内容、 变址寄存器内容、位移量等。其中,基址、变址寄存器中通常为某局部存储区的起点。 有效地址EA的计算公式如下:,EA基址寄存器BX 、BP+变址寄存器SI、DI +位移量,15,立即寻

5、址,操作数就在指令中提供立即数寻址方式。 即操作数直接包含在指令中,它紧跟在操作码的后面,与操作码一起放在代码段区域中。,寻址方式介绍,立即数总是和操作码一起被取入CPU的指令队列,在指令执行时,不再需要访问存储器。,16,立即寻址,MOV AX,34EAH ;将34EAH送AX,AH中为 34H, AL 中为EAH,MOV BL,20 ;将十进制数20送入BL寄存器,AX,17,立即数可以是8位、 16位操作数。 若是16位,低位字节存放在相邻两个字节存储单元的低地址单元中。 立即数可以用二进制数、八进制数、十进制数以及十六进制数来表示。如: MOV AL, 10 ; 十进制数() MOV

6、AL, 00100101B ; 二进制数() MOV AL, 0AH ; 十六进制(),18,寄存器寻址,操作数在CPU内部寄存器中寄存器寻址方式。 如:,MOV BP,SP ;其过程如图所示:,寄存器寻址 图示,SP,BP,19,寄存器可以是AX、BX、CX、DX、SI、DI、SP、BP(通用寄存器)。 寄存器可用来存放源操作数,也可用来存放目的操作数。 寄存器寻址方式是CPU内部的操作,不需要使用访问总线周期,因此指令的执行速度比较快。,MOV AX,1234H ; AX 的内容为1234H MOV AL,AH ;AH的内容12H送AL,如,20,直接寻址,操作数在内存单元中,指令中 给出

7、被访问单元的逻辑偏移地址,即有效地址(EA),再转换为物理地址,选中内存单元,读出操作数直接寻址 如: MOV AX,3E4CH,EA,21,MOV AX,3E4CH;,段基址(DS) 10H + 3E4CH(偏移地址EA),源操作数物理地址:,段基址(DS) 10H + 1234H,段基址(ES) 10H + 1234H,MOV 1234H,BL ;,MOV ES:1234H,BL,目的操作数物理地址:,;目的操作数物理地址:,在对内存进行寻址时,需计算物理地址。 物理地址 段基址 10H +偏移地址有效地址(EA),22,在默认方式下,操作数存放在数据段(DS)。 如果要对除DS段之外的其

8、他段(CS、ES、SS)中的数据寻址,应在指令中增加前缀,指出段寄存器名,这就是段跨越。,23,MOV AX,1070H,假设(DS)=3000H,问存放源操作数的物理地址及其AX的内容。,物理地址段基址(DS) 10H + (EA) 30000H+1070H=31070H,指令的执行情况如图,指令的执行结果是: (AX)2520H, 即内存31070H 单元的内容传送到寄存器AX中.,练习:,24,寄存器间接寻址,操作数在内存单元中,操作数的有效偏移地址(EA)不是直接给出的,EA在指定的寄存器中,即EA寄存器。,如:MOV SI,61A8H ; 被访问内存单元逻辑 偏移地址61A8H,送S

9、I,MOV DX,SI ; SI寄存器给出被访问 内存单元逻辑偏移地址,图解,25,2000H,61A8H,物理地址=(DS) 10H +(SI),若(DS) =2000H,10H,DH,DL,DS,SI,261A8H,34H,12H,12H,34H,261A9H,26,BX、SI、DI以DS作为默认段寄存器, BP、SP以SS作为默认段寄存器,BP、BX为基址寄存器 SI、DI为变址寻址寄存器,EA可放在寄存器BX、SI、DI、BP、SP中。,默认下,可用段寄存器DS, SS。,27,逻辑地址的隐式用法: DS:BX; SI;DI SS: BP; SP。 操作数的物理地址计算公式有以下几个:

10、 物理地址= (DS) 10H+(BX) 物理地址= (DS) 10H +(DI) 物理地址= (DS) 10H +(SI) 物理地址= (SS) 10H +(BP) 物理地址= (SS) 10H +(SP),若指令中指定了跨越前缀(段跨越), 则可以从指定的段中获得操作数。,28,基址/变址寻址(相对寻址),操作数在内存单元中,在寄存器间接寻址给出的偏移量(EA)基础上,加一个相对位移量,位移量是带符号的16位十六进制数。 当使用BX或BP时基址寻址 当使用SI 或DI时变址寻址,29,如:,MOV CX,36HBX,EA= 36H+(BX),段基址(DS) 10H + 36H+(BX),源

11、操作数的物理地址:,再如:,MOV 20 BP ,AL,EA= -14H+(BP),目的操作数物理地址:,段基址(SS) 10H -14H+(BP),30,基址变址寻址,操作数在内存单元中, EA由三部分组成:基址寄存器BX或BP的内容变址寄存器的内容位移量。 如:,MOV AX,8AHBXSI; EA8AH(BX)+(SI) 物理地址为(DS)X10H+ 8AH(BX)+(SI)。,31,在基址加变址寻址方式中,基址寄存器、变址寄存器的使用规定以及段寄存器的默认规定与基址/变址寻址方式相同。 在寻址方式中, 当基址寄存器和变址寄存器的默认段寄存器不同时,一般由基址寄存器来决定默认用哪一个段寄

12、存器作为段基址。 若在指令中规定了段跨越,则可以用其他寄存器作为段基址。,32,物理地址=(DS) 10H+(BX)+(SI)+位移量 或 物理地址= (SS) 10H +(BP)+(DI)+位移量 如: MOV AX, 20H ES:BXDI 则 物理地址=(ES) 10H +(BX)+(DI)+20H,逻辑地址的隐式用法:,段跨越写法:,33,I/O端口寻址,8086采用独立编址,因此,寻址通过I/O指令, 见I/O指令。,34,三、 8086的指令集,8086指令系统 按功能分6类:,数据传送类 算术运算类 位操作类(逻辑运算与移位指令) 串操作类 程序控制类 处理机控制类,常用的符号,

13、累加器 ax,al 寄存器 r: ax,bx,cx,dx,si,di,sp,bp,. 段寄存器seg: ds,es,ss,cs 内存 mem: nn, bx,si,di,bp bx/bp+count, si/di+count bx+si/di+count, bp+si/di+count 立即数 im,36,8086指令集 -数据传送指令,通用数据传送指令 累加器专用(I/O)传送指令 目标地址传送指令 标志寄存器传送指令,数据传送指令,37,数据传送类指令,目标,指令的共同特点是:,1、除POP和SAHF指令外,这类指令的操作结果不会影响FR寄存器中的标志。 2、指令中有两个操作数,目的操作数

14、和源操作数,其执行过程为: 目的操作数 源操作数, 当指令中仅列出一个操作数时,另一操作数为隐含。,39,传送指令(MOV) 指令格式:,MOV 目的操作数,源操作数,8086指令集 -数据传送指令-通用传送指令,40,MOV的数据传送方向示意图,41,使用中需要注意的是: MOV指令不能在两个存贮器单元之间进行数据直接传送。 MOV指令不能在两个段寄存器之间进行数据直接传送。 立即数不能直接传送给段寄存器。 目的操作数不能为立即数、CS。 源操作数和目的操作数数据类型相同。,42,(2) 堆栈操作指令 进栈指令PUSH 出栈指令POP 指令格式: PUSH 源操作数 POP 目的操作数,源操

15、作数可以是通用寄存器、段寄存器和存储器。,目的操作数可以是通用寄存器、段寄存器(CS除外) 或存储器。,43,操作过程: PUSH进栈指令使SP-2SP,然后将16位的源操作数压入堆栈,先高位后低位。 POP出栈指令的执行过程与PUSH相反。它从当前栈顶弹出16位操作数到目的操作数,同时SP+2SP,使SP指向新的栈顶。,44,说明:, 堆栈操作总是以字为单位进行。 PUSH和POP指令不影响标志位。 允许PUSH CS,但不允许POP CS。 堆栈的“后进先出”。,指令格式为: XCHG 目的操作数 ,源操作数 XCHG R, OPRD OPRD: R, MEM 操作数不能为立即数; 源和目的不能同时为存储单元; 段寄存器不能作为操作数。,(3)XCHG 交换指令,46,8086指令集 -数据传送指令-累加器专用传送指令,(1) 输入输出指令 输入指令格式: IN AL,n IN AX,n IN AL,DX IN AX,DX,输出指令格式: OUT n, AL OUT n, AX OUT DX, AL OUT DX, AX,n表示8位端口地址(00HFFH),47,在计算机中, 输入输出操作是由 CPU 利用输入、 输出指令并通过累加器 AL或AX 进行的。输入指令完成由输入端口

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

最新文档


当前位置:首页 > 电子/通信 > 综合/其它

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