《《指令系统特点》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《指令系统特点》PPT课件.ppt(84页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1Shanghai Jiao Tong University8086 指令系统特点指令系统特点 可变长可变长指令:指令格式比较复杂。指令:指令格式比较复杂。寻址方式寻址方式寻址方式寻址方式多样灵活,处理数据能力比较强多样灵活,处理数据能力比较强 (字节字节/字、有符号字、有符号/无无符号二进制数据、压缩型符号二进制数据、压缩型/非压缩型十进制数据非压缩型十进制数据)。有重复指令、乘除运算指令。扩充了条件转移、移位有重复指令、乘除运算指令。扩充了条件转移、移位/循环指令。循环指令。增设了增设了增设了增设了加强软件中断功能和支持多处理器系统的相关指令。加强软件中断功能和支持多处理器系统的相关指令。
2、2Shanghai Jiao Tong University8086 指令格式指令格式 指令由两部分构成:指令由两部分构成:指令由两部分构成:指令由两部分构成:操作码操作码操作码操作码(OP-Code)(OP-Code)字段:字段:字段:字段:计算机所要执行的操作类型,由一组计算机所要执行的操作类型,由一组二进制代码表示。在汇编语言中用二进制代码表示。在汇编语言中用助记符助记符代表。代表。操作数操作数操作数操作数(Oprand)(Oprand)字段:字段:字段:字段:指令执行的操作所需的操作数,可是操作指令执行的操作所需的操作数,可是操作数本身,或操作数地址,或操作数地址计算方法。数本身,或操
3、作数地址,或操作数地址计算方法。操作码操作码操作数或操作数地址操作数或操作数地址3Shanghai Jiao Tong University无操作数:无操作数:无操作数:无操作数:控制类指令控制类指令单操作数:单操作数:单操作数:单操作数:只给出一个操作数地址,该操作数可在寄存器或只给出一个操作数地址,该操作数可在寄存器或存储器中,或指令中直接给出立即数。存储器中,或指令中直接给出立即数。双操作数:双操作数:双操作数:双操作数:源操作数源操作数(source)(source),目的操作数,目的操作数(destination)(destination)一个操作数在寄存器中,另一个在寄存器或存储器
4、中,一个操作数在寄存器中,另一个在寄存器或存储器中,或指令中直接给出立即数。或指令中直接给出立即数。不允许两个都在存储器中不允许两个都在存储器中。8086 指令格式指令格式 4Shanghai Jiao Tong University可变长指令,指令长度为可变长指令,指令长度为1 16 6个个字节。字节。其中其中B1B1和和B2B2为为基本字节基本字节,B3B6B3B6根据不同指令作相应的安排。根据不同指令作相应的安排。7 2107 65 4 3 2 1 0OPD W MOD REG R/MLOW DISP或 DATAHIGH DISP或 DATALOW DATAHIGH DATAB1B2B3
5、B4B5B6操作码从/到寄存器字/字节寻址方式寄存器寄存器/存储器8086 指令格式指令格式 5Shanghai Jiao Tong University寻址方式寻址方式 1.1.固定寻址固定寻址固定寻址固定寻址2.2.立即数寻址立即数寻址立即数寻址立即数寻址3.3.寄存器寻址寄存器寻址寄存器寻址寄存器寻址4.4.存储器寻址存储器寻址存储器寻址存储器寻址基址寻址基址寻址基址寻址基址寻址变址寻址变址寻址变址寻址变址寻址变址加变址寻址变址加变址寻址变址加变址寻址变址加变址寻址5.5.其它寻址方式其它寻址方式其它寻址方式其它寻址方式直接寻址直接寻址直接寻址直接寻址间接寻址间接寻址间接寻址间接寻址串操
6、作指令寻址串操作指令寻址串操作指令寻址串操作指令寻址I/OI/O端口寻址端口寻址端口寻址端口寻址转移类指令寻址转移类指令寻址转移类指令寻址转移类指令寻址6Shanghai Jiao Tong University1.1.固定寻址固定寻址固定寻址固定寻址 有些单字节指令,规定有些单字节指令,规定CPUCPU对某个对某个固定的寄存器固定的寄存器进行。进行。如:如:如:如:加法的加法的ASCIIASCII调整指令调整指令AAAAAA,规定被调整的数总位于,规定被调整的数总位于ALAL中。中。该指令用来调整该指令用来调整ALAL中的结果,指令编码为:中的结果,指令编码为:0 0 1 1 0 1 1 1
7、0 0 1 1 0 1 1 1OPOP37H 37H 寻址方式寻址方式 7Shanghai Jiao Tong University2.2.立即数寻址立即数寻址立即数寻址立即数寻址 操作数就在指令中操作数就在指令中,当执行指令时,当执行指令时,CPUCPU直接从指令队列中直接从指令队列中取得立即数,取得立即数,而而不必执行总线周期。不必执行总线周期。l l立即数可以是立即数可以是8 8位,或位,或1616位;位;l l只能是只能是整数类型整数类型的源操作数;的源操作数;l l主要用来给寄存器赋初值;主要用来给寄存器赋初值;l l指令执行速度快。指令执行速度快。如:如:如:如:加法指令加法指令
8、MOV AX,1680H MOV AX,1680H表示将表示将1680H1680H送送AXAX,AHAH中为中为16H16H,ALAL中为中为80H80H;即高地址对应高字节,低地址对应低字节。即高地址对应高字节,低地址对应低字节。寻址方式寻址方式 8Shanghai Jiao Tong University3.3.寄存器寻址寄存器寻址寄存器寻址寄存器寻址操作数在操作数在CPUCPU的寄存器中,的寄存器中,指令中给出指令中给出寄存器名寄存器名。源操作数和目的操作数源操作数和目的操作数均可均可采用寄存器寻址方式。采用寄存器寻址方式。l l寻址的指令长度短;寻址的指令长度短;l l操作数就在操作数
9、就在CPUCPU内部进行,内部进行,不需要不需要使用总线周期;使用总线周期;l l指令执行速度快。指令执行速度快。如:如:如:如:加加1 1指令指令 INC reg INC reg表示将寄存器内容加表示将寄存器内容加1 1,指令编码:,指令编码:OPREG0 0 1 0 0 0rrr23 7 寻址方式寻址方式 9Shanghai Jiao Tong University4.4.存储器寻址存储器寻址存储器寻址存储器寻址寻找存储器操作数,寻找存储器操作数,必须必须经总线控制经总线控制逻辑电路进行存取。逻辑电路进行存取。当当EUEU单元需要读单元需要读/写位于存储器的操作数时:写位于存储器的操作数时
10、:根据根据寻址方式寻址方式(指令中指令中B2B2字节字节),由,由EUEU计算计算计算计算出操作数地址的偏移量,出操作数地址的偏移量,即有效地址即有效地址EAEA;将将EAEA送至送至送至送至BIUBIU单元,同时请求单元,同时请求BIUBIU执行一个总线周期;执行一个总线周期;BIUBIU将某个段寄存器的内容左移将某个段寄存器的内容左移4 4位,加上位,加上EUEU送来的送来的EAEA,形成,形成2020位位的实际地址,即的实际地址,即物理地址物理地址物理地址物理地址PAPA ;执行总线周期执行总线周期执行总线周期执行总线周期,读,读/写指令所需的操作数。写指令所需的操作数。EAEA基址值基
11、址值基址值基址值 变址值变址值变址值变址值 位移量位移量位移量位移量D DBXBXBPBPSISIDIDI0 08 81616寻址方式寻址方式 10Shanghai Jiao Tong University4.4.存储器寻址存储器寻址存储器寻址存储器寻址:直接寻址直接寻址直接寻址直接寻址l l最简单、直观。最简单、直观。l l指令中直接以指令中直接以位移量位移量形式,给出操作数的有效地址形式,给出操作数的有效地址EAEA,即即EAEADISPDISPl l执行速度快,主要用于存取位于存储器中的简单变量。执行速度快,主要用于存取位于存储器中的简单变量。如:如:如:如:MOV AX,MOV AX,
12、1680H 1680H表示将表示将1680H1680H和和1681H1681H两单元的取入两单元的取入AXAX中。中。寻址方式寻址方式 11Shanghai Jiao Tong University4.4.存储器寻址:存储器寻址:存储器寻址:存储器寻址:间接寻址间接寻址间接寻址间接寻址l l指指寄存器寻址方式寄存器寻址方式,操作数,操作数一定一定在存储器中;在存储器中;l l存储单元的存储单元的EAEA由由寄存器寄存器指出:基址寄存器指出:基址寄存器BXBX,基址指针寄存器,基址指针寄存器BPBP,变址寄存器,变址寄存器SISI和和DIDI;l l书写时,寄存器带书写时,寄存器带方括号方括号方
13、括号方括号;l l根据所采用的寄存器不同,分为根据所采用的寄存器不同,分为三种三种 :基址寻址:基址寻址:BXBX或或BPBP位移量位移量变址寻址:变址寻址:SISI或或DIDI位移量位移量基址加变址:基址加变址:BXBX或或BPBPSISI或或DIDI位移量位移量寻址方式寻址方式 12Shanghai Jiao Tong University4.4.存储器寻址存储器寻址存储器寻址存储器寻址实例实例实例实例例:例:例:例:设设DS=1200HDS=1200H,BX=05A6HBX=05A6H,SS=5000HSS=5000H,BP=40A0HBP=40A0H,SI=2000HSI=2000H,
14、DI=3000HDI=3000H,位移量,位移量DISP=1618HDISP=1618H。试判断试判断下列指令的寻址方式,并求出在各种寻址方式下的下列指令的寻址方式,并求出在各种寻址方式下的EAEA和和PAPA,并说明指令执行的结果。,并说明指令执行的结果。MOV AXMOV AX,0618H 0618H 直接寻址直接寻址直接寻址直接寻址EA=DISP=0618HEA=DISP=0618H执行结果:执行结果:执行结果:执行结果:将数据段将数据段12618H12618H和和12619H12619H两单元的内容取出送两单元的内容取出送AXAX。PA=DSPA=DS左移左移4 4位位+EA+EA =
15、12000H+0618H=12618H =12000H+0618H=12618H寻址方式寻址方式 13Shanghai Jiao Tong University5.5.其它寻址方式其它寻址方式其它寻址方式其它寻址方式uu 串操作指令寻址方式串操作指令寻址方式串操作指令寻址方式串操作指令寻址方式源源串操作数第串操作数第1 1个字节个字节/字有效地址存放在字有效地址存放在源源变址寄存器变址寄存器SISI中。中。目标目标串操作数第串操作数第1 1个字节个字节/字有效地址存放在字有效地址存放在目标目标变址寄存器变址寄存器DIDI中。中。重复重复串操作时,串操作时,自动修改自动修改SISI和和DIDI的
16、内容,指向后面的字节的内容,指向后面的字节/字。字。指令中指令中,不必给出,不必给出SISI或或DIDI的编码,故串操作指令是的编码,故串操作指令是隐含寻址方式隐含寻址方式。寻址方式寻址方式 14Shanghai Jiao Tong Universityuu I/OI/O端口寻址方式端口寻址方式端口寻址方式端口寻址方式直接端口寻址:直接端口寻址:直接端口寻址:直接端口寻址:以以8 8位位立即数方式在指令中直接给立即数方式在指令中直接给出。出。端口号范围端口号范围 0 0255255 例如:例如:IN ALIN AL,n n间接端口寻址:间接端口寻址:间接端口寻址:间接端口寻址:通过通过DXDX
17、间接寻址,间接寻址,1616位端口地址放在位端口地址放在DXDX中。中。端口号范围端口号范围 0 06553565535 例如:例如:OUT DXOUT DX,ALAL寻址方式寻址方式 15Shanghai Jiao Tong Universityuu 转移类指令的寻址方式转移类指令的寻址方式转移类指令的寻址方式转移类指令的寻址方式80868086系统中,存储器采用分段结构,转移类指令有系统中,存储器采用分段结构,转移类指令有段内段内转移和转移和段段间间转移。转移。条件转移指令:条件转移指令:条件转移指令:条件转移指令:只允许实现段内转移,且只允许实现段内转移,且段内短转移段内短转移,即转移地
18、址范围为,即转移地址范围为-128-128+127+127字节,由指令直接给出字节,由指令直接给出8 8位位地址偏移量。地址偏移量。无条件转移指令和调用指令:无条件转移指令和调用指令:无条件转移指令和调用指令:无条件转移指令和调用指令:段内短转移,段内直接转移,段内间接转移,段间直接转移,段段内短转移,段内直接转移,段内间接转移,段间直接转移,段间间接转移间间接转移寻址方式寻址方式 16Shanghai Jiao Tong University指令的分类指令的分类 80868086指令系统中,包含指令系统中,包含133133条基本指令条基本指令,与寻址方式结合,与寻址方式结合,再加上不同的数据
19、形式,可构成再加上不同的数据形式,可构成上千种指令上千种指令。数据传送类数据传送类 算术运算类算术运算类 逻辑运算与移位类逻辑运算与移位类 串操作类串操作类 处理器控制类处理器控制类17Shanghai Jiao Tong University可完成可完成寄存器与寄存器寄存器与寄存器之间、之间、寄存器与存储器寄存器与存储器之间,之间,寄存器与寄存器与I/OI/O端口端口之间的字节或字传送。之间的字节或字传送。特点:特点:特点:特点:除除除除SAHFSAHF和和和和POPFPOPF外,外,外,外,不影响标志寄存器内容。不影响标志寄存器内容。uu通用数据传送(通用数据传送(5 5条)条)uu目标地
20、址传送(目标地址传送(3 3条)条)uu标志位传送(标志位传送(4 4条)条)uuI/OI/O数据传送(数据传送(2 2条)条)共共1414条,分为条,分为4 4小类:小类:数据传送类数据传送类18Shanghai Jiao Tong University指令类型指令类型指令类型指令类型指令功能指令功能指令功能指令功能指令书写格式指令书写格式指令书写格式指令书写格式通用数据通用数据传送传送字节或字传送字节或字传送字压入堆栈字压入堆栈字弹出堆栈字弹出堆栈字节或字交换字节或字交换字节翻译字节翻译MOV d,sMOV d,sPUSH sPUSH sPOP dPOP dXCHG d,sXCHG d,s
21、XLATXLAT目标地址目标地址传送传送装入有效地址装入有效地址装入装入DSDS寄存器寄存器装入装入ESES寄存器寄存器LEA d,sLEA d,sLDS d,sLDS d,sLES d,sLES d,s标志位标志位传送传送将将FRFR低字节装入低字节装入AHAH寄存器寄存器将将AHAH内容装入内容装入FRFR低字节低字节将将FRFR内容压入堆栈内容压入堆栈从堆栈弹出从堆栈弹出FRFR内容内容LAHFLAHFSAHFSAHFPUSHFPUSHFPOPFPOPFI/OI/O数据数据传送传送输入字节或字输入字节或字输出字节或字输出字节或字IN IN 累加器累加器,端口端口OUT OUT 端口端口,
22、累加器累加器数据传送类数据传送类19Shanghai Jiao Tong University通用数据传送指令通用数据传送指令通用数据传送指令通用数据传送指令(5 5 5 5条)条)条)条)字节或字传送:字节或字传送:MOV MOV 目的,源目的,源字压入堆栈:字压入堆栈:PUSH PUSH 源源字弹出堆栈:字弹出堆栈:POP POP 目的目的字节或字交换:字节或字交换:XCHG XCHG 目的,源目的,源字节翻译:字节翻译:XLATXLAT通用数据传送通用数据传送20Shanghai Jiao Tong UniversityMOV d,s MOV d,s ;将源操作数;将源操作数s s指定的
23、内容送到目的指定的内容送到目的d d源操作数:源操作数:源操作数:源操作数:8/168/16位寄存器、存储器中的某个字节位寄存器、存储器中的某个字节/字,字,或者或者8/168/16位立即数;位立即数;目标操作数:目标操作数:目标操作数:目标操作数:8/168/16位寄存器、存储器中的某个字节位寄存器、存储器中的某个字节/字,字,不能为立即数;不能为立即数;通用数据传送通用数据传送21Shanghai Jiao Tong UniversityMOV MOV 指令需指令需指令需指令需注意问题:注意问题:注意问题:注意问题:MOVMOV指令可传送指令可传送8 8位数据,也可传送位数据,也可传送16
24、16位数据。位数据。MOV MOV 指令中的两操作数指令中的两操作数s s和和d d,必用必用1 1个寄存器,个寄存器,不允许不允许同为存储单元。同为存储单元。不能用不能用CSCS和和IPIP做目的操作数。做目的操作数。不允许不允许段寄存器之间直接数据传送。段寄存器之间直接数据传送。不允许不允许立即数做目的操作数。立即数做目的操作数。不能不能向段寄存器送立即数。向段寄存器送立即数。通用数据传送通用数据传送22Shanghai Jiao Tong UniversityPUSH s PUSH s;将源操作数;将源操作数(16(16位位)压入堆栈压入堆栈POP d POP d ;将堆栈中当前栈顶两相
25、邻单元数据字弹出到;将堆栈中当前栈顶两相邻单元数据字弹出到d d特点:特点:特点:特点:s s和和d d可以是可以是1616位位寄存器或存储器两相邻单元;寄存器或存储器两相邻单元;堆栈按堆栈按字字操作;操作;每执行一条入栈指令,堆栈地址指针每执行一条入栈指令,堆栈地址指针SPSP减减2 2,入栈的数据位于,入栈的数据位于栈顶栈顶;高位字节先入栈,放在较高地址单元,低位字节后入栈,放在较低地高位字节先入栈,放在较高地址单元,低位字节后入栈,放在较低地址单元;址单元;“先进后出先进后出原则原则”执行执行弹出弹出指令时,过程相反,栈顶指针的值加指令时,过程相反,栈顶指针的值加2 2;CSCS段寄存器
26、值可以入栈,但不能反过来弹出一个字到段寄存器值可以入栈,但不能反过来弹出一个字到CSCS。通用数据传送通用数据传送23Shanghai Jiao Tong UniversityOPOPREGREG01010 01101010 0117 70 010001000CSCS00300030IPIP.5353.404023232003E2003E200002000010030100301000010000存储器存储器CSCS段首地址段首地址20002000SSSS00400040SPSP+1+1指令代码指令代码SSSS段首地址段首地址PUSH BXPUSH BX其中:其中:其中:其中:CS=1000H
27、,IP=0030H,SS=2000H,SP=0040H,BX=2340HCS=1000H,IP=0030H,SS=2000H,SP=0040H,BX=2340H2340H2340Hx x x x1616161623402340BXBX-2-2x x x x161616162003F2003F2004020040新栈顶新栈顶栈底(原栈顶)栈底(原栈顶)通用数据传送通用数据传送24Shanghai Jiao Tong UniversityPOP CXPOP CX 其中:其中:其中:其中:CS=1000H,IP=0020H,SS=1600H,SP=004CHCS=1000H,IP=0020H,SS=
28、1600H,SP=004CHOPOPREGREG01011 00101011 0017 70 010001000CSCS00200020IPIP.5353.121234341604C1604C160001600010020100201000010000存储器存储器CSCS段首地址段首地址16001600SSSS004C004CSPSP+1+1指令代码指令代码SSSS段首地址段首地址1234H1234Hx x x x1616161634123412CXCX2 2x x x x161616161604D1604D1604E1604E原栈顶原栈顶新栈顶新栈顶通用数据传送通用数据传送25Shangha
29、i Jiao Tong University目标地址传送指令目标地址传送指令目标地址传送指令目标地址传送指令(3 3 3 3条)条)条)条)装入有效地址:装入有效地址:LEA LEA 目的,源目的,源装入装入DSDS寄存器:寄存器:LDS LDS 目的,源目的,源装入装入ESES寄存器:寄存器:LES LES 目的,源目的,源目标地址传送目标地址传送26Shanghai Jiao Tong University 用于指定源操作数用于指定源操作数(需是需是MM操作数操作数)的的1616位偏移地址位偏移地址位偏移地址位偏移地址EAEA,传,传送到一个指定的送到一个指定的1616位通用寄存器中。位通
30、用寄存器中。通常用来建立串操作指令所需的通常用来建立串操作指令所需的寄存器指针寄存器指针。目标地址传送目标地址传送LEA d,s LEA d,s ;取有效地址指令;取有效地址指令 27Shanghai Jiao Tong University注意和注意和注意和注意和LEALEA和和和和MOVMOV指令区别指令区别指令区别指令区别。例如:例如:例如:例如:LEA AX,0618H LEA AX,0618H ;将内存单元的偏移量;将内存单元的偏移量0618H0618H送送AXAX,;指令执行后,;指令执行后,AXAX中的内容为中的内容为0618H0618HLEA SP,3768H LEA SP,3
31、768H ;使堆栈指针;使堆栈指针SPSP为为3768H3768HLEA BX,BPLEA BX,BPDI DI ;将内存单元的偏移量;将内存单元的偏移量BP+DIBP+DI送送BXBX,;指令执行后,;指令执行后,BXBX中内容为中内容为BP+DIBP+DI的值的值目标地址传送目标地址传送28Shanghai Jiao Tong University标志位传送指令标志位传送指令标志位传送指令标志位传送指令(4 4 4 4条)条)条)条)将将FRFR低字节装入低字节装入AHAH寄存器:寄存器:LAHFLAHF将将AHAH内容装入内容装入FRFR低字节:低字节:SAHFSAHF将将FRFR内容压
32、入堆栈:内容压入堆栈:PUSHFPUSHF从堆栈弹出从堆栈弹出FRFR内容:内容:POPFPOPF标志位传送标志位传送了解内容了解内容了解内容了解内容29Shanghai Jiao Tong University特点:特点:特点:特点:I/OI/O指令只能用累加器作为执行指令只能用累加器作为执行I/OI/O数据传送的机构;数据传送的机构;直接直接寻址寻址I/OI/O指令:寻址范围指令:寻址范围0 0255255;间接间接寻址寻址I/OI/O指令:寻址范围指令:寻址范围0 06553565535;I/OI/O设备地址两种形式:固定端口和可变端口。设备地址两种形式:固定端口和可变端口。I/OI/O
33、数据数据数据数据传送指令传送指令传送指令传送指令(2 2 2 2条)条)条)条)输入字节或字:输入字节或字:IN IN 累加器,端口累加器,端口输出字节或字:输出字节或字:OUT OUT 端口,累加器端口,累加器I/O数据传送数据传送30Shanghai Jiao Tong University端口号可由端口号可由8 8位立即数直接给出;位立即数直接给出;也可由也可由DXDX寄存器间接给出寄存器间接给出1616位端口号。位端口号。IN AL,PORT IN AL,PORT ;AL AL (端口端口PORT)PORT)IN AX,PORT IN AX,PORT ;AX AX (端口端口PORT)
34、PORT)IN IN 累加器,端口号累加器,端口号累加器,端口号累加器,端口号 ;指定端口中内容输入到累加器;指定端口中内容输入到累加器AL/AXAL/AXI/O数据传送数据传送31Shanghai Jiao Tong University端口号可由端口号可由8 8位立即数直接给出;位立即数直接给出;也可用也可用DXDX寄存器间接给出寄存器间接给出1616位端口号。位端口号。OUT PORT,AL OUT PORT,AL ;端口;端口PORT PORT AL ALOUT PORT,AX OUT PORT,AX ;端口;端口PORT PORT AX AXOUT OUT 端口号,累加器端口号,累加
35、器端口号,累加器端口号,累加器 ;累加器;累加器AL/AXAL/AX中内容输出到指定端口中内容输出到指定端口I/O数据传送数据传送32Shanghai Jiao Tong University例如:例如:例如:例如:OUT DX,ALOUT DX,ALCS=4000HCS=4000H,IP=0020HIP=0020H,DX=6A10HDX=6A10H,ALAL66H66H。执行结果:执行结果:执行结果:执行结果:将累加器将累加器ALAL中的数据字节中的数据字节66H66H,输出到,输出到DXDX指定的端口指定的端口6A10H6A10H中。中。I/O数据传送数据传送33Shanghai Jiao
36、 Tong University算术运算类算术运算类 无符号无符号/有符号、有符号、8/168/16位二进制数运算:位二进制数运算:加减乘除加减乘除 无符号压缩型无符号压缩型/非压缩型十进制运算:非压缩型十进制运算:十进制调整十进制调整 根据运算结果影响状态标志,有时要利用某些标志才能得到根据运算结果影响状态标志,有时要利用某些标志才能得到正确的结果;正确的结果;使用时请留心有关状态标志使用时请留心有关状态标志。uu加法(加法(3 3条)条)uu减法(减法(5 5条)条)uu乘法(乘法(2 2条)条)uu除法(除法(4 4条)条)uu十进制调整(十进制调整(6 6条)条)共共2020条,分为条
37、,分为5 5小类:小类:34Shanghai Jiao Tong University 加法加法 指令名称指令名称指令书写格式指令书写格式(助记符助记符)状态标志位状态标志位加法加法(字字/字节字节)带进位加法带进位加法(字字/字字节节)加加1(1(字字/字节字节)ADD ADD d,sd,sADC ADC d,sd,sINC INC d d O S Z A P CO S Z A P C 表示运算结果表示运算结果影响影响标志位标志位 表示运算结果表示运算结果不影响不影响标志位标志位35Shanghai Jiao Tong University ADD d,s ADD d,s ;dddds s
38、功能:功能:功能:功能:源操作数和目的操作数相加,结果送到目的操作数。源操作数和目的操作数相加,结果送到目的操作数。源操作数和目的操作数相加,结果送到目的操作数。源操作数和目的操作数相加,结果送到目的操作数。源操作数:源操作数:源操作数:源操作数:8/168/16位通用寄存器,存储器,立即数位通用寄存器,存储器,立即数 目的操作数:目的操作数:目的操作数:目的操作数:8/168/16位通用寄存器,存储器位通用寄存器,存储器 提示:提示:提示:提示:目的操作数不能为立即数;目的操作数不能为立即数;目的操作数不能为立即数;目的操作数不能为立即数;源操作数和目的操作数不能同时为存储器。源操作数和目的
39、操作数不能同时为存储器。源操作数和目的操作数不能同时为存储器。源操作数和目的操作数不能同时为存储器。加法加法 36Shanghai Jiao Tong UniversityCFCF将重新根据结果置成新的状态。将重新根据结果置成新的状态。将重新根据结果置成新的状态。将重新根据结果置成新的状态。ADCADC指令一般用于指令一般用于指令一般用于指令一般用于1616位以上的多字节数字相加。位以上的多字节数字相加。位以上的多字节数字相加。位以上的多字节数字相加。例如:例如:例如:例如:ADC AX,BX ADC AX,BX ;AX=AX+BX+CAX=AX+BX+C ADC BX,BP+2 ADC BX
40、,BP+2 ;由;由BX+2BX+2寻址的堆栈段存储单元的字寻址的堆栈段存储单元的字 ;内容,加上;内容,加上BXBX和进位位,结果存入和进位位,结果存入BXBX。ADC d,s ADC d,s ;dddds sCFCF功能:功能:功能:功能:源操作数和目的操作数相加外,再加上进位标志源操作数和目的操作数相加外,再加上进位标志源操作数和目的操作数相加外,再加上进位标志源操作数和目的操作数相加外,再加上进位标志CFCF,结果送到目的操作数。结果送到目的操作数。结果送到目的操作数。结果送到目的操作数。加法加法 37Shanghai Jiao Tong UniversityINC dINC d ;d
41、d+1dd+1功能:功能:功能:功能:将将目的操作数当作无符号数,加目的操作数当作无符号数,加目的操作数当作无符号数,加目的操作数当作无符号数,加1 1后,结果送到目的操作后,结果送到目的操作后,结果送到目的操作后,结果送到目的操作数。数。数。数。目的操作数:目的操作数:目的操作数:目的操作数:8/168/16位通用寄存器,存储器;位通用寄存器,存储器;位通用寄存器,存储器;位通用寄存器,存储器;但不允许为立即数。但不允许为立即数。但不允许为立即数。但不允许为立即数。间接寻址间接寻址的存储器单元加的存储器单元加的存储器单元加的存储器单元加1 1时,数据长度需用伪指令说明时,数据长度需用伪指令说
42、明时,数据长度需用伪指令说明时,数据长度需用伪指令说明;INCINC指令指令指令指令只影响只影响OFOF、SFSF、ZFZF、AFAF、PF5PF5个标志,不影响个标志,不影响个标志,不影响个标志,不影响CFCF。循环程序中,常用该指令对地址指针和循环计数值进行修改。循环程序中,常用该指令对地址指针和循环计数值进行修改。循环程序中,常用该指令对地址指针和循环计数值进行修改。循环程序中,常用该指令对地址指针和循环计数值进行修改。加法加法 38Shanghai Jiao Tong University指令名称指令名称指令名称指令名称指令书写格式指令书写格式指令书写格式指令书写格式(助记符助记符助记
43、符助记符)状态标志位状态标志位状态标志位状态标志位减法减法(字字/字节字节)带进位减法带进位减法(字字/字节字节)减减1(1(字字/字节字节)取负取负比较比较SUB SUB d,sd,sSBB SBB d,sd,sDEC DEC d dNEC NEC d dCMP CMP d,sd,s 1 1 O S Z A P CO S Z A P C 表示运算结果表示运算结果影响影响标志位标志位 表示运算结果表示运算结果不影响不影响标志位标志位 减法减法 39Shanghai Jiao Tong University SUB d,s SUB d,s ;dddd-s-s 功能:功能:功能:功能:目的操作数减
44、去源操作数,结果送到目的操作数。目的操作数减去源操作数,结果送到目的操作数。目的操作数减去源操作数,结果送到目的操作数。目的操作数减去源操作数,结果送到目的操作数。源操作数:源操作数:源操作数:源操作数:8/168/16位通用寄存器,存储器,立即数位通用寄存器,存储器,立即数 目的操作数:目的操作数:目的操作数:目的操作数:8/168/16位通用寄存器,存储器位通用寄存器,存储器 提示:提示:提示:提示:目的操作数不能为立即数;目的操作数不能为立即数;目的操作数不能为立即数;目的操作数不能为立即数;源操作数和目的操作数不能同时为存储器。源操作数和目的操作数不能同时为存储器。源操作数和目的操作数
45、不能同时为存储器。源操作数和目的操作数不能同时为存储器。不允许进行段寄存器减法。不允许进行段寄存器减法。减法减法 40Shanghai Jiao Tong UniversitySBB d,sSBB d,s ;dddd s-CF s-CF功能:功能:功能:功能:目的操作数减去源操作数外,再减去进位标志位目的操作数减去源操作数外,再减去进位标志位目的操作数减去源操作数外,再减去进位标志位目的操作数减去源操作数外,再减去进位标志位 CFCF,结果送到目的操作数。,结果送到目的操作数。,结果送到目的操作数。,结果送到目的操作数。CFCF将重新根据结果置成新的状态。将重新根据结果置成新的状态。将重新根据
46、结果置成新的状态。将重新根据结果置成新的状态。SBBSBB指令一般用于指令一般用于指令一般用于指令一般用于1616位以上位以上位以上位以上的多字节数字相减。的多字节数字相减。的多字节数字相减。的多字节数字相减。例如:例如:例如:例如:SBB AX,BX SBB AX,BX ;AX=AX-BX-CFAX=AX-BX-CF SBB WORD PTRDI,50A0H SBB WORD PTRDI,50A0H;由;由DIDI寻址的数据段存储寻址的数据段存储 ;单元的内容,减去;单元的内容,减去50A0H50A0H ;及;及CFCF值。值。减法减法 41Shanghai Jiao Tong Univer
47、sityDEC dDEC d ;dddd-1-1功能:功能:功能:功能:将将目的操作数减目的操作数减目的操作数减目的操作数减1 1后,结果送到目的操作数。后,结果送到目的操作数。后,结果送到目的操作数。后,结果送到目的操作数。目的操作数:目的操作数:目的操作数:目的操作数:8/168/16位通用寄存器,存储器;位通用寄存器,存储器;位通用寄存器,存储器;位通用寄存器,存储器;但不允许为立即数。但不允许为立即数。但不允许为立即数。但不允许为立即数。间接寻址间接寻址的存储器单元减的存储器单元减的存储器单元减的存储器单元减1 1时,数据长度需用时,数据长度需用时,数据长度需用时,数据长度需用TYPE
48、 PTRTYPE PTR类型伪指令来标识数据长度。类型伪指令来标识数据长度。类型伪指令来标识数据长度。类型伪指令来标识数据长度。DECDEC指令指令指令指令只影响只影响OFOF、SFSF、ZFZF、AFAF、PF5PF5个标志,不影响个标志,不影响个标志,不影响个标志,不影响CFCF。循环程序中,常用该指令对地址指针和循环计数值进行修改。循环程序中,常用该指令对地址指针和循环计数值进行修改。循环程序中,常用该指令对地址指针和循环计数值进行修改。循环程序中,常用该指令对地址指针和循环计数值进行修改。减法减法 42Shanghai Jiao Tong UniversityCMP d,s CMP d
49、,s ;d-s d-s 只置标志位只置标志位 功能:功能:功能:功能:目的操作数减去源操作数,目的操作数减去源操作数,目的操作数减去源操作数,目的操作数减去源操作数,不送回不送回不送回不送回结果。结果。结果。结果。只根据运算结果只根据运算结果只根据运算结果只根据运算结果置标志位置标志位置标志位置标志位。源操作数:源操作数:源操作数:源操作数:8/168/16位通用寄存器,存储器,立即数位通用寄存器,存储器,立即数位通用寄存器,存储器,立即数位通用寄存器,存储器,立即数 目的操作数:目的操作数:目的操作数:目的操作数:8/168/16位通用寄存器,存储器位通用寄存器,存储器位通用寄存器,存储器位
50、通用寄存器,存储器 提示:提示:提示:提示:目的操作数不能为立即数;目的操作数不能为立即数;目的操作数不能为立即数;目的操作数不能为立即数;源操作数和目的操作数不能同时为存储器;源操作数和目的操作数不能同时为存储器;源操作数和目的操作数不能同时为存储器;源操作数和目的操作数不能同时为存储器;不允许进行段寄存器比较。不允许进行段寄存器比较。不允许进行段寄存器比较。不允许进行段寄存器比较。减法减法 43Shanghai Jiao Tong University例例例例 用比较指令判断两个数大小用比较指令判断两个数大小用比较指令判断两个数大小用比较指令判断两个数大小。无符号数:根据借位标志无符号数: