微型计算机原理及接口技术 教学课件 ppt 作者 林志贵 第3章 8086-8088指令系统

上传人:E**** 文档编号:89497378 上传时间:2019-05-25 格式:PPT 页数:88 大小:1.74MB
返回 下载 相关 举报
微型计算机原理及接口技术 教学课件 ppt 作者 林志贵 第3章 8086-8088指令系统_第1页
第1页 / 共88页
微型计算机原理及接口技术 教学课件 ppt 作者 林志贵 第3章 8086-8088指令系统_第2页
第2页 / 共88页
微型计算机原理及接口技术 教学课件 ppt 作者 林志贵 第3章 8086-8088指令系统_第3页
第3页 / 共88页
微型计算机原理及接口技术 教学课件 ppt 作者 林志贵 第3章 8086-8088指令系统_第4页
第4页 / 共88页
微型计算机原理及接口技术 教学课件 ppt 作者 林志贵 第3章 8086-8088指令系统_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《微型计算机原理及接口技术 教学课件 ppt 作者 林志贵 第3章 8086-8088指令系统》由会员分享,可在线阅读,更多相关《微型计算机原理及接口技术 教学课件 ppt 作者 林志贵 第3章 8086-8088指令系统(88页珍藏版)》请在金锄头文库上搜索。

1、第 3 章 8086/8088指令系统,本章主要内容,3.1 汇编语言指令格式与寻址方式 3.2 指令系统,3.1.1 汇编语言指令格式,1. 8086/8088汇编语言指令语句格式,3.1 汇编语言指令格式与寻址方式,标识符,8086/8088汇编语言中标识符必须遵循的规则: (1)标识符由字母(az、AZ)、数字(09)或某些特殊字符(,-,?)组成; (2)第一个字符必须是字母(az、AZ)或某些特殊的符号(,-,?),但“?”不能单独作标识符; (3)标识符有效长度为31个字符,若超过31个字符,则只保留前面的31个字符为有效标识符,标号是给该指令所在地址取的名字,必须后跟冒号“:”,

2、它可以缺省,是可供选择的标识符,3.1.1 汇编语言指令格式,寻址方式是指CPU寻找操作数或操作数地址的方法,对象:目的操作数、源操作数,3.1 汇编语言指令格式与寻址方式,3.1.2 寻址方式,1. 立即数寻址,指令中所用的8位或16位操作数就在指令中提供,如: MOV AL, 05H MOV AX, 3100H,3.1.2 寻址方式,注意: 立即数只能作为源操作数 立即数可以为8位,也可以为16为;规定立即数只能是整数,不能是小数、变量或者其他类型的数据,3.1.2 寻址方式,如果操作数就在CPU的内部寄存器中,那么寄存器名可在指令中指出,2. 寄存器寻址,如: MOV SS, AX RO

3、L AH,1,16位操作数: 寄存器可以是AX、BX、CX、DX、SI、DI、SP、BP,8位操作数: 寄存器可以是AH、AL、BH、BL、CH、CL、DH、DL,3.1.2 寻址方式,3. 直接寻址,数据总是在存储器中,存储单元的有效地址由指令直接指出,如: MOV AX,1064H,3.1.2 寻址方式,3.1.2 寻址方式,注意: 采用直接寻址方式时,如果指令前面没有用前缀指明操作数在哪一段,则默认为段寄存器是数据段寄存器DS, 如果要对其它段寄存器所指出的存储区进行直接寻址,则本条指令前必须用前缀指出段寄存器名,如: CS: MOV BX, 3200H,操作数一定在存储器中,存储单元的

4、有效地址由寄存器指出,这些寄存器只能是BX、BP、SI和DI之一,即有效地址等于其中某一个寄存器的值:,4. 寄存器间接寻址,注:如果指令前面没有用前缀指明具体的段寄存器,则寻址时默认的段寄存器通常为DS。如果寄存器为BP时,则默认的段寄存器为SS,3.1.2 寻址方式,3.1.2 寻址方式,如: MOV BX, SI MOV BP, AL,若:(DS)=3000H,(SS)2000H,(SI)=2000H,(BP)=1000H,(AL)=64H,变址寻址指令将变址寄存器的内容加上指令中给出的位移量,即可得到操作数的有效地址。位移量可以为8位,也可以为16位,如:MOV SI+10H, AX,

5、3.1.2 寻址方式,5. 变址寻址,若(DS)=3000H,(SI)=2000H,(AX)=4050H,3.1.2 寻址方式,基址寻址指令将基址寄存器的内容加上指令中给出的位移量,即可得到操作数的有效地址。位移量可以为8位,也可以为16位,如:MOV CX, COUNTBX MOV BLOCKBP, AX,3.1.2 寻址方式,6. 基址寻址,若(DS)=3000H,(BX)=1000H,COUNT=1050H,3.1.2 寻址方式,操作数的有效地址是1个基址寄存器(BX或BP)的内容加上一个变址寄存器(SI或DI)的内容。即,将BX、BP和SI、DI寄存器组合起来进行间接寻址,如: MOV

6、 AH, COUNTBXDI,3.1.2 寻址方式,7. 基址-变址寻址,若 (DS)=4000H,(BX)=1000H,(DI)=1500H,COUNT=1234H,3.1.2 寻址方式,注:只要用上BP寄存器,那么默认的段寄存器就是SS;在其它情况下,默认的段寄存器均为DS。如果操作数不在默认段,则要用前缀指出相应的段寄存器名, 允许带一个8位或16位的位移量相对的基址加变址寻址,如: MOV AX,BX+SI+0050H, 用于堆栈中数组,3.1.2 寻址方式,3.2.1 数据传送指令,3.2 指令系统,1. 通用传送指令,特点: 既可传送字节操作数(8位),也可以传送字操作数(16位)

7、。 可用本章3.1节讨论过的各种寻址方式。 可实现以下各种传送: 寄存器与寄存器/存储器之间; 立即数至寄存器/存储器; 寄存器/存储器与段寄存器之间。,(1)最基本的传送指令 MOV MOV dest, src ;(dest)(src),3.2.1 数据传送指令,如: MOV SI, BX MOV DS, AX MOV AX, CS MOV AL, 5 MOV MEM, 5 MOV BX, 5,3.2.1 数据传送指令,MOV MEM, AX MOV MEM, DS MOV DISPBX, CX MOV AX, DISPSI MOV DS, MEM MOV AX, DISPBXSI,3.2.

8、1 数据传送指令,注意: 不能用一条MOV指令实现以下传送: 存储单元之间的传送; 立即数至段寄存器的传送; 段寄存器之间的传送。,例3-1 将传送200个字节到内存中的另一个数据区。 MOV SI, OFFSET BUFFER1 MOV DI, OFFSET BUFFER2 MOV CX, 200 NEXT: MOV AL, SI MOV DI, AL INC SI INC DI DEC CX JNZ NEXT ,3.2.1 数据传送指令,PUSH和POP指令的操作数可能有三种情况: 寄存器(包括通用寄存器以及地址指针和变址寄存器)。 段寄存器(CS例外,PUSH CS指令是合法的,而POP

9、 CS指令是非法的)。 存储器。 但无论哪一种操作数,其类型必须是字操作数(16位)。,(2)堆栈操作指令PUSH、POP,3.2.1 数据传送指令,指令格式: PUSH src ;(SP)(SP)2 ;(SP)+1: (SP)(src) POP dest ; (dest)(SP) +1: (SP) (SP)(SP)+2,在执行PUSH指令时,首先,堆栈指示器SP自动减2;然后,将一个字以源操作数传送至栈顶 POP指令的执行过程正好与PUSH指令相反,它把由SP指出的当前堆栈段的栈顶的一个操作数(一个字),传送到目的操作数中,然后,SP自动加2,指向新的栈顶 POP指令中的目的操作数可以是除代

10、码段寄存器CS之外的其它寄存器和存储器,在程序中采用堆栈操作指令时,应预置堆栈段寄存器SS、堆栈指示器SP的值,同时,使SP的内容为当前堆栈段的栈顶,3.2.1 数据传送指令,例3-2:将16位通用寄存器CX的内容压入堆栈,然后,弹出栈顶至CX中,已知:(SS)0200H,(SP)0008H,(CX)12FAH,3.2.1 数据传送指令,交换指令XCHG可以实现字节交换,也可以实现字交换。交换过程可以在CPU的内部寄存器之间进行,也可以在内部寄存器和存储单元之间进行,但不能在两个存储单元之间执行数据交换,(3)交换指令XCHG,如: XCHG AL,BL ;AL和BL之间进行字节交换 XCHG

11、 BX,CX ;BX和CX之间进行字交换 XCHG 2530H,CX ;CX中的内容和2530H、 2531H两单元的内容交换,3.2.1 数据传送指令,要求BX寄存器指向表的首地址,AL中为表中某一项与表格首地址之间的偏移量,指令执行时,会将BX和AL中的值相加,把得到的值作为地址,然后将此地址所对应的单元中的值取到AL中去,(4)换码指令(也称查表指令)XLAT,注:XLAT指令就是通过查表方式来完成换码功能的 在执行该指令之前,必须建立好一张表,该表的最大容量为256字节,3.2.1 数据传送指令,注: XLAT指令就是通过查表方式来完成换码功能的 在执行该指令之前,必须建立好一张表,该

12、表的最大容量为256字节 用于LED显示,如:假设数据表存放在偏移地址为2000H开始的内存中,取出数据序号“3”所对应的表中某存储单元中的数送到AL中去,用如下几条指令即可完成: MOV BX,2000H ;BX隐含做表首地址 MOV AL,3 ;结果送AL XLAT,3.2.1 数据传送指令,2. 输入/输出数据传送指令IN、OUT,如: IN AL,50H IN AX,70H MOV DX,2500 H IN AL,DX IN AX,DX OUT 44H,AL OUT 80H,AX MOV DX,3000 H OUT DX,AL OUT DX,,AX,功能:用来完成累加器(AX/AL)与

13、I/O端口之间的数据传送,注:端口地址大于255,必须用DX寄存器做间接寻址 16位端口地址设置在偶数地址号上,3.2.1 数据传送指令,指令格式: IN acc, port OUT port, acc,3. 目标地址传送指令,功能:将存储器某单元的偏移地址送到一个寄存器,(1)取有效地址指令LEA,功能:用于传送地址码的指令,可用来传送操作数,要求:源操作数必须为内存单元地址,目的操作数必须为一个16位的通用寄存器,如:LEA AX, 2728H LEA BX, BP+SI LEA SP, 0482H,用途:常用来使一个寄存器作为地址指针,3.2.1 数据传送指令,指令格式:LEA reg1

14、6, mem16,类似于LDS,(2)将地址指针装到DS和另一个寄存器的指令LDS,功能:将某操作数的四个连续字节中的地址指针(其中包括一个段地址和一个偏移量)传送到两个目的寄存器,其中,地址指针的后两个字节(段地址)一定送到DS中,如:LDS DI, 2130H,(3)将地址指针装到ES和另一个寄存器的指令LES,3.2.1 数据传送指令,指令格式:LDS reg16, mem32,4. 标志位传送指令,(1)读取标志指令LAHF,功能:将标志寄存器中的低8位传送到AH中,(2)设置标志指令SAHF,功能:将AH寄存器的相应位传送到标志寄存器的低8位,3.2.1 数据传送指令,功能: PUS

15、HF指令:将FR的值压入堆栈顶部,同时,栈指针SP的值减2,此指令在执行时FR的值不变,(3)对标志寄存器的压入堆栈指令和弹出堆栈指令PUSHF、POPF,POPF指令:从堆栈中弹出一个字送到FR中,同时堆栈指针SP的值加2,用途:用在子程序和中断处理程序的首尾,起保存主程序标志和恢复主程序标志的作用,3.2.1 数据传送指令,3.2.2 算术运算指令,3.2 指令系统,1. 加法指令,如: ADD AL,50H ADD CX,1000H ADD DI,SI ADD BX+DI,AX ADD AX,BX+2000H,(1)不带进位位的加法指令ADD,功能:用来执行两个字或两个字节的相加操作,结果放在原来存放目的操作数的地方,不考虑低位的进位,影响标志位:CF、PF、AF、ZF、SF、OF,3.2.2 算术运算指令,指令格式:ADD dest, src,如: ADC AX,SI ADC DX,SI ADC BX,3000H ADC AL,5,(2)带进位位的加法指令ADC,功能:用来执行两个字或两个字节与进位标志位CF的值相加操作,结果放在原来存放目的操作数的地方,影响标志位:CF、PF、AF、ZF、SF、OF,用途:用在多字节加法运算中,3.2.2

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

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

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