微机原理与接口技术第3章课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《微机原理与接口技术第3章课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 课件
- 资源描述:
-
1、第第3 3章章 指令系统指令系统3.1 8086/80883.1 8086/8088的指令格式及寻址方式的指令格式及寻址方式3.2 3.2 微处理器的基本指令系统微处理器的基本指令系统3.1 8086/80883.1 8086/8088的指令格式及寻址方式的指令格式及寻址方式 汇编语言是一种接近于机器语言的低级计算机语言,在汇编语言是一种接近于机器语言的低级计算机语言,在汇编语言中,助记符代替了操作码,而操作数部分也像机器汇编语言中,助记符代替了操作码,而操作数部分也像机器语言一样需要指明具体位置,具有机器语言相应的寻址方式,语言一样需要指明具体位置,具有机器语言相应的寻址方式,当然表现形式不
2、是二进制符号,而是数值、寄存器名、变量当然表现形式不是二进制符号,而是数值、寄存器名、变量等。对有操作数的指令,在执行指令所规定的操作之前首先等。对有操作数的指令,在执行指令所规定的操作之前首先要寻找操作数。要寻找操作数。3.1.1 3.1.1 指令格式指令格式 指令格式是指令字用二进制代码表示的结构形式。计算机中的指令指令格式是指令字用二进制代码表示的结构形式。计算机中的指令由操作码字段和操作数字段两部分组成。操作码字段指示计算机所要执由操作码字段和操作数字段两部分组成。操作码字段指示计算机所要执行的操作,操作数字段指出在指令执行操作过程的所需要的操作数。行的操作,操作数字段指出在指令执行操
3、作过程的所需要的操作数。汇编语言语句用符号或符号地址来表示操作数或操作数地址,它的汇编语言语句用符号或符号地址来表示操作数或操作数地址,它的操作码与机器指令是一一对应的。用助记符表达的指令格式通常为:操作码与机器指令是一一对应的。用助记符表达的指令格式通常为:操作码操作码操作数操作数操作数操作数 操作数字段可以有一个、两个或三个,通常称为一地址、二地址、操作数字段可以有一个、两个或三个,通常称为一地址、二地址、三地址指令。三地址指令。3.1.2 3.1.2 寻址方式寻址方式 指令中操作的对象称为操作数。指令中操作的对象称为操作数。8086/80888086/8088指令系统中,操作指令系统中,
4、操作数分为两大类:数据操作数和转移地址操作数,寻找这些操作数数分为两大类:数据操作数和转移地址操作数,寻找这些操作数的方式称为寻址方式,即指令中用于说明操作数或操作数所在地的方式称为寻址方式,即指令中用于说明操作数或操作数所在地址的方法。址的方法。8086/8088 8086/8088的有的有7 7种基本的寻址方式:立即数寻址、寄存器寻种基本的寻址方式:立即数寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址和相对基址加变址寻址。寻址和相对基址加变址寻址。1 1)立即数寻址方式)立即数寻址方式 操作数包含在指令中,
5、作为指令的一部分,跟在操作码后存放在代操作数包含在指令中,作为指令的一部分,跟在操作码后存放在代码前,这种操作数称为立即数。码前,这种操作数称为立即数。立即数可以是立即数可以是8 8位,也可以是位,也可以是1616位,按位,按“高高低低高高低低”原则存放,即原则存放,即高位字节在高地址存储单元,低位字节在低地址存储单元。高位字节在高地址存储单元,低位字节在低地址存储单元。图图3-1 3-1 立即数寻址方式的存储和执行示意图立即数寻址方式的存储和执行示意图 2 2)寄存器寻址方式)寄存器寻址方式 该寻址方式的操作数在该寻址方式的操作数在CPUCPU内部的寄存器中,指令中指定寄存器号。内部的寄存器
6、中,指令中指定寄存器号。对于对于1616位操作数,寄存器可以是位操作数,寄存器可以是AXAX、BXBX、CXCX、DXDX,SISI、DIDI、SPSP和和 BP BP等;等;对于对于8 8位操作数,寄存器可以是位操作数,寄存器可以是ALAL、AHAH、BLBL、BHBH、CLCL、CHCH、DLDL和和DHDH。3 3)直接寻址方式)直接寻址方式 该寻址方式的操作数一般存放在存储器的数据段,直接寻址的有效该寻址方式的操作数一般存放在存储器的数据段,直接寻址的有效地址地址EA(16EA(16位偏移位偏移)在指令的操作码后面直接给出,它与指令的操作码一在指令的操作码后面直接给出,它与指令的操作码
7、一起,存放在存储器的代码段中,也是高位字节存放在高地址中,低位字起,存放在存储器的代码段中,也是高位字节存放在高地址中,低位字节存放在低地址中。但是,操作数本身一般存放在存储器的数据段中。节存放在低地址中。但是,操作数本身一般存放在存储器的数据段中。所以操作数的地址由所以操作数的地址由DSDS加上指令中直接给出的加上指令中直接给出的1616位偏移地址得到。如果位偏移地址得到。如果采用段超越前缀,则操作数也可含在数据段外其他段中。采用段超越前缀,则操作数也可含在数据段外其他段中。图图3-2 3-2 直接寻址方式指令的执行情况直接寻址方式指令的执行情况 4 4)寄存器间接寻址方式)寄存器间接寻址方
8、式 操作数在存储器中,操作数有效地址在操作数在存储器中,操作数有效地址在SISI、DIDI、BXBX、BPBP这这4 4个寄存个寄存器之一中,在一般情况(即不使用段超越前缀明确指定段寄存器)下,器之一中,在一般情况(即不使用段超越前缀明确指定段寄存器)下,如果有效地址在如果有效地址在SISI、DIDI和和BXBX中,则以中,则以DSDS段寄存器的内容为段值;如果有段寄存器的内容为段值;如果有效地址在效地址在BPBP中,则以中,则以SSSS段寄存器的内容为段值。段寄存器的内容为段值。寄存器间接寻址方式指令的书写应加方括号,避免与一般的寄存器寄存器间接寻址方式指令的书写应加方括号,避免与一般的寄存
9、器寻址方式混淆。寻址方式混淆。图图3-3 3-3 寄存器间接寻址方式指令的执行情况寄存器间接寻址方式指令的执行情况 5 5)寄存器相对寻址方式)寄存器相对寻址方式 操作数在存储器中,操作数的有效地址是一个基址寄存器(操作数在存储器中,操作数的有效地址是一个基址寄存器(BXBX、BPBP)或)或变址寄存器的(变址寄存器的(SISI、DIDI)内容加上指令中给定的)内容加上指令中给定的8 8位获位获1616位位移量之和。位位移量之和。在一般情况(即不使用段超越前缀明确指定段寄存器)下,如果在一般情况(即不使用段超越前缀明确指定段寄存器)下,如果SISI、DIDI或或BXBX的内容作为有效地址的一部
10、分,那么引用的段寄存器是的内容作为有效地址的一部分,那么引用的段寄存器是DSDS;如果;如果BPBP的内的内容作为有效地值的一部分,那么引用的段寄存器是容作为有效地值的一部分,那么引用的段寄存器是SSSS。比如,。比如,“MOV BXMOV BX,BP-4BP-4”指令中,源操作数采用寄存器相对寻址,引用的段寄存器是指令中,源操作数采用寄存器相对寻址,引用的段寄存器是SSSS;“MOV ESMOV ES:BX+5BX+5,ALAL”指令中,目的操作数采用寄存器相对寻址,引用指令中,目的操作数采用寄存器相对寻址,引用的段寄存器是的段寄存器是ESES。图图3-4 3-4 寄存器相对寻址方式指令的执
11、行情况寄存器相对寻址方式指令的执行情况 6 6)基址加变址寻址方式)基址加变址寻址方式 操作数在存储器中,操作数的有效地址由基址寄存器之一的内容操作数在存储器中,操作数的有效地址由基址寄存器之一的内容与变址寄存器之一的内容相加得到。即在一般情况(即不使用段超越与变址寄存器之一的内容相加得到。即在一般情况(即不使用段超越前缀明确指定段寄存器)下,如果前缀明确指定段寄存器)下,如果BPBP的内容作为有效地址的一部分,的内容作为有效地址的一部分,则以则以SSSS的内容为段值,否则以的内容为段值,否则以DSDS的内容为段值。的内容为段值。7 7)相对基址加变址寻址方式)相对基址加变址寻址方式 操作数在
12、存储器中,操作数的有效地址由基址寄存器之一的内容操作数在存储器中,操作数的有效地址由基址寄存器之一的内容与变址寄存器之一的内容与指令中给定的与变址寄存器之一的内容与指令中给定的8 8位或位或1616位位移量相加得到。位位移量相加得到。也就是说,相对基址变址寻址方式的有效地址是由指令中指定的也就是说,相对基址变址寻址方式的有效地址是由指令中指定的8 8 位位或或16 16 位位移量位位移量(disp)(disp)、一个基址寄存器内容和一个变址寄存器内容、一个基址寄存器内容和一个变址寄存器内容之和。即:之和。即:BX BXSISI8 8 位位disp disp 或或 BP BPDIDI1616位位
13、disp disp 相对基址加变址这种寻址方式最复杂,但也是最灵活。其寻址方式的表相对基址加变址这种寻址方式最复杂,但也是最灵活。其寻址方式的表示方法多种多样,下面的表示方法是等价的:示方法多种多样,下面的表示方法是等价的:MOV AXMOV AX,BX+DI+1234HBX+DI+1234HMOV AXMOV AX,1234HBX+DI1234HBX+DIMOV AXMOV AX,1234H1234H,BXDIBXDIMOV AXMOV AX,1234HDIBX1234HDIBX3.2 3.2 微处理器的基本指令系统微处理器的基本指令系统 80 x86 80 x86的指令系统大致分为的指令系
14、统大致分为6 6 种类型:数据传送指令、种类型:数据传送指令、算术运算指令、位操作指令、串操作指令、程序控制指令和算术运算指令、位操作指令、串操作指令、程序控制指令和处理器控制指令。处理器控制指令。3.2.1 3.2.1 数据传送指令数据传送指令 数据传送是机器内部最基本的操作之一。这些指令不仅能实现寄存数据传送是机器内部最基本的操作之一。这些指令不仅能实现寄存器之间、寄存器与内存之间、寄存器与器之间、寄存器与内存之间、寄存器与I/OI/O端口之间的字节或字数据的传端口之间的字节或字数据的传送,而且能传送目标地址和状态标示以及完成堆栈的操作。数据传送指送,而且能传送目标地址和状态标示以及完成堆
15、栈的操作。数据传送指令负责把数据地址或立即数传送到寄存器或存储单元中。它又可以分为令负责把数据地址或立即数传送到寄存器或存储单元中。它又可以分为以下以下5 5种。种。1.1.通用数据传送指令通用数据传送指令 1 1)MOVMOV传送指令传送指令 格式:格式:MOVMOVDST,SRCDST,SRC 功能:将源操作数功能:将源操作数SRCSRC送到目的操作数送到目的操作数DSTDST中。中。操作:(操作:(DSTDST)(SRC)(SRC)需要注意以下几点:需要注意以下几点:目的操作数目的操作数DSTDST和源操作数和源操作数SRCSRC不能同时用内存寻址方式,这个限制适用于不能同时用内存寻址方
16、式,这个限制适用于所有指令。所有指令。目的操作数目的操作数DSTDST不能是不能是CSCS,也不能用立即数方式。,也不能用立即数方式。MOVMOV指令不影响标志位。指令不影响标志位。MOVMOV允许传送字或双字。允许传送字或双字。2 2)入栈指令)入栈指令格式:格式:PUSH SRCPUSH SRC功能:将操作数压入堆栈中。功能:将操作数压入堆栈中。操作:操作:1616位指令位指令:(SP(SP)(SP)-2(SP)-2(SP)+1,(SP)(SRC)(SP)+1,(SP)(SRC)32 32位指令位指令:(ESP)(ESP)-4(ESP)(ESP)-4(ESP)+3,(ESP)+2,(ESP
17、)+1,(ESP)(SRC)(ESP)+3,(ESP)+2,(ESP)+1,(ESP)(SRC)3 3)出栈指令)出栈指令格式:格式:POPPOPDSTDST功能:将数据从堆栈中取出送到功能:将数据从堆栈中取出送到DSTDST指定的地址。指定的地址。操作:操作:1616位指令:位指令:(DST)(SP)+1,(SP)(DST)(SP)+1,(SP)(SP)(SP)+2(SP)(SP)+2 32 32位指令:位指令:(DST)(ESP)+3,(ESP)+2,(ESP)+1,(ESP)(DST)(ESP)+3,(ESP)+2,(ESP)+1,(ESP)(ESP)(ESP)+4 (ESP)(ESP)
18、+42.2.交换指令交换指令格式:格式:XCHGXCHGOPR1,OPR2OPR1,OPR2功能:使两个操作数功能:使两个操作数OPR1OPR1和和OPR2OPR2互相交换,其中一个操作数必须在寄存器互相交换,其中一个操作数必须在寄存器中,另一个操作数可以在寄存器或内存中。中,另一个操作数可以在寄存器或内存中。操作:操作:(OPR1)(OPR2)(OPR1)(OPR2)需要注意以下几点:需要注意以下几点:不允许使用段寄存器。不允许使用段寄存器。不能在两个内存之间传送。不能在两个内存之间传送。不影响标志位。不影响标志位。不能用立即寻址方式。不能用立即寻址方式。允许字或字节操作。允许字或字节操作。
19、3.3.地址传送指令地址传送指令1 1)LEALEA指令指令格式:格式:LEALEAREG,SRCREG,SRC功能:取有效地址送到寄存器。功能:取有效地址送到寄存器。操作:(操作:(REGREG)(SRC)(SRC)需要注意以下几点:需要注意以下几点:源操作数可以是除寄存器和立即数以外的任意一种内存寻址方式。源操作数可以是除寄存器和立即数以外的任意一种内存寻址方式。目的操作数可以是目的操作数可以是1616位和位和3232位,但不能用段寄存器。位,但不能用段寄存器。不影响标志位。不影响标志位。2 2)LDSLDS指令指令格式:格式:LDSLDSREG,SRCREG,SRC功能:把源操作数指定的
20、内存中的字节单元中的低地址中的字送到指定功能:把源操作数指定的内存中的字节单元中的低地址中的字送到指定的寄存器中,高地址中的字送到的寄存器中,高地址中的字送到DSDS寄存器中。寄存器中。操作:(操作:(REGREG)(SRCSRC)注意以下几点:注意以下几点:SRCSRC不能是段寄存器。不能是段寄存器。SRCSRC必须使用内存寻址方式。必须使用内存寻址方式。不影响标志位。不影响标志位。3 3)LES LES指令指令格式:格式:LESLESREG,SRCREG,SRC功能:把源操作数指定的内存中的字节单元中的低地址中的字送到指定功能:把源操作数指定的内存中的字节单元中的低地址中的字送到指定的寄存
21、器中,高地址中的字送到的寄存器中,高地址中的字送到ESES寄存器中。寄存器中。操作:(操作:(REGREG)(SRCSRC)注意以下几点:注意以下几点:SRCSRC不能是段寄存器。不能是段寄存器。SRCSRC必须使用内存寻址方式。必须使用内存寻址方式。不影响标志位。不影响标志位。4.4.状态标志位传送指令状态标志位传送指令有有4 4条专门传送状态标志位的指令条专门传送状态标志位的指令LAHFLAHF、SAHTSAHT、PUSHFPUSHF和和POPFPOPF。1 1)LAHFLAHF指令指令格式:格式:LAHF LAHF 功能:将标志送到功能:将标志送到AHAH中。中。操作:(操作:(AHAH
22、)(FLAGS(FLAGS的低字节的低字节)2 2)SAHFSAHF指令指令格式:格式:SAHFSAHF功能:将功能:将AHAH中的内容送到中的内容送到FLAGSFLAGS的低的低8 8位。位。操作:(操作:(FLAGSFLAGS的低字节的低字节)(AHAH)3)PUSHF/POPF3)PUSHF/POPF指令指令格式:格式:PUSHFPUSHFPOPFPOPF功能:标志寄存器进栈和出栈功能:标志寄存器进栈和出栈操作:操作:PUSHF:PUSHF:(SP)(SP)-2(SP)(SP)-2(SP)+1,(SP)(FLAGS)(SP)+1,(SP)(FLAGS)POPF:POPF:(FLAGS)(
23、SP)+1,(SP)(FLAGS)(SP)+1,(SP)(SP)(SP)-2(SP)(SP)-2注意以下几点:注意以下几点:LAHFLAHF和和PUSHFPUSHF不影响标志位。不影响标志位。POPFPOPF会以弹出值设置标志寄存器值,会以弹出值设置标志寄存器值,SAHFSAHF由新装入的值确定标志的值。由新装入的值确定标志的值。5.5.专用传送指令专用传送指令专用传送指令主要限于使用累加器专用传送指令主要限于使用累加器EAXEAX,AXAX或或ALAL和计算机接口传送信息。和计算机接口传送信息。1 1)ININ输入指令输入指令长格式:长格式:ININAL,PORT(AL,PORT(字节字节)
24、ININAX,PORT(AX,PORT(字字)ININEAX,PORT(EAX,PORT(双字双字)操作:操作:(ALAL)(PORT)(PORT)(字节字节)(AXAX)(PORT+1,PORT)(PORT+1,PORT)(字字)(EAXEAX)(PORT+3,PORT+2,PORT+1,PORT)(PORT+3,PORT+2,PORT+1,PORT)(双字双字)1 1)ININ输入指令输入指令短格式:短格式:ININAL,DX(AL,DX(字节字节)ININAX,DX(AX,DX(字字)ININEAX,DX(EAX,DX(双字双字)操作:操作:(ALAL)(DX)(DX)(字节字节)(AX
25、AX)(DX)+1,(DX)(DX)+1,(DX)(字字)(EAXEAX)(DX)+3,(DX)+2,(DX)+1,(DX)(DX)+3,(DX)+2,(DX)+1,(DX)(双字双字)2 2)OUTOUT输入指令输入指令长格式:长格式:OUTOUTPORT,AL(PORT,AL(字节字节)OUTOUTPORT,AX(PORT,AX(字字)OUTOUTPORT,EAX(PORT,EAX(双字双字)操作:操作:(PORT)(PORT)(ALAL)(字节字节)(PORT+1,PORT)(PORT+1,PORT)(AXAX)(字字)(PORT+3,PORT+2,PORT+1,PORT)(PORT+3
展开阅读全文