【教学课件】第五章80868088指令系统.ppt
《【教学课件】第五章80868088指令系统.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第五章80868088指令系统.ppt(109页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章8086/8088 指令系统C第一节指令格式和寻址方式第一节指令格式和寻址方式C第二节数据传送指令第二节数据传送指令C第三节算术运算指令第三节算术运算指令C第四节逻辑运算指令第四节逻辑运算指令C第五节控制转移指令第五节控制转移指令C第六节字符串指令第六节字符串指令第一节指令格式和寻址方式i一、指令格式一、指令格式i二、指令助记符二、指令助记符i三、寻址方式三、寻址方式i(一)指令地址的寻址方式(一)指令地址的寻址方式i(二)操作数地址寻地方式(二)操作数地址寻地方式一、指令格式指令是计算机用以控制各部件协调动作的命令指令是计算机用以控制各部件协调动作的命令指指令令字字是是一一种种二二进进
2、制制代代码码,它它包包括括两两个个基基本本部部分分:操操作作码码和和地地址址码码。操操作作码码提提供供的的是是操操作作控控制制信信息息,指指明明计计算算机机应应执执行行什什么么性性质质的的操操作作,如如进进行行+、-、等等;地地址址码码提提供供参加运算操作数据的存放地址(即操作数地址)。参加运算操作数据的存放地址(即操作数地址)。只只提提供供一一个个操操作作数数地地址址的的指指令令,称称为为单单操操作作数数指指令令;提提供供二二个个操操作作数数地地址址的的指指令令,称称为为双双操操作作数数指指令令;不不提提供供操操作作数地址的指令,称为无操作数指令。数地址的指令,称为无操作数指令。无操作数指令
3、只有操作码部分,它的格式为无操作数指令只有操作码部分,它的格式为 其中其中为操作码。为操作码。这这种种指指令令表表示示只只进进行行某某种种操操作作,无无需需操操作作数数,如如控控制制机机器的运行状态,暂停(器的运行状态,暂停(HALTHALT)等,就属于无操作数指令。等,就属于无操作数指令。单操作数指令格式为单操作数指令格式为 其中其中为操作码;为操作码;D D为目标操作数地址,简称目标地址。为目标操作数地址,简称目标地址。这这种种指指令令表表示示对对目目标标地地址址D D中中的的内内容容,按按操操作作码码规规定定进行操作,结果送目标地址。进行操作,结果送目标地址。双操作数指令格式为双操作数指
4、令格式为 其其中中,为为操操作作码码,D D为为目目标标地地址址,S S为为源源地地址址(即即作作数数地址)。地址)。这这种种指指令令表表示示对对源源地地址址和和目目标标地地址址中中的的内内容容,按按操操作作码码规定的操作进行操作,结果送目标地址,即规定的操作进行操作,结果送目标地址,即DDSDDS。在在微微型型机机中中,一一般般采采用用可可变变字字长长指指令令。也也就就是是说说,不不同同的的指指令令用用不不同同长长度度来来表表示示,但但都都是是字字节节的的整整倍倍数数。如如一一字字节节、二二字字节节、三三字字节节和和四四字字节节指指令令等等。它它们们在在存存储储器器中中分分别别占占有有14个
5、存储单元,其格式如下:个存储单元,其格式如下:单字节指令:单字节指令:操作码操作码 7 6 5 4 3 2 1 0 双字节指令:双字节指令:第一字节:第一字节:操作码操作码 第二字节:第二字节:操作数或地址操作数或地址 三字节指令:三字节指令:第一字节:第一字节:操作码操作码 第二字节:第二字节:操作数或地址低位操作数或地址低位 第三字节:第三字节:操作数或地址高位操作数或地址高位 或:或:第一字节:第一字节:操作码操作码 第二字节:第二字节:操作码操作码 第三字节:第三字节:操作数或地址操作数或地址 四字节指令:四字节指令:第一字节:第一字节:操作码操作码 第二字节:第二字节:操作码操作码
6、第三字节:第三字节:操作数或地址地位操作数或地址地位 第四字节:第四字节:操作数或地址高位操作数或地址高位 二、指令助记符机机器器指指令令是是二二进进制制代代码码,二二进进制制代代码码不不易易辨辨识识和和记记忆忆。因因此此,在在介介绍绍机机器器指指令令时时,除除非非必必要要情情况况下下用用二二进进制制代代码码,一一般般情情况况下下使使用用指指令令助助记记符符。指指令令助助记记符符由由操操作作码码和和操操作作数数的的助助记记符符号号表表示示。通通常常操操作作码码用用英英文文单单词词或或英英文文缩缩写写单单词词来来表表示示如如:ADD,JP(Jump)等等。操操作作数数用用表表示示寄寄存存器器存存
7、储储器器地地址址的的符符号号来来表表示示。我我们们首首先先来来学学习习操操作作数数部部分分的的符符号号,然然后后结结合合指指令令来来学学习习表表示示操操作作码码的的符符号号。用用助助记记符符来来表表示示的的指令又称为指令的汇编格式。指令又称为指令的汇编格式。指令中要出现的符号介绍如下:指令中要出现的符号介绍如下:AX,BX,CX,DX 16位位通通用用寄寄存存器器AH,BH,CH,DH,AL,BL,CL,DL 8位通用寄存器位通用寄存器CS,DS,ES,SS 段寄存器段寄存器SP,BP,IP 堆栈指针,基址指针,指令指针堆栈指针,基址指针,指令指针DI,SI 目目的的,源源变变址址寄寄存存器器
8、Flags 标志寄存标志寄存r r=AX、BX、CX、DX r=AL、BL、CL、DLa(acc)a=AX ALSeg seg=CS、DS、ES、SSSrc(source)、)、dst(dest)源操作数、目的操作数源操作数、目的操作数Count 计数器计数器Oprd 操作数操作数Im 立即数立即数 n 8位位 nn 16位位nnnn 32位位EA 有效地址有效地址三、寻址方式数数据据和和程程序序在在存存储储器器中中的的位位置置,称称为为地地址址。存存放放指指令令的的地地址址,称称为为指指令令地地址址;存存放放数数据据的的地地址址,称称为为操操作作数数地地址址,简简称称操操作地址。作地址。寻寻
9、找找指指令令地地址址和和操操作作数数地地址址的的方方式式,统统称称为为寻寻址址方方式式。形形成成指指令令地地址址和和操操作作数数地地址址的的过过程程,称称为为寻址过程。寻址过程。(一)指令地址的寻址方式(一)指令地址的寻址方式(二)操作数地址寻地方式(二)操作数地址寻地方式(一)指令地址的寻址方式在在微微机机中中,指指令令地地址址的的寻寻址址方方式式比比较较简简单单,通通常常是是在在CPU中设置程序计数器中设置程序计数器PC,PC中的内容就是指令地址。中的内容就是指令地址。在在一一般般情情况况下下,程程序序是是顺顺序序执执行行的的,程程序序在在存存储储器器中中也也是是按按顺顺序序存存放放的的。
10、这这时时,只只要要将将程程序序计计数数器器中中的的内内容容自自动动递递增,就可以形成下一条指令地址。增,就可以形成下一条指令地址。当当需需要要改改变变程程序序的的执执行行顺顺序序时时,要要使使用用转转移移指指令令,由由转转移移指指令令给给出出转转移移后后指指令令字字的的起起始始地地址址。将将此此地地址址送送到到程程序序计计数数器器,就就形形成成了了转转移移后后的的地地址址。然然后后,程程序序计计数数器器中中的的内内容容又自动递增,直到再次发生转移为止。又自动递增,直到再次发生转移为止。(二)操作数地址寻地方式微微机机在在工工作作时时,指指令令地地址址在在程程序序执执行行过过程程中中时时自自动动
11、形形成成的的,但但指指令令所所需需的的操操作作数数地地址址是是随随机机的的,要要根根据据指指令令的的规规定定求求得得,获获得得操操作作数数地地址址的的方方式式,称称为为操操作作数数寻寻址址方方式式,有有时时也把它称为寻址方式。也把它称为寻址方式。在在操操作作数数寻寻址址方方式式中中,除除了了涉涉及及BP的的寻寻址址方方式式外外,一一般般寻寻址址均均在在数数据据段段内内(段段地地址址由由DS提提供供),在在涉涉及及BP时时,则则使使用用堆堆栈栈段段(段段地地址址由由SS提提供供),在在执执行行串串操操作作时时,使使用用附附加加段段ES。在在各各种种寻寻址址方方式式中中,以以立立即即数数和和存存储
12、储器器直直接接寻寻址址方方式式,速速度度最最快快,因因为为此此时时8086/8088的的执执行行单单元元EU可可以以立立即即从从寄寄存存器器中中或或指指令令队队列列中中取取出出操操作作数数,而而无无须须再再由由总总线线执执行单元计算出有效的行单元计算出有效的20位地址,然后再去取操作数。位地址,然后再去取操作数。立即数寻址在指令中直接给出一个常数作为操作数,如:在指令中直接给出一个常数作为操作数,如:MOV AX,200表示将常数表示将常数200送到存储器送到存储器AX中,要注意的是在中,要注意的是在16位操位操作中,直接数的取值范围为作中,直接数的取值范围为32767(7FFFH)到到-32
13、768(8000H),),当为无符号数时则为当为无符号数时则为0-65535(0FFFFH),),对对8位数应为位数应为0-255(OFFH),),符号符号数为数为127(7FH)到到-128(80H)。)。2.寄存器直接寻址指令中的寄存器存放了操作数,如:指令中的寄存器存放了操作数,如:ADD CX,BX表示将表示将BX中的值直接相加,然后送到中的值直接相加,然后送到CX中去。中去。3.寄存器间接寻址在在指指令令中中,有有操操作作数数的的地地址址,将将该该地地址址同同左左移移4位位后后的的DS值值相相加加,即即可可得得到到20位位物物理理地地址址,从从该该地地址址中中取取出出操操作作数数进进
14、行行指指令令所所要要求求的的操操作作,这这种种寻寻址址方方法法称称为为直直接接寻寻址址,通通常该类指令中,操作数的地址用标号表示,例如:常该类指令中,操作数的地址用标号表示,例如:ADD AX、TABLE表表示示将将AX中中的的值值和和TABLE表表示示的的地地址址中中的的内内容容相相加加,和和放在放在AX中。中。8086/8088按按字字存存放放内内容容时时,低低字字节节方方在在低低地地址址中中,高字节跟随其后,方在高地址中。高字节跟随其后,方在高地址中。5.变址寻址将将指指令令中中指指令令的的变变址址寄寄存存器器的的内内容容加加上上偏偏移移值值,即即成成为为操作的地址,例如:操作的地址,例
15、如:MOV DI,4MOV AX,TABLEDI表表示示偏偏移移值值TABLE加加4(DI的的内内容容)作作为为操操作作数数地地址址,取出操作数送取出操作数送AX。这这种种寻寻址址方方式式通通常常用用于于读读写写表表中中的的元元素素,如如TABLE偏偏移移值值表表示示的的首首址址,加加4表表示示将将表表中中的的第第三三个个量量(16位位)送送AX,读写数组元素也采用此法。读写数组元素也采用此法。6.基址寻址同同变变址址类类似似,不不过过这这种种寻寻址址中中使使用用基基址址寄寄存存器器BX、BP代代替替变变址址寄寄存存器器DI和和SI。它它是是将将基基址址寄寄存存器器的的内内容容加加上上偏偏移量
16、而作为操作数地址的,例如:移量而作为操作数地址的,例如:MOV AX,BX+6表表示示BX作作为为基基址址,距距其其偏偏移移6字字节节的的地地址址便便是是操操作作数数地地址址,在在这这种种寻寻址址中中BX基基址址对对应应的的段段地地址址在在当当前前数数据据段段中中,若若基址是基址是BP,则操做数在堆栈段内。则操做数在堆栈段内。IBM汇汇编编允允许许用用三三种种形形式式指指定定基基址址寻寻址址,它它们们的的效效果果是是一样的,如:一样的,如:MOV AX,BX+6 ;标准格式标准格式MOV AX,6BX ;先写偏移值先写偏移值MOV AX,BX+6 ;偏移值写在括号内偏移值写在括号内7.基址变址
17、寻址基基址址变变址址寻寻址址时时,操操作作数数地地址址是是由由一一个个基基址址寄寄存存器器的的内内容容,一一个个变变址址寄寄存存器器的的内内容容及及偏偏移移值值(是是任任选选项项,也也可可不不用用)相加和,例如:相加和,例如:MOV AX,6BPSI表表示示距距栈栈顶顶6个个字字节节处处作作为为基基址址,然然后后以以SI内内容容为为相相对对基基址址的的偏偏移移作作为为操操作作地地址址,这这种种寻寻址址方方式式在在访访问问堆堆栈栈数数组组时时很很有有用用,如如基基址址为为栈栈顶顶,则则变变址址寄寄存存器器中中的的值值表表示示堆堆栈栈中中的的相应元素。相应元素。这这种种寻寻址址方方式式也也多多用用
18、于于对对二二维维数数组组的的访访问问,如如用用BX作作为为数数组组的的首首地地址址,变变址址寄寄存存器器及及偏偏移移值值作作为为数数组组行行和和列列的的值值,依次寻址,就可找到某个二维数组元素。依次寻址,就可找到某个二维数组元素。第二节数据传送指令第二节数据传送指令8086/8088有有92条指令,按其功能可分为条指令,按其功能可分为6个功能组:个功能组:1.数据才传送数据才传送2.算术运算算术运算 3.逻辑运算逻辑运算 4.串操作串操作 5.控制传送控制传送 6.处理器控制处理器控制 数据传送指令又可分为以下七种:数据传送指令又可分为以下七种:(1)通用数据传送指令通用数据传送指令MOV(2
19、)堆栈操作指令堆栈操作指令 (3)交换指令交换指令(4)标志寄存器传送指令标志寄存器传送指令(5)输入输出指令输入输出指令(6)地址目的传送指令地址目的传送指令(7)查表转换指令查表转换指令 这类指令用来在寄存器和存储单元或输入这类指令用来在寄存器和存储单元或输入/输出端口传输出端口传送数据或地址,表送数据或地址,表5.2.1列出这列出这7种指令种指令:汇编格式汇编格式 操作操作MOV dest,source 传送一个字节或字传送一个字节或字PUSH source 压一个字进栈压一个字进栈POP dest 弹一个字进栈弹一个字进栈PUSHF 压标志寄存器进栈压标志寄存器进栈POPF 弹标志寄存
20、器出栈弹标志寄存器出栈XCHG op1,op2 交换两个字节或字交换两个字节或字LAHF 将标志寄存器内容装入将标志寄存器内容装入AH中(装右字节)中(装右字节)SAHF 将将AH寄存器内容存到标志寄存器(右字节)寄存器内容存到标志寄存器(右字节)IN acc,port 从端口输入字节或字到累加器从端口输入字节或字到累加器OUT port,acc 从累加器输出一个字节或字到端口从累加器输出一个字节或字到端口LEA dest,source 装入有效地址,即将存储器操作数偏装入有效地址,即将存储器操作数偏 移地址送目的寄存器移地址送目的寄存器LDS dest,source 将段地址装入将段地址装入
21、DS中,偏移地址装入中,偏移地址装入 目的寄存器目的寄存器LES dest,source 将段地址装入将段地址装入ES中,偏移地址装入目中,偏移地址装入目 的寄存器的寄存器 XLAT 查表转换查表转换、MOV指令MOV指指令令是是最最基基本本的的通通用用传传送送指指令令,它它把把一一个个字字节节或或一一个字从源传送到目的。这条指令可实现下述操作:个字从源传送到目的。这条指令可实现下述操作:MOV nn,a ;(nn)aMOV a,nn ;a(nn)MOV seg,src ;segsrcMOV dst,seg ;dstsegMOV r,src ;rsrcMOV dst,r ;dstrMOV ds
22、t,im ;dstimMOV指指令令可可以以在在寄寄存存器器与与存存储储单单元元之之间间,寄寄存存器器和和寄寄存存器器之之间间传传送送字字节节或或字字,也也可可以以将将一一个个立立即即数数送送寄寄存存器器或或存存储储单元,例如:单元,例如:MOV AX,TABLE ;TABLE存储地址传送到存储地址传送到AXMOV TABLE,DX ;从从DX传送到存储地址传送到存储地址MOV ES;BX,AX ;指指定定段段寄寄存存器器到到ES,而而不不用用DSMOV DS,AX ;寄存器间寄存器间16位数传送位数传送MOV DL,AL ;8位寄存器间传送位寄存器间传送MOV CL,30 ;常数送寄存器常数
23、送寄存器MOV TABLE,05H ;常数送存储单元常数送存储单元2、堆栈操作指令目目前前,微微计计算算机机一一般般都都是是把把内内存存的的一一个个区区域域作作为为堆堆栈栈。这这个个堆堆栈栈按按照照后后进进先先出出的的原原则则组组织织一一段段内内存存区区域域,由由堆堆栈栈指指针针指指出出它它在在存存储储器器中中的的位位置置。8086/8088用用段段寄寄存存器器SS和和堆堆栈栈指指针针SP指指示示堆堆栈栈在在内内存存的的位位置置,这这个个堆堆栈栈长长度度为为64KB,因因此此SP为为16位位指指针针的的单单元元。8086/8088规规定定SP始始终终指指向向堆堆栈栈的的顶顶部部,即即始始终终指
24、指向向最最后后压压入入堆堆栈栈的的信信息息所所在在的的单单元元。8086/8088的的堆堆栈栈是是下下推推式式,即即随随着着压压入入堆堆栈栈的的内内容容的的增增加,加,SP的值减小。的值减小。SP的初值可由的初值可由MOV SP,im指令来设定。指令来设定。堆栈操作指令包括入栈指令和出栈指令。堆栈操作指令包括入栈指令和出栈指令。(1)入栈指令)入栈指令 PUSH oprd 入栈指令完成将入栈指令完成将16位的数据送入堆栈的操作,具体入栈位的数据送入堆栈的操作,具体入栈指令如下:指令如下:PUSH r ;(SP)r,SPSP-2PUSH seg ;(SP)seg,SPSP-2PUSH src ;
25、(SP)src,SPSP-2(2)出栈指令出栈指令 POP oprd出栈指令完成将出栈指令完成将16位的数据从堆栈弹出的操作,具体出位的数据从堆栈弹出的操作,具体出栈指令如下:栈指令如下:POP r ;r(SP),SPSP+2POP seg ;seg(SP),SPSP+2POP dst ;dst(DP),SPSP+2入入栈栈时时,把把一一个个字字从从上上述述操操作作数数传传送送到到已已由由SP指指向向的的堆堆栈顶部,同时修改栈顶部,同时修改SP的值,使的值,使SP指向新的栈项单元。指向新的栈项单元。出出栈栈时时,把把堆堆栈栈顶顶部部的的一一个个字字,传传送送到到指指定定的的目目标标操操作作数,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第五 80868088 指令系统
限制150内