微机原理及应用 教学课件 ppt 作者 胡蔷 第四章

上传人:E**** 文档编号:89507508 上传时间:2019-05-26 格式:PPT 页数:120 大小:1.09MB
返回 下载 相关 举报
微机原理及应用 教学课件 ppt 作者 胡蔷 第四章_第1页
第1页 / 共120页
微机原理及应用 教学课件 ppt 作者 胡蔷 第四章_第2页
第2页 / 共120页
微机原理及应用 教学课件 ppt 作者 胡蔷 第四章_第3页
第3页 / 共120页
微机原理及应用 教学课件 ppt 作者 胡蔷 第四章_第4页
第4页 / 共120页
微机原理及应用 教学课件 ppt 作者 胡蔷 第四章_第5页
第5页 / 共120页
点击查看更多>>
资源描述

《微机原理及应用 教学课件 ppt 作者 胡蔷 第四章》由会员分享,可在线阅读,更多相关《微机原理及应用 教学课件 ppt 作者 胡蔷 第四章(120页珍藏版)》请在金锄头文库上搜索。

1、第4章 80x86微处理器的指令系统,内容提要:本章以8086/8088为例,介绍微型计算机的指令系统,指令格式和基本的寻址方式及有效地址的计算。指令系统包括数据传送指令、 算术运算指令、位操作指令、串操作指令、控制转移指令和处理器控制指令。只所以采用8086/8088CPU的指令系统,是因为8086/8088指令系统是所有80X86系列CPU指令系统的基础,80286、80386、80486乃至Pentium等新型CPU的指令系统仅是在这个基础上做了一些补充。用8086/8088指令系统编写的程序可以毫无改动地在80286、80386、80486、Pentium等CPU上运行。 学习要求:熟

2、练掌握8086/8088微处理器的指令系统,6种基本寻址方式和各种常用指令。,返回主目录,本章目录 4.1 Intel x86的寻址方式 4.2 Intel x86指令系统 小结,第4章 80x86微处理器的指令系统,4.1 Intel x86的寻址方式,指令的一般格式:,计算机中的指令由操作码字段和操作数字段组成。 操作码:指计算机所要执行的操作,是一种助记符。 操作数:指在指令执行操作的过程中所需要的操作数。 分目标操作数、源操作数。该字段除可以是操作数本身外,也可以是操作数地址或是地址的一部分,还可以是指向操作数地址的指针或其它有关操作数的信息。,指令举例: 寻址方式就是指令中用于说明操

3、作数所在地址的方法,或者说是寻找操作数有效地址的方法。寻址方式一般是针对源操作数而言的。在8086/8088系统中,一般将寻址方式分为两种不同的类型,一类是寻找操作数的地址,另一类是寻找要执行的下一条指令的地址,即程序的地址。 80868088的基本寻址方式有六种,下面我们来讨论这六种寻址方式。,ADD CL,BH ; CLCLBH,所提供的操作数直接包含在指令中,这种寻址方式就叫立即寻址,这个操作数叫立即数。所谓立即数是指具有固定数值的操作数,即常数。它紧跟在操作码的后面,与操作码一起放在代码段区域中。如图4-1所示。 例如:,4.1.1 立即寻址,MOV AX,2345H ; AX2345

4、H,立即数若是8位的,可以是无符号数,取值范围是00H-0FFH,也可以是带符号数,取值范围是80H-7FH。立即数若是16位的,可以是无符号数,取值范围是0000H-0FFFFH,也可以是带符号数,取值范围是8000H-7FFFFH。若是16位的,则存储时低位在前,高位在后。在指令中,立即数操作数只能作源操作数,而不能作目的操作数。 立即寻址主要用来给寄存器或存储单元赋初值。,操作数地址的16位偏移量直接包含在指令中,所以这种寻址方式叫直接寻址。16位偏移量与操作码一起存放在代码段区域,操作数一般在数据段区域中,它的地址为数据段寄存器DS加上这16位地址偏移量。如图4-2所示。 例如:,MO

5、V AX,DS:3000H ;AX(DS:3000H),4.1.2 直接寻址,设DS = 1000H。 直接寻址方式如图所示。,(对DS来讲可以省略成 MOV AX,3000H,系统默认为数据段),这种寻址方式是以数据段的地址为基础,可在多达64KB的范围内寻找操作数。 这种寻址方式允许段超越,即还允许操作数在以代码段、堆栈段或附加段为基准的区域中。此时只要在指令中指明是段超越的,则16位地址偏移量可以与CS或SS或ES相加,作为操作数的地址。 MOV AX,2000H ;数据段 MOV BX,ES:3000H ;段超越,操作数在附加段 即绝对地址(ES) 163000H,操作数包含在CPU的

6、内部寄存器中,所以这种寻址方式叫寄存器寻址。它们可以是数据寄存器(8位或16位),也可以是地址指针寄存器、变址寄存器或段寄存器,如寄存器AX、BX、CX、DX、SI等。如图4-3所示。 例如:,4.1.3寄存器寻址,MOV BX,AX ;BXAX MOV AL,BH ;ALBH,操作数是在存储器中,但是,操作数地址的16位偏移量包含在以下四个寄存器SI、DI、BP、BX之一中,所以这种寻址方式叫寄存器间接寻址。可以分成两种情况: 1) 以SI、DI、BX间接寻址,则通常操作数在现行数据段区域中,即数据段寄存器(DS)16(或10H)加上SI、DI、BX中的16位偏移量,为操作数的地址,如图4-

7、4所示。,4.1.4寄存器间接寻址,例如: MOV AX,SI ; 操作数地址是:(DS)16(SI),2) 以寄存器BP间接寻址,则操作数在堆栈段区域中。即堆栈段寄存器(SS)16与BP的内容相加作为操作数的地址。 例如: MOV AX,BP ; 操作数地址是:(SS)16(BP) 若在指令中规定是段超越的,则BP的内容也可以与其它的段寄存器相加,形成操作数地址。 例如: MOV AX,DS:BP ;操作数地址是:(DS)16(BP),由指定的寄存器内容,加上指令中给出8位或16位的偏移量(当然要由一个段寄存器作为基地址)作为操作数的偏移地址,称为变址寻址。(操作数在存储器中) 可以作为变址

8、寻址的四个寄存器是SI、DI、BX、BP。 1) 若用SI、DI和BX作为变址,则与数据段寄存器相加,形成操作数的地址默认在数据段。 2) 若用BP变址,则与堆栈段寄存器相加,形成操作数的地址默认在堆栈段。 例如: MOV AX,DATABX ;指令的执行过程如图4-5所示 操作数地址是:(DS) 16(BX)DATA 假设(DS)= 4000H,(BX)= 2000H, DATA= 0020H 则物理地址= 4000H10H2000H0020H= 42020H,4.1.5变址寻址(又称为寄存器相对寻址),但是,只要在指令中指定是段超越的,则可以用别的段寄存器作为基地址。 在汇编语言中,变址寻

9、址指令的书写格式允许有几种不同的形式。以下几种写法实质上是完全等价的: MOV AH , DATABX MOV AH , BXDATA MOV AH , DATA+BX MOV AH , BX+DATA MOV AH , DATA+BX MOV AH , BX+DATA 另外,在有的教科书中,若指定的寄存器是BX,BP又称为基址寻址方式。,把BX(数据段)和BP(堆栈段)看成是基址寄存器,把SI、DI看着是变址寄存器,把一个基址寄存器(BX或BP)的内容加上一个变址寄存器(SI或DI)的内容,再加上指令中指定的8位或16位偏移量(当然要以一个段寄存器作为地址基准)作为操作数的偏移地址,称为基址

10、加变址寻址。,4.1.6 基址加变址寻址,操作数在存贮器中,其偏移地址由(基址寄存器)(变址寄存器)相对偏移量形成。 例如: MOV AX,BXSIDATA 或 MOV AX,BXSIDATA 操作数地址是:(DS)16(BX)(SI)DATA 假设(DS)= 4000H,(BX)= 2000H,(SI)= 2000H,DATA=0100H 则物理地址=4000H10H2000H2000H0100H = 44100H 指令的执行过程如图4-6所示,与变址寻址方式类似,基址加变址寻址指令同样也可以表示成多种形式,例如,以下几种写法实质上是完全等价的: MOV AX , DATABXSI MOV

11、AX , BX+DATASI MOV AX , DATA+BX+SI MOV AX , BX DATASI MOV AX , DATASI+BX MOV AX , BXSI+DATA 使用基址加变址寻址时要注意,指令中不允许同时出现两个基址寄存器或两个变址寄存器,例如,以下指令是非法的: MOV AX , DATASIDI MOV AX , BX+DATABP,另外,在有的教科书中,若DATA为0,则称为基址变址寻址方式;若DATA不为0,则称为基址变址相对寻址方式。基址变址相对寻址方式实为基址变址寻址方式的扩充。 若用BX作为基地址,则操作数在数据段区域。 若用BP作为基地址,则操作数在堆栈

12、段区域。 但若在指令中规定是段超越的,则可用其它段寄存器作为基地址。表4-1是段寄存器使用的基本约定。,表4 - 1 段寄存器使用的基本约定,图4 7 不同字长的指令格式,4.1.7指令格式及指令执行时间,1、指令格式,不同字长的指令格式如图4-7所示,返回本章目录,控制计算机完成指定操作的命令称为指令。不同的计算机具有各自不同的指令,其所有指令的集合,就称为该计算机的指令系统。指令系统不仅定义了计算机所能执行的指令的集合,还定义了使用这些指令的规则。因此在使用汇编语言编写程序时,必须要对机器的指令系统非常了解。 对指令系统来说,8086和8088是完全相同的,因此,本章将这两种CPU统称为8

13、086。,4.2 Intel 80x86指令系统,在介绍各种指令之前,先介绍一下本节中要用到的一些符号。 OPRD 指各种类型的操作数 DATA 8位或16位操作数 PROC 过程或子程序的符号地址 LABLE 符号地址 n 输入/输出端口地址 mem 存储器操作数 ( ) 表示寄存器的内容 表示存储单元的内容,8086/8088 CPU的指令系统共包含92种基本指令,按照功能可以分为以下六个功能组。 1) 数据传送指令 (Data Transter) 2) 算术运算指令 (Arithmetic) 3) 逻辑运算指令 (Logic) 4) 串操作指令 (String Menipulation)

14、 5) 程序控制指令 (Program Control) 6) 处理器控制指令 (Processor Control),传送类指令的最大特点是:绝大多数指令执行后不影响标志寄存器FLAGS(除标志寄存器传送指令外)。 传送类指令按功能分为4小类:通用数据传送指令、目标地址传送指令、标志寄存器传送指令和输入输出指令。,4.2.1 数据传送指令,(1)一般传送指令 MOV 一般格式:MOV OPRD1,OPRD2 MOV 是操作码,OPRD1和OPRD2分别是目的操作数和源操作数。 功能:完成数据传送,即将一个操作数从源地址传送到目标地址,而源地址中的操作数不变。传送的操作数可以是8位也可以是16

15、位。,1通用数据传送指令,使用MOV 指令应注意几个问题: 1)一般CS和IP的内容不通过MOV指令进行修改,它们只能作为源操作数。 2)两个存储器操作数之间不允许直接进行信息传送,但可以用CPU内部寄存器为桥梁来完成这样的传送。 如:MOV AX,SI; MOV BX,AX;借助AX完成传送 3)两个段寄存器之间不能直接传送信息。 如:MOV AX,DS; MOV ES,AX;借助AX完成传送 4)目的操作数,不能用立即寻址方式。 5)不允许用立即寻址方式为段寄存器赋初值。 如:MOV AX,DATA; MOV DS,AX ;借助AX完成传送,具体来说,传送指令可以实现以下各种传送:,寄存器

16、之间的传送 MOV BL,AL;字节传送 MOV AX,BX;字传送 MOV DS,BX;字传送 MOV AX,CS;字传送,寄存器与存储器之间的传送 MOV AL,BUF MOV AX,SI MOV SI,DATABP MOV DS,DATASI+BX MOV DI,CX MOV DATABP+DI,ES,立即数到寄存器的传送 MOV CL, 0FFH ; 将立即数0FFH送CL MOV AX,0345H; 将立即数0345H送AX,即(AH)= 03H,(AL)= 45H。,立即数到存储器的传送 MOV 2000H,1122H; 将立即数1122H送偏移地址为 2000H和2001H两个存储单元, 低8位送低地址单元,高8位送高 地址单元。 MOV SI

展开阅读全文
相关资源
相关搜索

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

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