微机原理 教学课件 ppt 作者 杨立 第3章 指令系统及其应用

上传人:E**** 文档编号:89409320 上传时间:2019-05-24 格式:PPT 页数:43 大小:184.50KB
返回 下载 相关 举报
微机原理 教学课件 ppt 作者  杨立 第3章 指令系统及其应用_第1页
第1页 / 共43页
微机原理 教学课件 ppt 作者  杨立 第3章 指令系统及其应用_第2页
第2页 / 共43页
微机原理 教学课件 ppt 作者  杨立 第3章 指令系统及其应用_第3页
第3页 / 共43页
微机原理 教学课件 ppt 作者  杨立 第3章 指令系统及其应用_第4页
第4页 / 共43页
微机原理 教学课件 ppt 作者  杨立 第3章 指令系统及其应用_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《微机原理 教学课件 ppt 作者 杨立 第3章 指令系统及其应用》由会员分享,可在线阅读,更多相关《微机原理 教学课件 ppt 作者 杨立 第3章 指令系统及其应用(43页珍藏版)》请在金锄头文库上搜索。

1、1,本章主要教学内容 指令系统、指令格式与寻址的概念 8086的寻址方式及其应用 8086的指令系统 各类指令的功能及其应用,第3章,指令系统及其应用,2,本章教学目的及要求 通过学习,使学生掌握指令格式、寻址方式、指令系统的基础知识。 理解各类指令的功能及其应用特点。 为后面程序设计奠定基础。,第3章,指令系统及其应用,3,第3章,3.1 概述 3.1.1 指令系统与指令格式 1. 指令与指令系统的概念 指令是计算机执行特定操作功能的命令,它和CPU所具备的能力相对应。计算机能执行的全部指令的集合称为指令系统。 计算机中的指令以二进制编码形式存放在存储器中。采用二进制编码形式表示的指令称为机

2、器指令。采用助记符可简化机器指令,称为符号指令,也称为汇编指令。,4,第3章,2. 指令格式 每条指令中要包含操作码和操作数两字段。 (1)操作码字段 表示计算机要执行的某种指令功能,说明要执行的具体操作。 (2)操作数字段 表示计算机在操作中所需要的数据,或数据存放位置。,5,3.1.2 寻址与寻址方式的概念 寻找操作数的过程称为寻址,寻找操作数或操作数地址的方式称为寻址方式。 8086指令中的操作数有3种可能的存放位置: (1)操作数在指令中,称为立即操作数。 (2)操作数在内部寄存器中,称为寄存器操作数。 (3)操作数在内存数据区中,称为存储器操作数。,第3章,6,第3章,3.2 寻址方

3、式及其应用 3.2.1 立即数寻址 MOV AL,25H ;将十六进制数25H送AL MOV AX,12B5H ;将12B5H送AX, MOV CL,50 ;将十进制数50送CL MOV AL,10100110B;将二进制数10100110B送AL,7,第3章,3.2.2 寄存器寻址 操作数存放在CPU的内部寄存器。 MOV AX,BX ;将BX中保存的操作数传送到AX中 ADD AL,BL ;两个8位寄存器操作数相加,结果放在AL中 INC CX ;对寄存器CX中的内容进行加1处理,8,第3章,3.2.3 存储器寻址 1. 直接寻址方式 指令中给出的地址码即为操作数的有效地址EA。 直接寻址

4、方式的操作数有效地址EA已经在指令中给出, 操作数的物理地址: PA(DS)10HEA。,9,第3章,2. 寄存器间接寻址方式 寄存器间接寻址方式操作数的有效地址由寄存器指出,操作数位于存储单元中。 操作数的物理地址为: PA(DS)10H指定寄存器内容。 PA(SS)10H(BP),10,第3章,3. 寄存器相对寻址方式 指令中给定基址寄存器或变址寄存器和一个8位或16位的相对偏移量,两者之和作为操作数的有效地址。 有效地址:EA(reg)8位或16位偏移量; 其中reg为给定寄存器。 物理地址:PA(DS)10HEA (用BX、SI、DI间址寄存器) PA(SS)10HEA (用BP间址寄

5、存器),11,第3章,4. 基址变址寻址方式 有效地址EA是基址寄存器加变址寄存器的内容。 物理地址计算公式: PA(DS)10H(BX)(SI) PA(SS)10H(BP)(DI) 5. 相对基址变址寻址方式 指令中给出基址寄存器、变址寄存器和8位或16位的偏移量,三者之和作为操作数的有效地址。 物理地址计算公式: PA(DS)10H(BX)(SI)或(DI)偏移量 PA(SS)10H(BP)(SI)或(DI)偏移量,12,第3章,3.2.4 I/O端口寻址 1. 直接端口寻址方式 指令中给出要访问的端口地址,端口数为0255,采用两位十六进制数表示。 2. 间接端口寻址方式 访问端口地址数

6、超过256个时,采用间接寻址方式,可访问的端口数为065535。间接端口寻址把I/O端口的地址先送到寄存器DX中,用16位的DX作为间接寻址寄存器。,13,第3章,3.3 指令系统及其应用 3.3.1 数据传送类指令 数据传送类指令的基本功能是把操作数或操作数的地址传送到指定的寄存器或存储单元中。 数据传送过程中,源操作数和目的操作数的类型必须保持一致。源操作数可以是累加器、寄存器、存储器操作数和立即数,目的操作数可以是累加器、寄存器和存储器。,14,第3章,1. 通用数据传送指令 (1)传送指令MOV 该指令把源操作数传送至目的操作数,指令执行后源操作数内容不变,目的操作数内容与源操作数内容

7、相同。 源操作数可以是通用寄存器、段寄存器、存储器及立即数,目标操作数可以是通用寄存器、段寄存器(CS除外)或存储器。,15,第3章,注意:使用MOV指令进行数据传送时 段寄存器CS及立即数不能作为目标操作数; 两个存储单元之间不允许直接传送数据; 立即数不能直接传送到段寄存器; 两个段寄存器之间不能直接传送数据。,16,第3章,(2)堆栈操作指令PUSH/POP 堆栈是按照“后进先出”原则组织的内存数据区域,设置在堆栈段SS内,指针SP始终指向堆栈的栈顶。 堆栈操作时: 进栈指令PUSH使(SP)(SP)2。 出栈指令POP的执行过程与PUSH相反,从当前栈顶弹出16位操作数到目标操作数,同

8、时(SP)(SP)2,17,第3章,(3)交换指令XCHG 实现字节数据交换,也可实现字数据交换。 如XCHG AX,BX;将寄存器AX内容与BX内容互相交换位置。 (4)换码指令XLAT 将累加器AL中的一个值转换为内存表格中的某一个值,再送回AL中。一般用来实现码制之间的转换,也称为查表转换指令。,18,第3章,2. 地址传送指令 (1)有效地址送寄存器指令LEA 将存储器源操作数src的有效地址传送到16位的通用寄存器。 (2)地址指针送寄存器指令LDS (3)指针送寄存器指令LES,19,第3章,3. 标志寄存器传送指令 标志寄存器传送是单字节指令,指令操作数以隐含形式规定,字节操作数

9、隐含为AH。 (1)取标志指令LAHF (2)置标志位指令SAHF (3)标志压入堆栈指令PUSHF (4)标志弹出堆栈指令POPF,20,第3章,4. 输入/输出指令 8086指令系统中的输入/输出指令是专门通过累加器来执行的。 输入指令:IN Acc,src ;Acc为8位或16位累加器 输出指令:OUT dst,Acc,21,第3章,3.3.2 算术运算类指令 8086的算术运算类指令包括加、减、乘、除4种基本运算指令,以及为进行BCD码十进制数运算而设置的各种较正指令。,22,第3章,加减法运算在执行过程中会产生溢出。 无符号数运算时,如果加法运算最高位向前产生进位或减法运算最高位向前

10、有借位,表示溢出; 带符号数采用补码运算时,符号位也参与运算,出现溢出表示运算结果发生错误。,23,第3章,算术运算指令除加1指令INC不影响CF标志外,其余指令对CF、OF、ZF、SF、PF、AF等6个标志位均可产生影响,其规则如下: 无符号数运算产生溢出时,CF1; 带符号数运算产生溢出时,OF1; 当运算结果为0时,ZF1; 当运算结果为负数时,SF1; 当运算结果中有偶数个1时,PF1; 当操作数为BCD码,低4位出现进位1时,AF1。,24,第3章,1. 加法指令 (1)不带进位加法指令:ADD dst,src 指令功能为:(dst)(dst)+(src) (2)带进位的加法指令:A

11、DC dst,src 指令功能为:(dst)(dst)+(src)+CF (3)加1指令:INC opr 指令功能为:(opr)(opr)+1,25,第3章,2. 减法指令 (1)不带借位减法指令:SUB dst,src 指令功能为:(dst)(dst)(src) (2)带借位的减法指令:SBB dst,src 指令功能为:(dst)(dst)(src)CF (3)减1指令:DEC opr 指令功能为:(opr)(opr)1 (4)求补指令:NEG opr 该指令将 opr中的内容取2的补码,相当于将opr中的内容按位取反后末位加1。 (5)比较指令:CMP opr1,opr2 指令功能为:(

12、opr1)(opr2),26,第3章,3. 乘法运算指令 乘法指令包括无符号数和带符号数相乘的指令,指令中只给出乘数,被乘数隐含给出。 两个8位数相乘时被乘数放入AL中,16位数的乘积存放到AX中; 两个16位数相乘时被乘数先放入AX寄存器中,32位数的乘积放到DX和AX两个寄存器中,规定DX中存放高16位,AX中存放低16位。,27,第3章,(1)无符号数乘法指令:MUL src 若src为字节数据,执行AX(AL)(src); 若src为字数据,执行DX、AX(AX)(src) (2)带符号数乘法指令:IMUL src 该指令的执行功能与MUL相同。,28,第3章,4. 除法运算指令 除法

13、指令可用来实现两个无符号数或带符号数的除法运算,包括字和字节两种操作,该指令隐含使用AX和DX作为一个操作数,指令中给出的源操作数为除数。 (1)无符号数除法指令:DIV src DIV指令的被除数、除数、商和余数全部为无符号数。 (2)带符号数除法指令:IDIV src IDIV指令的被除数、除数、商和余数均为带符号数,且余数的符号位同被除数。,29,第3章,5. 符号扩展指令 符号扩展指令是指用一个操作数的符号位形成另一个操作数,后一个操作数的各位是全0(正数)或全1(负数),符号扩展指令虽然使数据位数加长,但数据的大小并没有改变。该指令的执行不影响标志位。 (1)字节转换为字指令CBW

14、该指令的功能是将AL中的符号位D7扩展到AH中。 (2)字转换为双字指令CWD 该指令的功能是将AX中的符号位扩展到DX中。,30,第3章,6. 十进制调整指令 十进制数在计算机中是采用二进制数来表示的,这就是BCD码,要对十进制的BCD码进行算术运算,必须对得到的结果进行调整,否则结果无意义。 8086指令系统提供了以下两类十进制调整指令。 (1)组合BCD码加法、减法调整指令 DAA ;组合BCD码加法调整指令,将AL中的和调整为组合BCD码 DAS ;组合BCD码减法调整指令,将AL中的差调整为组合BCD码,31,第3章,(2)非组合BCD加法、减法调整指令 AAA ; 非组合BCD加法

15、调整指令,将AL中的和调整为非组合BCD码 AAS ; 非组合BCD减法调整指令,将AL中的差调整为非组合BCD码,32,第3章,3.3.3 逻辑运算与移位类指令 1. 逻辑运算指令 有以下5条逻辑运算指令,可对8位或16位操作数按位进行逻辑运算。 (1)逻辑与指令:AND dst,src (2)逻辑或指令:OR dst,src (3)逻辑异或指令:XOR dst,src (4)逻辑非指令:NOT dst (5)测试指令:TEST dst,src 。,33,第3章,2. 移位指令 移位操作类指令可以对字节或字数据中的各位进行算术移位、逻辑移位或循环移位。 移位指令格式: SHL/SAL/SHR

16、/SAR dst,1/ CL 循环移位指令格式:ROL/ ROR/ RCL/ RCR dst,1/ CL,34,第3章,3.3.4 串操作类指令 数据串是存储器中的一串字节或字的数据序列。8086指令系统中设置了串操作指令,其操作对象是内存中地址连续的字节串或字串。在每次操作后能够自动修改地址指针,为下一次操作作准备。 基本串操作指令有串传送(MOVS)、串比较(CMPS)、串扫描(SCAS)、串存取(LODS、 STOS)等。任何一个基本串操作指令的前面都可以加一个重复操作前缀,使指令操作重复,这样在处理长数据串时要比用循环程序速度快得多。,35,第3章,3.3.5 控制转移类指令 (1)如指令给出改变IP中内容的信息,转移的目标位置和转移指令在同一个代码段,称段内转移; (2)如指令给出改变IP中内容的信息,又给出改变CS中内容的信息,转移的目标位置和转移指令不在同一个代码段,称段间转移。 根据转

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

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

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