《微机原理第3章微型计算机原理及应用教案.ppt》由会员分享,可在线阅读,更多相关《微机原理第3章微型计算机原理及应用教案.ppt(68页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第3章章 8088/8086MPU的指令系统的指令系统 第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 寻址方式寻址方式3.2中断及中断返回中断及中断返回3.4指令与指令系统指令与指令系统3.180868086指令系统指令系统3.3第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 计计算算机机系系统统包包括括硬硬件件和和软软件件两两大大组组成成部部分分。硬硬件件是是指指构构成成计计算算机机的的中中央央处处理理机机、主主存存储储器器、外外部部设设备备等等物物理理装装置置,软软件件则则指指由由软软件件厂厂家家为为方方便便用
2、用户户使使用用计计算算机机而而提提供供的的系系统统软软件件,和和用用户户用用于于完完成成自自己己的的特特定定事事务务和和信信息息处处理理任任务务而而设设计计的用户程序软件。的用户程序软件。计计算算机机能能直直接接识识别别和和运运行行的的软软件件程程序序通通常常由由该该计计算算机机的的指令代码组成。指令代码组成。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 寻址方式寻址方式3.2中断及中断返回中断及中断返回3.4指令与指令系统指令与指令系统3.180868086指令系统指令系统3.3第第3 3章章 8088/8086MPU8088/8086MPU的指令系统
3、的指令系统 3.1 3.1 指令与指令系统指令与指令系统 要要确确定定一一台台计计算算机机的的指指令令系系统统并并评评价价其其优优劣劣,通通常常应应从从如如下下4 4个个方方面考虑:面考虑:1 1、指令系统的完备性,常用指令齐全,编程方便。、指令系统的完备性,常用指令齐全,编程方便。2 2、指令系统的高效性,程序占内存空间少,运行速度快。、指令系统的高效性,程序占内存空间少,运行速度快。3 3、指令系统的规整性,指令和数据使用规则统一简单,易学易记。、指令系统的规整性,指令和数据使用规则统一简单,易学易记。4 4、指指令令系系统统的的兼兼容容性性,同同一一系系列列的的低低档档计计算算机机的的程
4、程序序能能在在高高档档机机上直接运行。上直接运行。要要完完全全同同时时满满足足上上述述标标准准是是困困难难的的,但但它它可可以以指指导导我我们们设设计计出出更更加加合理的指令系统。设计指令系统的核心问题是选定指令的格式和功能。合理的指令系统。设计指令系统的核心问题是选定指令的格式和功能。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 指令的组成指令的组成 通常情况下,一条指令要由两部分内容组成,其格式为:通常情况下,一条指令要由两部分内容组成,其格式为:第第一一部部分分,是是指指令令的的操操作作码码op op codecode。操操作作码码用用于于指指明明
5、本本条条指指令令的的操操作作功功能能,例例如如,是是算算术术加加运运算算、减减运运算算还还是是逻逻辑辑与与、或或运运算算功功能能,是是否否是是读读、写写内内存存或或读读、写写外外设设操操作作功功能能,是是否否是是程程序序转转移移和和子子程程序序调调用用或返回操作功能等,计算机需要为每条指令分配一个确定的操作码。或返回操作功能等,计算机需要为每条指令分配一个确定的操作码。第第二二部部分分,是是指指令令的的操操作作数数opd/opd/地地址址addraddr,用用于于给给出出被被操操作作的的信信息息(数数据据)或或操操作作数数的的地地址址,包包括括参参加加运运算算的的一一或或多多个个操操作作数数所
6、所在在的的地地址址,运算结果的保存地址,程序的转移地址、被调用的子程序的入口地址等。运算结果的保存地址,程序的转移地址、被调用的子程序的入口地址等。操作码操作码操作数操作数/地址地址第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 3.1.2 3.1.2 指令的分类指令的分类 从用到的操作数个数区分,可能有如下从用到的操作数个数区分,可能有如下4 4种情况:种情况:1.1.无操作数指令无操作数指令有有的的指指令令不不涉涉及及操操作作数数,或或使使用用约约定定的的某某个个(些些)操操作作数数,既既已已约约定定则则没没有有必必要要再再在在指指令令中中加加以以表表
7、示示,称称这这类类指指令令为为无无操操作作数数指指令令,它它仅仅有有操操作作码码部部分分,例例如如停停机机指指令令、空空操操作作指指令令、关关中中断断指指令令、堆堆栈栈结结构构的的计计算算机机系系统统中中对对堆堆栈栈中中数数据运算的指令等。据运算的指令等。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 2.2.单操作数指令单操作数指令有有些些指指令令只只用用一一个个操操作作数数,必必须须在在指指令令中中指指明明其其地地址址,如如一一个个寄寄存存器器内内容容增增1 1或或减减1 1运运算算的的指指令令;或或还还使使用用约约定定的的某某个个操操作作数数,既既已
8、已约约定定则则无无需需再再在在指指令令中中加加以以表表示示,如如完完成成从从(向向)外外设设读读(写写)数数据据的的指指令令,就就可可以以只只在在指指令令中中指指明明该该外外设设地地址址,而而把把接接受受(送送出出)数数据据的的通通用用寄寄存存器器约约定定下下来来。此此外外,在在短短字字长长的的、采采用用单单个个累累加加器器的的计计算算机机中中,已已约约定定目目的的操操作作数数(如如被被加加数数、被被减减数数等等)和和保保存存计计算算结结果果都都使使用用唯唯一一的的那那个个累累加加器器,指指令令中中只只需需表表示示另另一一个个源源操操作作数数即即可可。称称这类指令为单操作数指令。这类指令为单操
9、作数指令。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 .3.3.双操作数指令双操作数指令对对于于常常用用的的算算术术和和逻逻辑辑运运算算指指令令,往往往往要要求求使使用用两两个个操操作作数数,一一个个叫叫做做原原操操作作数数/地地址址,另另一一个个叫叫做做目目的的操操作作数数/地地址址,需需分分别别给给出出目目的的操操作作数数和和源源操操作作数数的的地地址址,其其中中目目的的操操作作数数地地址址还还用用于于保保存存本本次次的的运运算算结结果果。称称这这类类指指令令为为双双操操作作数指令。数指令。第第3 3章章 8088/8086MPU8088/8086
10、MPU的指令系统的指令系统 4.4.多操作数指令多操作数指令另另外外一一些些指指令令可可能能使使用用多多个个操操作作数数,如如3 3个个操操作作数数,其其中中两两个个操操作作数数地地址址分分别别给给出出目目的的操操作作数数和和源源操操作作数数的的地地址址,第第三三个个操操作作数数地地址址用用于于指指出出保保存存本本次次的的运运算算结结果果的的去去处处。可可以以称称这这类类指指令令为为三三操操作作数数指指令令;在在有有些些性性能能更更高高的的计计算算机机(甚甚至至PCPC机机)中中,还还有有在在指指令令中中使使用用更更多多个个操操作作数数地地址址的的指指令令,用用于于完完成成对对一一批批数数据据
11、的的处处理理过过程程,如如字字符符串串复复制制指指令令,向量、矩阵运算指令等,称这类指令为多操作数指令。向量、矩阵运算指令等,称这类指令为多操作数指令。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 3.1.3 3.1.3 指令系统指令系统 指指令令系系统统是是指指一一台台计计算算机机所所能能执执行行的的各各种种不不同同类类型型指指令令的的总总和和。即即一一台台计计算算机机所所能能执执行行的的全全部部操操作作。不不同同计计算算机机的的指指令令系系统统包包含含的的指指令令种种类类和和数数目目也也不不同同。指指令令系系统统是是表表征征一一台台计计算算机机性性能
12、能的的重重要要因因素素,它它的的格格式式与与功功能能不不仅仅直直接接影影响响到到机机器器的的硬硬件件结结构构,而而且且也也直直接接影影响响到到系系统统软软件件,影影响响到到机机器器的适用范围。的适用范围。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 寻址方式寻址方式3.2中断及中断返回中断及中断返回3.4指令与指令系统指令与指令系统3.180868086指令系统指令系统3.3第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 3.2 3.2 寻址方式寻址方式 3.2.1 3.2.1 立即寻址方式立即寻址方式 操操作作数数
13、作作为为指指令令的的一一部部分分而而直直接接写写在在指指令令中中,这这种种操操作作数称为立即数,这种寻址方式也就称为立即数寻址方式。数称为立即数,这种寻址方式也就称为立即数寻址方式。【例例3-13-1】MOV AX,1234HMOV AX,1234H注意:立即数不能能够作为目的操作数。注意:立即数不能能够作为目的操作数。不能直接给段寄存器和标志寄存器赋予立即数。不能直接给段寄存器和标志寄存器赋予立即数。这种寻址方式操作数在指令中。这种寻址方式操作数在指令中。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 3.2.2 3.2.2 寄存器寻址方式寄存器寻址方式
14、 指指令令所所要要的的操操作作数数已已经经在在某某寄寄存存器器中中,表表示示指指令令时时,或或把把目目标标操操作作数数存存入入寄寄存存器器。把把在在指指令令中中指指出出所所使使用用寄寄存存器器(即即:寄寄存存器的名字器的名字)的寻址方式称为寄存器寻址方式。的寻址方式称为寄存器寻址方式。指令中可以引用的寄存器及其符号名称如下:指令中可以引用的寄存器及其符号名称如下:8 8位寄存器位寄存器有:有:AHAH、ALAL、BHBH、BLBL、CHCH、CLCL、DHDH和和DLDL等;等;1616位位寄寄存存器器有有:AXAX、BXBX、CXCX、DXDX、SISI、DIDI、SPSP、BPBP和和段段
15、寄寄存存器等;器等;第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 1.1.源操作数是寄存器寻址方式源操作数是寄存器寻址方式如:如:ADD VARW,AXADD VARW,AX MOV VARB,BHMOV VARB,BH等。等。其其中中:VARWVARW和和VARBVARB是是双双字字,字字和和字字节节类类型型的的内内存存地地址址,叫做符号地址。叫做符号地址。2.2.目的操作数是寄存器寻址方式目的操作数是寄存器寻址方式如:如:ADD BH,78HADD BH,78H ADD AX,1234H ADD AX,1234H等。等。第第3 3章章 8088/80
16、86MPU8088/8086MPU的指令系统的指令系统 3.3.源和目的操作数都是寄存器寻址方式源和目的操作数都是寄存器寻址方式如:如:MOV AX,BXMOV AX,BX MOV DH,BLMOV DH,BL等。等。【例例3-23-2】MOV AXMOV AX,BXBX指令执行前:(指令执行前:(AXAX)=3064H =3064H (BXBX)=1234H=1234H指令执行后:(指令执行后:(AXAX)=1234H=1234H,BXBX内容未改变。内容未改变。注意:注意:源寄存器与目的寄存器的位数必须一致。源寄存器与目的寄存器的位数必须一致。这种寻址方式操作数在这种寻址方式操作数在CPU
17、CPU中。中。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 3.2.3 RAM3.2.3 RAM寻址方式寻址方式 OpdOpd也也可可以以存存放放在在存存储储器器中中,这这种种寻寻址址方方式式叫叫做做存存储储器器寻寻址址,存存储储器器寻寻址址的的关关键键是是如如何何给给出出存存储储器器的的地地址址,给给出出方方式式不不同同,寻寻址址方方式式也也有有多种。多种。1.1.直接寻址方式直接寻址方式【例例3-33-3】MOV AX,2000HMOV AX,2000H指令执行前:(指令执行前:(DSDS)=3000H=3000H,(,(32000H32000H)=
18、50H=50H,(,(32001H32001H)=30H=30H操作数的物理地址操作数的物理地址=3000H*10H+2000H=32000H=3000H*10H+2000H=32000H指令的操作是把指令的操作是把32000H32000H字存储单元的内容送字存储单元的内容送AXAX寄存器。寄存器。指令执行后:(指令执行后:(AXAX)=3050H=3050H第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 .2 2.寄存器间接寻址方式寄存器间接寻址方式操操作作数数在在存存储储器器中中,操操作作数数的的有有效效地地址址用用SISI、DIDI、BXBX和和BP
19、BP等等四四个个寄寄存存器器之之一一来来指指定定,称称这这种种寻寻址址方方式式为为寄寄存存器器间间接接寻址方式。该寻址方式物理地址的计算方法如下:寻址方式。该寻址方式物理地址的计算方法如下:若若指指令令中中指指定定的的寄寄存存器器是是BPBP,操操作作数数在在堆堆栈栈段段,段段基基值值在在SSSS中。中。物物理理地地址址=(SSSS)*10h+(BP)10h+(BP)-基基地地址址指指针针寄寄存存器器,可对指针进行修改形成下一个地址。可对指针进行修改形成下一个地址。(BX)-基址寄存器基址寄存器(SI)-源变址寄存器源变址寄存器(DI)-目的变址寄存器目的变址寄存器物理地址物理地址=(DS)*
20、10H+第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 3.3.寄存器相对寻址方式寄存器相对寻址方式该该寻寻址址方方式式是是以以指指定定的的寄寄存存器器内内容容,加加上上指指令令中中给给出出的的位位移移量量(8 8位位或或1616位位),并并以以一一个个段段寄寄存存器器为为基基准准,作作为为操操作作数数的的地地址址。指指定定的的寄寄存存器器一一般般是是一一个个基基址址寄寄存存器器或或变变址址寄寄存器。存器。寄寄存存器器相相对对寻寻址址通通过过基基址址寄寄存存器器BXBX,BPBP或或变变址址寄寄存存器器SISI,DIDI与与一一个个位位移移量量相相加加形形
21、成成有有效效地地址址(EAEA),计计算算物物理理地地址址(PAPA)的缺省段仍然是)的缺省段仍然是SISI,DIDI和和BXBX为为DSDS,BPBP为为SSSS。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 (BX)(SI)(DI)DISP8DISP16PA=(ES)*10H+DISPDISP叫叫做做位位移移量量,实实际际上上它它是是一一个个数数值值,可可以以是是8 8位位也也可以是可以是1616位。位。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 4 4.基址加变址寻址方式基址加变址寻址方式这这是是一一种种基
22、基址址加加变变址址来来定定位位操操作作数数地地址址的的方方式式,操操作作数数的的有有效效地地址址是是一一个个基基址址寄寄存存器器(BPBP或或BXBX)和和一一个个变变址址寄寄存存器器(SISI或或DIDI)的内容之和。)的内容之和。MOV CL,BX+SIMOV CL,BX+SIPA=(DS)*10H+(BX)+(SI)PA=(DS)*10H+(BX)+(SI)MOV CH,BX+DIMOV CH,BX+DIPA=(DS)*10H+(BX)+(DI)PA=(DS)*10H+(BX)+(DI)第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 4 4.基址加变
23、址寻址方式基址加变址寻址方式这这是是一一种种基基址址加加变变址址来来定定位位操操作作数数地地址址的的方方式式,操操作作数数的的有有效效地地址址是是一一个个基基址址寄寄存存器器(BPBP或或BXBX)和和一一个个变变址址寄寄存存器器(SISI或或DIDI)的内容之和。)的内容之和。MOV AX,BP+SIMOV AX,BP+SIPA=(SS)*10H+(BP)+(SI)PA=(SS)*10H+(BP)+(SI)MOV DX,BP+DIMOV DX,BP+DIPA=(SS)*10H+(BP)+(DI)PA=(SS)*10H+(BP)+(DI)第第3 3章章 8088/8086MPU8088/808
24、6MPU的指令系统的指令系统 5.5.相对基址加变址寻址方式相对基址加变址寻址方式操操作作数数的的有有效效地地址址是是基基址址加加变变址址,再再加加上上一一个个位位移移量量得得到。一般用于寻址复杂的数组中的元素。到。一般用于寻址复杂的数组中的元素。MOV DHMOV DH,BX+DI+20HBX+DI+20H源操作数源操作数PA=PA=(DSDS)*10H+10H+(BXBX)+(SISI)+20H+20H;其其中中20H20H即为即为DISPDISP第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 5.5.相对基址加变址寻址方式相对基址加变址寻址方式MOV
25、 AXMOV AX,FILEBX+SI FILEBX+SI;FILEFILE为符号表示的为符号表示的DISPDISP源操作数源操作数PA=PA=(DSDS)*10H+10H+(BXBX)+(SISI)+FILE+FILEMOV LISTBP+SIMOV LISTBP+SI,AXAX目的操作数目的操作数PA=PA=(SSSS)*10H+10H+(BPBP)+(SISI)+LIST+LIST第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 寻址方式寻址方式3.2中断及中断返回中断及中断返回3.4指令与指令系统指令与指令系统3.180868086指令系统指令系统3
26、.3第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 3.3 80863.3 8086指令系统指令系统3.3.1 3.3.1 数据传送指令数据传送指令 1.1.通用数值传送指令(通用数值传送指令(MOVMOV)格式格式:MOV DSTMOV DST,SRCSRC其其中中,DSTDST表表示示目目的的操操作作数数或或地地址址,SRCSRC表表示示源源操操作作数数或或地址。地址。功功能能:把把一一个个字字节节或或字字从从源源操操作作数数传传送送到到目目的的操操作作数数,即即DSTDST(SRC),(SRC),目的操作数原有内容消失。目的操作数原有内容消失。第第3
27、 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 注意事项:注意事项:l立即树不能为目的操作数。立即树不能为目的操作数。lCSCS不能是目的操作数,只能作为源操作数。不能是目的操作数,只能作为源操作数。l目目的的操操作作数数与与源源操操作作数数不不能能同同时时用用存存储储器器寻寻址址方方式式。(这一点适用于所有指令)(这一点适用于所有指令)l不同类型的数据不能传送。不同类型的数据不能传送。l立即数不能直接送段寄存器。立即数不能直接送段寄存器。l MOVMOV指令不影响标志位。指令不影响标志位。第第3 3章章 8088/8086MPU8088/8086MPU的指令系
28、统的指令系统 2.2.堆栈指令:堆栈指令:格式格式1 1:PUSH SRCPUSH SRC功功 能能:PUSH PUSH 是是 压压 栈栈 指指 令令。把把 栈栈 顶顶 指指 针针 减减 2 2,即即SPSP(SP)-2;(SP)-2;将源操作数送到栈顶指针所指示的栈顶单元。将源操作数送到栈顶指针所指示的栈顶单元。格式格式2 2:POP DSTPOP DST功功能能:退退栈栈指指令令,把把栈栈顶顶的的字字数数据据从从堆堆栈栈中中弹弹出出送送目目的的操作数。操作数。DSTDST(SP);(SP);(SPSP)(SP)+2(SP)+2第第3 3章章 8088/8086MPU8088/8086MPU
29、的指令系统的指令系统 注意事项注意事项:lPUSH PUSH 和和POP POP 指令只能是字操作指令只能是字操作,不能是字节操作。不能是字节操作。lPOPPOP的的DSTDST不允许是不允许是CSCS寄存器。寄存器。lPUSHPUSH和和POP POP 指令不能使用立即数方式。指令不能使用立即数方式。lPUSH PUSH 和和 POPPOP不影响标志位。不影响标志位。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 3 3.交换指令交换指令:(XCHG):(XCHG)格式格式:XCHG OPR1,OPR2XCHG OPR1,OPR2其中,其中,OPROPR
30、代表操作数寄存器。代表操作数寄存器。功能:功能:(OPR1OPR1)()(OPR2OPR2)注意:注意:l两个操作数不能同时在存储器中。也不能为立即数。两个操作数不能同时在存储器中。也不能为立即数。l不允许使用段寄存器。不允许使用段寄存器。l不影响标志位。不影响标志位。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 4.4.换码指令换码指令:XLAT:XLAT(查表指令)(查表指令)格式格式:XLAT :XLAT 或或 XLAT OPRXLAT OPR功能功能:(AL):(AL)(DS)*10H+(BX)+(AL)(DS)*10H+(BX)+(AL)根根据
31、据 ALAL寄寄存存器器提提供供的的位位移移量量,将将BXBX指指示示的的字字节节表表格格中中的的代码换存到代码换存到ALAL中中.注意事项注意事项:所建字节表格长度不能超过所建字节表格长度不能超过256B.256B.不影响标志位不影响标志位.第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 5.5.累加器专用传送指令累加器专用传送指令:IN IN 指令:指令:固定端口:固定端口:格式:格式:IN ALIN AL,Port /Port=0FFHPort /Port0FFH IN AL,DX /Port0FFH 功能功能:将将I/OI/O端口经端口经DXDX送
32、送ALAL或或AXAX寄存器。寄存器。(AL)(AL)(DX)(DX)(AX)(AX)(DX)+1:(DX)(DX)+1:(DX)第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 OUTOUT指令指令 :格式格式1:OUT Port,AL /Port=0FFH1:OUT Port,AL /Port0FFH2:OUT DX,AL /Port0FFH功能功能:将将ALAL或或AXAX中的数据经中的数据经DXDX寄存器送往寄存器送往I/OI/O端口端口.(DX)(DX)(AL)(AL)(DX)+1:(DX)(DX)+1:(DX)(AX)(AX)注意事项注意事项:不
33、影响标志位。不影响标志位。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 3.3.2 3.3.2 地址传送指令地址传送指令 1 1.有效地址装入指令(有效地址装入指令(LEALEA)格式:格式:LEA REGLEA REG,SRCSRC功能:把源操作数的有效地址装入指定的目标寄存器。功能:把源操作数的有效地址装入指定的目标寄存器。注意事项:注意事项:源源操操作作数数的的数数据据类类型型可可以以是是字字节节或或字字,而而目目的的寄寄存存器器必必须是须是1616位的通用寄存器。位的通用寄存器。LEALEA处处理理的的是是存存储储单单元元的的有有效效地地址址,M
34、OVMOV指指令令处处理理的的是是存存储单元的内容。储单元的内容。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 2.2.双指针装入指令(双指针装入指令(LDSLDS,LESLES)格式:格式:LDS REGLDS REG,SRCSRC LES REG LES REG,SRCSRC功功能能:把把双双字字长长操操作作数数低低地地址址之之中中内内中中的的偏偏移移量量装装入入指指定的目的寄存器。定的目的寄存器。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 3.3.3 3.3.3 标志寄存器传送指令标志寄存器传送指令 标志寄
35、存器传送(有四条标志传送指令)标志寄存器传送(有四条标志传送指令)1.LAHF 1.LAHF(LOAD AH WITH FLAGLOAD AH WITH FLAG)将将标标志志寄寄存存器器中中的的SFSF、ZFZF、AFAF、PFPF和和CFCF(即即低低8 8位位)传传送送至至AHAH寄寄存存器器的的指指定位,空位没有定义。定位,空位没有定义。2.SAHF 2.SAHF(STORESTORE AH WITH FLAG AH WITH FLAG)将将寄寄存存器器AHAH的的指指定定位位,送送至至标标志志寄寄存存器器的的SFSF、ZFZF、AFAF、PFPF和和CFCF位位(即即低低8 8位)。
36、根据位)。根据AHAH的内容,影响上述标志位,对的内容,影响上述标志位,对OFOF、DFDF和和IFIF无影响。无影响。3.PUSHF 3.PUSHF(PUSH FLAGPUSH FLAG)将标志寄存器压入堆栈顶部,同时修改堆栈指针,不影响标志位。将标志寄存器压入堆栈顶部,同时修改堆栈指针,不影响标志位。4.4.POPF POPF(POP FLAGPOP FLAG)堆栈顶部的一个字,传送到标志寄存器,同时修改堆栈指针,影响标志位。堆栈顶部的一个字,传送到标志寄存器,同时修改堆栈指针,影响标志位。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 3.3.4 3
37、.3.4 算术运算指令算术运算指令1.1.加法指令:加法指令:格式格式1 1:ADD DSTADD DST,SRC SRC 功功能能:不不带带进进位位的的加加法法,将将源源操操作作数数与与目目的的操操作作数数相相加加,将将和和放放入入目目的的操操作数地址中。作数地址中。DSTDST(SRCSRC)+(DSTDST)格式格式2:ADC DST,SRC2:ADC DST,SRC功功能能:带带进进位位的的加加法法,将将源源操操作作数数、目目的的操操作作数数以以及及标标志志寄寄存存器器中中的的进进位位标标志位相加,并将和放入目的操作数中。志位相加,并将和放入目的操作数中。DSTDSTSRC+DST+C
38、FSRC+DST+CF格式格式3:INC OPR3:INC OPR功能功能:将目的操作数加将目的操作数加1,1,放入目的操作数中放入目的操作数中.OPROPROPR+1OPR+1第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 注意事项注意事项:ADDADD和和ADCADC指指令令是是双双操操作作数数指指令令,它它们们的的两两个个操操作作数数不不能能同同时时为为存存储储器器寻寻址址方方式式,源源操操作作数数和和目目的的操操作作数数必必须须有有一一个个是是寄寄存存器器寻寻址址方方式式。INCINC可可以以是是 除除立立即即数数以以外外的的任任何何寻寻址址方方式
39、。式。ADDADD、ADCADC影影响响条条件件标标志志位位,INCINC影影响响除除了了CFCF之之外外的的其其他他条件码。条件码。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 条件码的设置情况:条件码的设置情况:SF=1 SF=1 加法结果为负数加法结果为负数SF=0 SF=0 加法结果为正数加法结果为正数ZF=1 ZF=1 加法结果为加法结果为0 0ZF=0 ZF=0 加法结果不为加法结果不为0 0CF=1 CF=1 最高有效位向高位有进位最高有效位向高位有进位CF=0 CF=0 最高有效位向高位无进位最高有效位向高位无进位OF=1 OF=1 两个
40、同符号数相加,结果符号与两个同符号数相加,结果符号与 其相反其相反OF=0 OF=0 不同符号数相加时,或同符号数相加,结果符号与其相同不同符号数相加时,或同符号数相加,结果符号与其相同第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 2 2.减法指令减法指令:格式格式1:SUB DST,SRC1:SUB DST,SRC功能功能:(DST):(DST)(DST)-(SRC)(DST)-(SRC)格式格式2:SBB DST,SRC2:SBB DST,SRC功能功能:(DST):(DST)(DST)-(SRC)-CF(DST)-(SRC)-CF格式格式3:DEC
41、 OPR3:DEC OPR功能功能:(OPR):(OPR)(OPR)-1(OPR)-1格式格式4:CMP OPR1,OPR24:CMP OPR1,OPR2功能功能:(OPR1)-(OPR2),:(OPR1)-(OPR2),根据相减的结果设置条件码根据相减的结果设置条件码,但不回送结果但不回送结果.格式格式5:NEG OPR5:NEG OPR功功能能:(OPR)(OPR)-(OPR)+1,-(OPR)+1,求求操操作作数数的的补补码码,即即对对OPROPR取取非非后后,末末位位再加再加1.1.第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 条件码设置条件码设
42、置:CF=1 CF=1 二二进进制制减减法法运运算算中中最最高高有有效效位位向向更更高高位位有有借借位位(被减数被减数=减数减数)OF=1 OF=1 两数符号相反两数符号相反,而结果符号与减数相同而结果符号与减数相同OF=0 OF=0 同同符符号号数数相相减减时时,或或不不同同符符号号数数相相减减时时,其其结结果果符符号与减数不同号与减数不同第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 3.3.乘法指令乘法指令:格式格式1 1:MUL SRC /MUL SRC /无符号数乘法无符号数乘法功能功能:(AX):(AX)(AL)*(SRC)(AL)*(SRC)
43、格式格式2 2:IMUL SRC /IMUL SRC /带符号数乘法带符号数乘法功能功能:(DX,AX):(DX,AX)(AX)*(SRC)(AX)*(SRC)注意注意:影响影响CF,OF.CF,OF.对于对于MUL,CF OF=0 0 MUL,CF OF=0 0 乘积高一半为乘积高一半为0 0 CF OF=1 1 CF OF=1 1 乘积高一半不为乘积高一半不为0 0对于对于IMUL,CF OF=0 0 IMUL,CF OF=0 0 乘积的高一半为低一半的符号乘积的高一半为低一半的符号 扩展扩展.CF OF=1 1 CF OF=1 1 其他情况其他情况.第第3 3章章 8088/8086MP
44、U8088/8086MPU的指令系统的指令系统 4.4.除法指令:除法指令:格式格式1 1:DIV SRC /DIV SRC /无符号数除法无符号数除法格式格式2:IDIV SRC /2:IDIV SRC /有符号数除法有符号数除法功能:功能:字节除法字节除法:(ALAL)(AX)/SRC(AX)/SRC的商的商 (AH)(AH)(AX)/SRC(AX)/SRC的余数的余数字除法字除法:(AX):(AX)(DX,AX)/SRC(DX,AX)/SRC的商的商 (DX)(DX)(DX,AX)/SRC(DX,AX)/SRC的余数的余数注注意意事事项项:不不影影响响条条件件码码。当当除除数数为为0 0
45、或或商商溢溢出出时时由由系系统统直直接接转转入入0 0型中断来处理。型中断来处理。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 3.3.5 3.3.5 逻辑运算指令逻辑运算指令 格式格式1 1:AND DSTAND DST,SRCSRC功能:逻辑与,(功能:逻辑与,(DSTDST)(DST)(SRC)(DST)(SRC)格式格式2:OR DST,SRC2:OR DST,SRC功能功能:逻辑或逻辑或,(DST),(DST)(DST)(SRC)(DST)(SRC)格式格式3:NOT OPR3:NOT OPR功能:逻辑非,()功能:逻辑非,()(OPR#)(O
46、PR#)格式格式4:XOR DST,SRC4:XOR DST,SRC功能功能:逻辑异或逻辑异或,(DST),(DST)(DST)(SRC)(DST)(SRC)格式格式5:TEST OPR1,OPR25:TEST OPR1,OPR2功能功能:根据与运算结果根据与运算结果,设置条件码设置条件码,结果不回送结果不回送.第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 注意事项:注意事项:这这是是一一组组位位操操作作指指令令,它它们们可可以以对对字字或或字字节节按按位位执执行行逻逻辑操作,因此源操作数经常为一个位串。辑操作,因此源操作数经常为一个位串。NOT NOT
47、 不影响标志位。不影响标志位。其其他他指指令令指指令令后后,CFCF、OFOF置置0 0,AFAF无无定定义义,SFSF、ZFZF、PFPF根据运算结果设置。根据运算结果设置。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 3.3.6 3.3.6 移位指令移位指令 格式格式1 1:SHL DSTSHL DST,CNTCNT功能:逻辑左移,最低位补功能:逻辑左移,最低位补0 0,最高位移到,最高位移到CFCF中。中。格式格式2 2:SHR DSTSHR DST,CNTCNT功能:逻辑右移,最高位补功能:逻辑右移,最高位补0 0,最低位移到,最低位移到CFCF
48、中。中。格式格式3 3:SAL DSTSAL DST,CNTCNT功能:算术左移,最高位移到功能:算术左移,最高位移到CFCF中,最低位补中,最低位补0 0。格式格式4 4:SAR DSTSAR DST,CNTCNT功能:算术右移,最高位用符号位的值补充,最低位移到功能:算术右移,最高位用符号位的值补充,最低位移到CFCF中。中。第第3 3章章 8088/8086MPU8088/8086MPU的指令系统的指令系统 格式格式5 5:ROL DSTROL DST,SRCSRC功能:循环左移,最高位移到最低位,其余各位依次左移。功能:循环左移,最高位移到最低位,其余各位依次左移。格式格式6 6:RO
49、R DSTROR DST,SRCSRC功能:循环右移,最低位移到最高位,其余各位依次右移。功能:循环右移,最低位移到最高位,其余各位依次右移。格式格式7 7:RCL DSTRCL DST,SRCSRC功功能能:带带进进位位的的循循环环左左移移。CFCF移移到到最最低低位位,操操作作数数最最高高位位移移到到CFCF,其余各位依次左移。其余各位依次左移。格式格式8 8:RCR DSTRCR DST,SRCSRC功功能能:带带进进位位的的循循环环右右移移。CF CF 移移到到最最高高位位,最最低低位位移移到到CFCF,其其余余各位依次右移。各位依次右移。第第3 3章章 8088/8086MPU808
50、8/8086MPU的指令系统的指令系统 3.3.7 3.3.7 控制转移指令控制转移指令1.1.无条件转移指令无条件转移指令无条件转移指令无条件转移指令JMPJMP分直接转移和间接转移两种。分直接转移和间接转移两种。一般格式:一般格式:JMP OPRD JMP OPRD ;OPRDOPRD是转移的目的地址是转移的目的地址(1 1)短程转移)短程转移 JMP SHORT OPRD JMP SHORT OPRD ;IP=IP+8IP=IP+8位位移量位位移量目的地址与目的地址与JMPJMP指令所处地址的距离应在指令所处地址的距离应在-128-128127127范围之内。范围之内。(2 2)近程转移