微机原理与接口技术 第二版 教学课件 ppt 作者 郑博仁 邹纯递 第4章 指 令 系 统

上传人:E**** 文档编号:89424165 上传时间:2019-05-25 格式:PPT 页数:41 大小:135.01KB
返回 下载 相关 举报
微机原理与接口技术 第二版  教学课件 ppt 作者  郑博仁 邹纯递 第4章  指 令 系 统_第1页
第1页 / 共41页
微机原理与接口技术 第二版  教学课件 ppt 作者  郑博仁 邹纯递 第4章  指 令 系 统_第2页
第2页 / 共41页
微机原理与接口技术 第二版  教学课件 ppt 作者  郑博仁 邹纯递 第4章  指 令 系 统_第3页
第3页 / 共41页
微机原理与接口技术 第二版  教学课件 ppt 作者  郑博仁 邹纯递 第4章  指 令 系 统_第4页
第4页 / 共41页
微机原理与接口技术 第二版  教学课件 ppt 作者  郑博仁 邹纯递 第4章  指 令 系 统_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《微机原理与接口技术 第二版 教学课件 ppt 作者 郑博仁 邹纯递 第4章 指 令 系 统》由会员分享,可在线阅读,更多相关《微机原理与接口技术 第二版 教学课件 ppt 作者 郑博仁 邹纯递 第4章 指 令 系 统(41页珍藏版)》请在金锄头文库上搜索。

1、第4章 指 令 系 统,前面几章介绍了CPU的基本知识,本章主要介绍80x86的寻址方式和指令系统。本章是学习汇编程序设计语言的基础。只有学好了寻址方式和指令系统,才能够真正了解汇编程序的含义,读懂别人写的汇编程序,进而写出自己的汇编语言程序。,【学习目标】, 掌握80x86常见的寻址方式。 掌握80x86指令的基本格式。 掌握80x86的指令系统。,4.1 指令格式,4.1.1 指令格式 4.1.2 指令编码格式,计算机是通过指令来工作的,不同的计算机有不同的指令,80x86与早期8位的CPU相比,指令更丰富、功能更强大。为了减少指令所占的存储空间,提高指令执行速度,每条指令应尽量简短,80

2、x86采用最多5字节的指令格式。本节主要介绍80x86的指令格式和指令编码格式。,4.1.1 指令格式,指令格式是指指令在源程序中的书写格式,指令的基本格式为: 标号: 助记符 操作数 ;注释 下面对格式中的各部分作简单的解释。 1标号 标号是某条指令所存单元的符号地址,其后要跟冒号。标号一般是由字母开头,允许使用字母、数字及特殊字符(?、*、_、$);不允许使用保留字(关键字),例如ADD、MOV、EDN等。 2助记符 助记符指令的操作码,即指示要发生什么动作。例如“MOVAL,12H”中的助记符是MOV,是动词MOVE的简写,意思是将12H送到AL中。,3操作数 指令中可以无操作数,也可以

3、有13个操作数,操作数之间用逗号隔开, 例如: MOV DEST,SRC 为数据传送指令。SRC表示源操作数,DEST表示目的操作数。数据流动的方向是由源操作数传送到目的操作数。操作数可以是寄存器操作数或存储器操作数。有关操作数的说明如下。 通用寄存器操作数(REG):包括8位寄存器AL、AH、BL、BH、CL、CH、DL、DH;16位寄存器AX、BX、CX、DX、SI、DI、SP、BP;32位寄存器EAX、EBX、ECX、EDX、ESI、EDI、ESP、EBP。, 存储器操作数(MEM):间接寻址时16位寻址寄存器包括BX、BP、SI、DI;32位寻址寄存器包括EAX、EBX、ECX、EDX

4、、ESI、EDI、EBP。其中BX、SI、DI、EAX、EBX、ECX、EDX、ESI、EDI对应的默认段寄存器为DS;BP、EBP对应的默认段寄存器为SS。 存储器操作数默认的数据类型:在16位指令模式时为字类型,在32位指令模式时为双字类型。在使用中,如果要改变字类型,应使用伪指令PTR来定义,即: 字节类型 BYTE PTRREG 字类型 WORD PTRREG 双字类型 DWORD PTRREG, 段寄存器操作数(SEG):为16位段寄存器,包括CS、DS、ES、SS、FS、GS。 立即数(Imm):只允许作为源操作数,其数据类型由目的操作数决定。 4注释 注释由分号(;)开始,用来对

5、指令的功能加以说明,使程序便于阅读,汇编程序对它不进行处理。,4.1.2 指令编码格式,1前缀 指令前缀为地址长度前缀和操作数长度前缀。为了实现80x86系列的兼容性,在实地址方式和保护方式下均可执行16位或32位指令。在汇编程序中,为某些指令附加指令前缀可以将指令操作数或地址长度由16位转移到32位,也可以由32位转移到16位。,2操作码及寻址方式 操作码及寻址方式属于指令中最基本的组成部分,指令编码的格式为: 第一字节第二字节 (1)操作码:规定处理器执行的操作。如传送、加、减等,具体操作采用编码表示。 (2)D位:规定数据流的方向。为第二字节指定R/M域和REG域之间数据流动的方向。 (

6、3)W位:规定操作数长度是字节、字或双字。,(4)MOD域:选择寻址类型,指定R/M域为寄存器还是存储器。如为存储器,还要指定是否有偏移量。MOD占两位,有以下4种情况。 MOD=00为无相对量字节的内存寻址方式。 MOD=01为带一个字节相对量的内存寻址方式,在寻址方式字节后紧跟的是一字节的相对值。 MOD=10为带两个字节相对量的内存寻址方式,在寻址方式字节后紧跟的是二字节的相对值。 MOD=11为寄存器寻址,由R/M域确定选用哪个寄存器。 (5)REG域:采用位编码表示8个寄存器。它需要与指令操作码中的W位结合。 (6)R/M域:表示寄存器或存储器,由MOD域指定。如为寄存器,则与REG

7、域相同;如为存储器,则表示8种寻址方式。,4.2 寻址方式,寻址方式是指指令中寻找操作数的方式,一般有3种寻址方式。 与数据有关的寻址方式。 与转移指令或过程调用指令有关的寻址方式。 与输入/输出(IN/OUT)指令有关的寻址方式。,1立即寻址 操作数包含在指令中,作为指令的一部分存放在代码段中。操作数(又称立即数)的存放形式为:数据高位存放在地址高位存储单元,数据低位存放在地址低位存储单元。 2寄存器寻址 操作数在CPU内部的寄存器中,操作数可以是8位、16位或32位通用寄存器,也可以是16位段寄存器。 3存储器寻址 操作数在存储器中,指令以某种方式给出操作数在存储器中的地址。操作数地址可以

8、在指令中直接给出,也可以在寄存器中间接给出。存放地址的寄存器可以是16位或32位的通用寄存器。,4.3 指令系统,4.3.1 数据传送指令 4.3.2 堆栈操作指令 4.3.3 算术运算指令 4.3.4 逻辑运算指令 4.3.5 控制转移类指令 4.3.6 串处理指令 4.3.7 处理器控制指令,4.3.1 数据传送指令,数据传送指令包括:通用数据传送指令、地址传送指令、标志寄存器传送指令、符号扩展指令、扩展传送指令等。对于汇编程序来说,数据传送指令是最基本的、使用最频繁的指令。,1传送指令 传送指令是使用最频繁的指令。 2扩展传送指令 该指令是对传送指令MOV的扩展。 格式:MOVSX DE

9、ST,SRC MOVZX DEST,SRC 3交换指令 交换指令有两种格式。 格式1:XCHG OPR1, OPR2 功能:交换操作数OPR1和OPR2的值,操作数数据类型为字节、字或双字。允许通用寄存器之间、通用寄存器和存储器之间交换数据。,4.3.2 堆栈操作指令,1压栈指令 压栈指令有两种格式。 格式1:PUSH SRC 功能:将源操作数压入堆栈,源操作数允许为16位或32位通用寄存器、存储器或立即数以及16位段寄存器。当操作数的数据类型为字类型时,压栈操作使SP的值减2;当数据类型为双字类型时,压栈操作使SP的值减4。 2出栈指令 出栈指令有两种格式。 格式1:POP DEST 功能:

10、从栈顶弾出操作数传送给目的操作数。目的操作数允许为16位或32位通用寄存器、存储器和16位段寄存器。当操作数的数据类型为字类型时,出栈操作使SP加2;当操作数的数据类型为双字类型时,出栈操作使SP加4。,3地址传送指令 地址传送指令有两种格式。 格式1:LEA REG,MEM 功能:将源操作数的有效地址传送给通用寄存器,操作数REG为16位或32位通用寄存器,源操作数为16位或32位存储器操作数。 4查表指令 格式:XLAT 功能:将寄存器AL中的内容转换成存储器表格中的对应值。该指令可以实现直接查表功能。 BX寄存器存放表的首地址,AL寄存器存放表内偏移量。执行XLAT指令后,以段寄存器DS

11、的内容为段基址,有效地址为BX和AL内容之和,取出表中一个字节的内容送AL。,4.3.3 算术运算指令,80x86指令包括加、减、乘、除4种基本算术运算操作及十进制算术运算调整指令。二进制加、减法指令带符号操作数采用补码表示时,无符号数和带符号数的运算可以使用相同的指令。二进制乘、除法指令分为带符号数和无符号数运算指令。,1加法指令 格式:ADD DEST,SRC ADC DEST,SRC 功能:ADD是普通加法指令,它将源操作数SRC与目的操作数DEST相加,结果送目的操作数DEST,即DESTDEST+SRC。ADC是带进位加法指令,它将源操作数与目的操作数以及CF(低位进位)的值相加,结

12、果传送到目的操作数,即DESTDEST+ SRC+CF。 2减法指令 格式:SUB DEST,SRC SBB DEST,SRC 功能:SUB是普通减法指令,将目的操作数减去源操作数,结果送目的操作数,即DESTDESTSRC。SBB是带借位减法指令,它将目的操作数减去源操作数,还要减CF(低位借位)的值,结果送目的操作数,即DESTDESTSRCCF。,3加1、减1指令 格式:INC DEST DEC DEST 功能:INC指令将目的操作数加1,结果送目的操作数,即DESTDEST+1。DEC指令将目的操作数减1,结果送目的操作数,即DESTDEST1。 4比较指令 格式:CMP DEST,S

13、RC 功能:将目的操作数减去源操作数,结果不回送。源操作数为通用寄存器、存储器操作数或立即数。,5求补指令 格式:NEG DEST 功能:对目的操作数求补,将零减去目的操作数,结果送目的操作数,即DEST0DEST。 6乘法指令 乘法指令有3种格式。 格式1:MUL SRC IMUL SRC 功能:MUL为无符号数乘法指令,IMUL为带符号数乘法指令。源操作数为通用寄存器或存储器操作数。目的操作数默认存放在ACC(AL,AX,EAX)中,乘积存放在AX、DX:AX、EDX:EAX中。,7除法指令 格式:DIV SRC IDIV SRC 功能:DIV为无符号数除法,IDIV为带符号数除法。源操作

14、数作为除数,为通用寄存器或存储器操作数。被除数默认作为目的操作数存放在AX、DX:AX、EDX:EAX中。 8BCD码的算术运算 十进制在机器中采用BCD码表示,以压缩格式存放,即一个字节存储两位BCD码,BCD加减法是在二进制加减运算的基础上,对其二进制结果进行调整,将结果调整成BCD码的表示形式。 格式1:DAA 功能:将存放在AL中的二进制数的和(两个二进制数经过加法运算所得到的和)调整为压缩格式的BCD码表示形式。,9ASCII码的算术运算 数字09的ASCII码为30H39H,机器采用一个字节存放一位ASCII码,对于ASCII码的算术运算在二进制运算基础上进行调整。调整指令有加、减

15、、乘、除4种。 格式1:AAA 功能:将存放在AL中的二进制数的和调整为ASCII码表示形式。,4.3.4 逻辑运算指令,这组指令包括逻辑、移位和循环移位指令3部分。逻辑指令除了NOT指令外均有两个操作数,移位和循环移位指令只有一个操作数。,1逻辑指令 (1)逻辑与指令 格式:AND DEST,SRC 功能:目的操作数和源操作数按位进行逻辑与运算,结果送目的操作数。源操作数可以是通用寄存器、存储器或立即数。目的操作数可以是通用寄存器或存储器操作数。 2移位指令 移位指令对操作数按某种方式左移或右移,移位位数可以由立即数直接给出,也可以由CL间接给出。移位指令分一般移位指令和循环移位指令。 一般

16、移位指令有3种:算术/逻辑左移指令、算术右移指令和逻辑右移指令,具体如下。,(1)算术/逻辑左移指令 格式:SAL DEST,OPRD SHL DEST,OPRD 功能:按照操作数OPRD规定的移位位数对目的操作数进行左移操作,最高位移入CF中。每移动一位,右边补一位0,如图4-2所示。目的操作数可以为通用寄存器或存储器操作数。 3循环移位指令 循环移位指令有4种:左循环移位指令、右循环移位指令、带进位左循环移位指令和带进位右循环移位指令。 格式:ROL DEST,OPRD (左循环移位指令) ROR DEST,OPRD (右循环移位指令) RCL DEST,OPRD (带进位左循环移位指令) RCR DEST,OPRD (带进位右循环移位指令),功能: 左循环移位指令ROL每移位一次,操作数左移,其最高位移入最低位,同时最高位也移入进位标志位CF; 右循环移位指令ROR每移位一次,

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

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

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