




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第三章第三章 8086/8088的指令系统的指令系统第一节 寻址方式第二节 指令系统一、立即寻址二、寄存器寻址三、直接寻址四、寄存器间接寻址五、变址寻址六、基址加变址寻址一、数据传送指令二、算术运算指令三、逻辑运算指令四、串操作指令五、控制转移指令六、处理器控制指令3-3(1,4,8,10),3-6(单单),3-7, 3-10(1,4),),3-12,3-14(单单) 化妆品 2 计算机的指令一般由操作码和操作数组成,操作码规定了指令的功能;而操作数则规定了指令操作的对象。操作数可以以立即数的形式存放在指令中,但在大多数情况下,操作数是以地址的形式存放在指令(指示操作数在哪儿)。用于说明操作
2、数所在地址的方法称为寻址方式。31 8086的寻址方式在微机中,操作数存放在: 1、在指令中;2、在CPU的某一内部寄存器中;3、在内存的数据区中;4、I/O端口。 在8086CPU中,内存地址是由数据段地址和段内偏移量组成。而指令中规定的地址即为段内偏移量(逻辑地址)有效地址EA,有效地址EA构成的方法不同,则为不同的寻址方式。第三章第三章 8086的寻址方式和指令系统的寻址方式和指令系统3 操作数(8位或16的常数)直接包含在指令中,紧跟在操作码后面,与操作码一起放在代码段区域中。操作数im既可是8位的,也可是16位的。例:MOV AX,im MOV AL,26H二、寄存器寻址(Regis
3、ter Addreing)例:MOV DS,AXAXDS一、立即寻址方式(Immediate Addressing)操作码imLimH码段MAXAH ALimHimL操作数放在指令规定的寄存器中。4 操作数的有效地址操作数的有效地址EA是指令的一是指令的一部分,它与操作码一起放在代码段部分,它与操作码一起放在代码段区域中。区域中。 操作数的物理地址为数据操作数的物理地址为数据段寄存器段寄存器DS加上加上16位地址偏移量。位地址偏移量。例:若(例:若(DS)=3000H MOV AX,2000H指令中存储单元的地址也可用符号地指令中存储单元的地址也可用符号地址表示。址表示。例:例:AREA1 D
4、W 0867H MOV AX,AREA1注意区分:注意区分: AREA1 EQU 0867H MOV AX,AREA1502000操作码30300003200032001码段数据段AHAL3050三、直接寻址方式三、直接寻址方式(Direct Addressing)5操作数在存储单元中。操操作数在存储单元中。操作数的有效地址作数的有效地址EA在指令在指令码所指定的寄存器中。可码所指定的寄存器中。可作为间址的寄存器有作为间址的寄存器有SI、DI、BX、BP,若:若:1、操作数在数据段、操作数在数据段DS中:中:则以寄存器则以寄存器BX、SI或或DI间间接寻址。接寻址。2、操作数在堆栈段中:则、操
5、作数在堆栈段中:则以寄存器以寄存器BP间接寻址。间接寻址。例:若(例:若(DS)=2000H,(SI)=1000H MOV AX,SIA0操作码50200002100021001AX码段数据段AH AL50A0四、寄存器间接寻址方式四、寄存器间接寻址方式(Register Indirect Addressing)6 操作数在存储单元中。操作数的有效地址是以指令指操作数在存储单元中。操作数的有效地址是以指令指定的寄存器内容加上指令中给定的定的寄存器内容加上指令中给定的8位或位或16位位移量。位位移量。操作码操作码503000操作码30300003500035001AX码段数据段例:若(例:若(D
6、S)=3000H,(SI)=2000H,COUNT=3000H MOV AX,COUNT SI或或 MOV AX, COUNT SI 若指令指定的寄存器是若指令指定的寄存器是BX、SI或或DI,段寄存器使用,段寄存器使用DS; 若指令指定的寄存器是若指令指定的寄存器是BP, 则段寄存器使用则段寄存器使用SS。3050五、寄存器相对寻址方式五、寄存器相对寻址方式(Register Relative Addressing)物理地址物理地址16DSSICOUNT 30000H+2000H+3000H =35000H7 操作数在存储单元中。操作数的有效地址是一个基址寄操作数在存储单元中。操作数的有效地
7、址是一个基址寄存器(存器(BX或或BP)和一个变址寄存器()和一个变址寄存器(SI或或DI)的内容之和)的内容之和,两个寄存器均由指令指定。一般由基址寄存器决定所使用,两个寄存器均由指令指定。一般由基址寄存器决定所使用的段寄存器。的段寄存器。六、基址变址寻址方式六、基址变址寻址方式(Based Indexed Addressing) 若指令指定的寄存器是若指令指定的寄存器是BX,段寄存器使用,段寄存器使用DS; 若指令指定的寄存器是若指令指定的寄存器是BP, 则段寄存器使用则段寄存器使用SS。物理地址物理地址16DSBX+SI 或或 16DSBX+DI物理地址物理地址16SSBP+SI 或或
8、16SSBP+DI例:例:MOV AX ,BXSI若 DS=3000H,SI=2000H,BX=3000H,(35000H)=0ABCDH则:物理地址16DSBX+SI=35000H AX=0ABCDH8 操作数在存储单元中。操作数的有效地址是基址寄存器操作数在存储单元中。操作数的有效地址是基址寄存器(BX或或BP)内容加上变址寄存器()内容加上变址寄存器(SI或或DI)的内容、再加)的内容、再加上指令中指定的上指令中指定的8位或位或16位位移量。一般由基址寄存器决定位位移量。一般由基址寄存器决定所使用的段寄存器。所使用的段寄存器。例:例: MOV AX,COUNT BX SI七、相对基址变址
9、寻址方式七、相对基址变址寻址方式(Relative Based Indexed Addressing) 若指令指定的寄存器是若指令指定的寄存器是BX,段寄存器使用,段寄存器使用DS; 物理地址物理地址16DSBX+SI8位或位或16位位移量位位移量 或或 16DSBX+DI 8位或位或16位位移量位位移量若指令指定的寄存器是若指令指定的寄存器是BP, 则段寄存器使用则段寄存器使用SS 物理地址物理地址16SSBP+SI 8位或位或16位位移量位位移量 或或 16SSBP+DI 8位或位或16位位移量位位移量若 DS=3000H,SI=0300H,BX=1500H, COUNT 0200H,(3
10、1A00H)=26BFH则:物理地址16DSBX+SI COUNT = 31A00H AX=26BFH9* 立即数可以出现在方括号内,表示直接地址;立即数可以出现在方括号内,表示直接地址;1、指令中使用方括号的地址表达式必须遵循下列规则:、指令中使用方括号的地址表达式必须遵循下列规则:* 只有只有SI、BP、DI、BX可以出现在方括号内,它们可以单独出可以出现在方括号内,它们可以单独出现,也可以相加后出现,或以寄存器与立即数相加的形式出现,现,也可以相加后出现,或以寄存器与立即数相加的形式出现,但但BX和和BP或或SI和和DI不能同时出现在同一个不能同时出现在同一个 内,内,SI和和DI也不能
11、也不能同时出现;同时出现;* 方括号有相加的含义,下面几种写法都是等价的:方括号有相加的含义,下面几种写法都是等价的: 1200BXSI BX+1200SI BX+ SI +1200* 方括号内包含方括号内包含BP,则隐含使用,则隐含使用SS提供基地址;其余情提供基地址;其余情况均使用况均使用DS提供基地址。提供基地址。需说明的几个问题需说明的几个问题102、段超越:、段超越: 在在8088系统中,数据通常在数据段中,但若系统中,数据通常在数据段中,但若需要,数据也可存放在码段,堆栈段以及附加段中,这种情需要,数据也可存放在码段,堆栈段以及附加段中,这种情况就是段超越。应用时,需在指令中加以说
12、明。况就是段超越。应用时,需在指令中加以说明。存储器操作的类型约定段允许超越段逻辑地址取指令CS无IP堆栈操作SS无SP通用数据读写DSCS、ES、SSEA源数据串DSCS、ES、SSSI目的数据串ES无DI用 BP 作为基寄存器SSCS、DS、ESEA例:例:MOV AX,ES:0500HES表示数据在附加段中;表示数据在附加段中; :是修改属性运算符。:是修改属性运算符。113、其它寻址方式、其它寻址方式(1)隐含寻址:指令中不指明操作数)隐含寻址:指令中不指明操作数(2)I/O端口寻址:端口寻址:8086有直接端口寻址和间接端口寻址有直接端口寻址和间接端口寻址两种方式,端口寻址范围分别为
13、两种方式,端口寻址范围分别为00FFH和和0FFFFH。(3)转移类指令寻址)转移类指令寻址(4)一条指令有几种寻址方式)一条指令有几种寻址方式123-2 8086的指令系统 8088的指令系统可以分为六个功能组:的指令系统可以分为六个功能组:一、数据传送指令(一)通用传送指令功能:将源操作数的一个字节(功能:将源操作数的一个字节(B)或一个)或一个字(字(W)传送到目的操作数所指的单元。)传送到目的操作数所指的单元。说明:说明:* 指令中至少要有一项明确指令中至少要有一项明确指出传送的是字节还是字;指出传送的是字节还是字; * 可用不同的寻址方式;可用不同的寻址方式; * 不影响标志位;不影
14、响标志位; * 源操作数不变;源操作数不变; *存储器之间,立即数与段寄存存储器之间,立即数与段寄存器,段寄存器之间不能用一条指令器,段寄存器之间不能用一条指令完成数据传送。完成数据传送。数据传送数据传送算术运算算术运算逻辑运算逻辑运算串操作串操作控制传送控制传送处理器控制处理器控制1、 MOV OPRD1,OPRD2源操作数目的操作数立即数存储器段寄存器DS、ES、SS通 用指 针变 址寄 存器MOV指令允许传送数据的途径如下图所示132、堆栈操作指令 进栈指令 PUSH OPRD功能:将一个字的源操作数传送至由SP所指向的堆栈的顶部.堆栈是以“ 先进后出”的方式工作的一个存储区,例:PUS
15、H AX 指令执行过程:指令执行后AX=2A8CHSP 2000: 0130H2000: 012EH8CH指令执行前AX=2A8CHSP 2000: 0130H2000: 0000H2000: 0000H2AHSP操作:PUSH 操作时,先修改SP 的值,使 SP 2 SP 后,把源操作数(字)压入堆栈中 SP 指示的位置上。OPRD可以是16位的通用寄存器,段寄存器,存储器中的字。14 出栈指令 POP OPRD功能:把当前功能:把当前 SP 所指向的堆栈顶部的一个字送到指定的目的所指向的堆栈顶部的一个字送到指定的目的操作数中。(操作数中。(CS不能作为目的操作数)不能作为目的操作数)操作:
16、每执行一次出栈操作,操作:每执行一次出栈操作,SP +2 SP ,指向新的栈顶。,指向新的栈顶。例:设SS=2000H,SP = 0130H,(20130H)= 396EH,BX=4FAEH,执行指令POP BX的过程如下图所示:执行指令前BX=4FAEH2000: 0000H2000: 0000H2000: 0130H2000: 0130HSP 2000: 0132HSP 执行指令后BX=6EH39H72H72H39H6EH6EH39SP 2000: 0131H153、交换指令指令格式:XCHG OPRD1,OPRD2 功能:把一个字或一个字节的源操作数与目的操作数交换。 交换可在寄存器之间
17、、寄存器与存储器之间进行。但段寄存器不能作为操作数,也不能直接交换两个存储单元中的内容。例:设AX=31B0H,DS=3000H, BX=1800H,(31800H)= 1995H,执行指令 XCHG AX, BX 的过程为:执行指令前AX31B0H31800H31801H31800H31801H执行指令后AX95H19H31HB0H1995H16(二)累加器专用传送指令1、输入指令 IN功能:从从8位端口读入一个字节到位端口读入一个字节到AL,或从,或从16位端口读入一个字到位端口读入一个字到AX。指令格式: IN AL,n 或 IN AX,n ;n为 255 的端口地址 IN AL,DX
18、或 IN AX,DX;端口地址放在DX中。第一种格式,端口地址n(00FFH)直接包含在IN指令里,共允许寻址256个端口。当端口地址号大于FFH时,必须用第二种寻址方式,即先将端口号送入DX寄存器,再执行输入操作。例:用IN指令从输入端口读取数据(1) IN AL,0E3H E3H端口9DHAL执行指令前22H执行指令后E3H端口9DHAL9DH(2) IN AX,80H执行指令前80H端口81H端口5BH17HAX3355H执行指令后80H端口81H端口5BH17HAX17 5BH172、输出指令 OUT指令格式: OUT n ,AL 或 OUT n ,AX OUT DX,AL 或 OUT
19、 DX,AX功能:将将AL中的一个字节写到一个中的一个字节写到一个8位端口,或把位端口,或把AX中的一个中的一个字写到一个字写到一个16位端口。位端口。例:用 OUT 指令对输出端口进行操作1) OUT 84H,AX执行指令前84H85H66H77H端口AX3F46H执行指令后84H85H端口AX3F46H2) MOV DX,300H OUT DX,AL 执行指令前AL9AH端口300H 22H执行指令后AL9AH端口300H 9AH46H3FH183、换码指令 XLAT (查表指令)指令格式:XLAT 功能:(BX)(AL) AL该指令执行前,先把转换表首地址的偏移量送入BX中,而把要查找表
20、内单元的偏移量(0255)送入AL中。执行换码指令后,把该单元的内容送入AL中。例:若十进制数字09 的 LED七段显示码对照表已存放在内存中,表格的首地址为TABLE,用 XLAT 指令求数字5的七段显示码值程序如下: TABLE DB 40H, 79H, 24H, 30H, 19H DB 12H, 02H, 78H, 00H, 18H ; 建立七段显示码表格 5 表格首地址 12H MOV AL,5 ; AL MOV BX,OFFSET TABLE ; BX XLAT ; AL19(三)地址目的传送指令这是专用于传送地址码的指令,可用来传送操作数的段地址和偏移地址,共包含以下三条指令:1、
21、LEA取有效地址指令指令格式:LEA r , src功能:把源操作数的地址偏移量,传送至目的操作数。把源操作数的地址偏移量,传送至目的操作数。要求源操作数必须是一个内存操作数;目的操作数必须是一个除段寄存器以外的16位寄存器。指令 LEA BX,TABLE与指令 MOV BX,OFFSET TABLE是等价的例:SI1000H,DS5000H,(51000H)1234H执行指令 LEA BX, SI后,BX1000H执行指令 MOV BX, SI后,BX1234H202、LDS将双字指针送指令指定的寄存器和DS指令指令格式:LDS r,src功能:从源操作数指定的存储单元中的双字指针送到指令指
22、从源操作数指定的存储单元中的双字指针送到指令指定的寄存器(常指定定的寄存器(常指定SI)及)及DS寄存器中。寄存器中。例:设DS=1200H,(13450H)=3F46H,(13452H)=0A92H 执行指令 LDS SI, 1450H 后:SI = 3F46H, DS = 0A92H213、LES将双字指针送到寄存器和ES指令指令格式:LES r,src功能:从源操作数指定的存储单元中的双字指针送到指从源操作数指定的存储单元中的双字指针送到指令指定的寄存器(常指定令指定的寄存器(常指定DI)及)及ES寄存器中。寄存器中。例:设DS=0100H, BX=0020H, (01020H) =03
23、00H, (01022H)= 0500H, ES= 3000H. DI = 0300H, ES = 0500H执行指令 LES DI, BX 后22(四)标志寄存器传送指令1、LAHF 标志送到 AH指令指令格式:LAHF功能:把标志寄存器中的把标志寄存器中的 SF、ZF、AF、PF和和CF分别送到分别送到AH寄存器的位寄存器的位7、6、4、2和和 0,位,位5、3、1的内容未定义。的内容未定义。ODITSZAPC15 12 11 10 9 8 7 6 5 4 3 2 1 0 AHFLAG操作示意图2、SAHF AH送标志寄存器指令指令格式:SAHF功能:把寄存器把寄存器AH中的中的 7、6、
24、4、2、0位传送到标志寄存器位传送到标志寄存器的的SF、ZF、AF、PF和和 CF位,高位标志位,高位标志 OF、DF、IF 和和 TF不受影响。不受影响。233、PUSHF 标志入栈指令指令格式:PUSHF功能:修改堆栈指针,使修改堆栈指针,使SP 2 SP,把整个标志寄存器的把整个标志寄存器的内容压入堆栈,内容压入堆栈,指令执行后对标志位无影响。指令执行后对标志位无影响。4、POPF 标志出栈指令指令格式:POPF功能:把当前堆栈指针把当前堆栈指针 SP 所指的一个字,传送给标志寄存所指的一个字,传送给标志寄存器,并修改堆栈指针,使器,并修改堆栈指针,使 SP 2 SP 。在过程(子程序)
25、调用和中断服务程序中,可用PUSHF和POPF指令来保护和恢复标志位。另外,这两条指令也可用来改变追踪标志 TF (入栈,修改,出栈)(8088无直接改变T标志的指令)。24 8088指令系统提供了加、减、乘、除四种基本运算指令,可处理无符号或带符号的8位或16位二进制数的算术运算(带符号数是用补码表示)。还提供了各种调整操作指令,故可进行压缩的或非压缩的十进制数的算术运算。绝大部分算术运算指令都影响状态标志位。(一)加法指令1、ADD OPRD1,OPRD2功能:将源和目的操作数相加,结果送到目将源和目的操作数相加,结果送到目的操作数中,即的操作数中,即OPRD1OPRD2 OPRD12、A
26、DC OPRD1,OPRD2功能:OPRD1OPRD2CF OPRD1 这两条指令的源操作数这两条指令的源操作数OPRD2可以是寄存器、存储器或立即可以是寄存器、存储器或立即数,数, 目的操作数目的操作数OPRD1只能用寄存器和存储单元。只能用寄存器和存储单元。注意注意,源操作,源操作数和目的操作数不能同时为存储器,而且它们的类型必须一致,即数和目的操作数不能同时为存储器,而且它们的类型必须一致,即都是字节或字。都是字节或字。 它们影响的标志位为:它们影响的标志位为:CF、OF、PF、SF、ZF和和AF。二、算术运算指令25执行指令 ADD AX,CX;(AX)=5389H ,CF=1 ADC
27、 DX,BX;(DX)=1128H ,CF=0例:设,(AX)= 7365H, (BX)=1025H, (CX)=0E024H (DX)=0102H结果: (AX)=5389H , (DX)=1128H,(BX)=1025H,(CX)=0E024H 标志位 SF =0, ZF =0, CF =0, OF =0, AF =03、INC OPRD增量指令(单操作数)功能:对目的操作数加对目的操作数加1,结果送回目的操作数。即,结果送回目的操作数。即OPRD1 OPRD。目的操作数可以在通用寄存器或内存中。指令执行后影响AF、OF、PF、SF和ZF,但不影响CF。例:INC BL INC CX例:对
28、内存单元的内容加1必须说明该单元的类型 INC BYTE PTRBX INC WORD PTRBX264、AAA 未组合BCD码加法调整指令功能:在用ADD或ADC指令对两个未组合BCD码作加法后,运算结果已存在AL中,用AAA指令对AL中的数据进行调整,产生一个未组合的十进制和放在AX中。例:实现两个未组合十进制数加法运算。设AL = 08H , BL = 07H ADD AL,BL;AAA ;AL = 0FHAX = 0105H 未组合十进制数的和放在AX中5、DAA 组合BCD码加法调整指令例:实现两个组合十进制数加法运算。设例:实现两个组合十进制数加法运算。设AL =28H, BL =
29、68H执行 ADD AL,BL; AL = 90H, CF = 0, AF = 1 DAA ; AL06HAL,AL = 96H结果 AL = 96H, CF = 0, AF = 0。功能:将两个组合BCD码相加后,存放在AL中的结果,调整为正确的组合BCD数。 DAA指令要紧跟在ADD或ADC指令之后使用,以实现组合的十进制数加法运算。27例:求两个多字节无符号数之和。加数在DATA1开始的单元中,被加数在DATA2开始的单元中,字节长度为5,和存放在DATA2中。设置循环计数器0送CF,0送SI取加数送AL结束被加数+加数送DATA2修改循环次数及指针加完YN程序框图:源程序段: MOV
30、CX,5 MOV SI,0 CLCMOV AL,DATA1SILOP:ADC DATA2SI,ALINC SIDEC CXJNZ LOP HLT28(二)减法指令1、SUB OPRD1,OPRD2功能:OPRD1 OPRD2 OPRD12、SBB OPRD1,OPRD2 功能:OPRD1 OPRD2 CF OPRD1这两条指令均影响AF、CF、OF、PF、SF和ZF3、DEC OPRD 减量指令功能:OPRD 1 OPRD执行后不影响 CF,但影响 AF、OF、PF、SF和ZF4、NEG OPRD 取负指令 功能:0 OPRD OPRD 指令执行后影响AF、CF、OF、PF、SF和 ZF。 若
31、字节操作数为80H(128),字操作数为8000H(32768),执行NEG指令后操作数无变化,但OF =1。如操作数为0,执行该指令后,结果仍为0,且CF =0,否则CF = 1。29例1:设(DX)= 3A49H,CF =1 执行指令 SBB DX,1850H 执行结果 (DX)= 21F8H,CF=0 例2:已知(AL)= 13H 执行指令 NEG AL 执行结果 (AL)= 0EDH 以上5条指令实际上都做减法操作,而且都可以进行字或字节运算。对于双操作数指令,源操作数可以是寄存器、存储器或立即数;目的操作数可以是寄存器或存储器,但不能立即数,而且两个操作数不能同时为储存器。 对于单操
32、作数指令,目的操作数可以是寄存器或存储器,但不能立即数, 如果操作数是存储器,还必须指出其类型。5、比较指令CMP OPRD1,OPRD2 功能: 将目的操作数减去源操作数,但不送结果,仅将结果反映在标志位上, 接着可用条件转移指令决定程序的流向。30 比较指令主要用在希望比较两个数之间的关系,而又不破坏原操作数的场合。即两者是否相等,或两个中哪一个大。一般有下列几种情况:* 在比较指令之后,根据ZF标志即可判断两者是否相等。若两者相等,执行CMP指令后,ZF=1,否则为0。* 若是两个无符号数进行比较,则在比较指令之后,可根据CF的状态判断大小。* 若是判断两个带符号数的大小,可根据 SF和
33、OF进行判断。 在执行CMP AX,BX后 1、当无溢出(OF=0),若SF=0,则AX BX;否则AXBX。 2、当产生溢出(OF =1),若SF =0,则AXBX。 即:OF “异或” SF =0,则AXBX; OF “异或” SF =1,则AXBX转NEXT MOV AX,BX ;小于,则小数送AXNEXT: INC BX ;修改指针 INC BX MOV MAX,AX ;完,则存大数 HLT33(三)乘法指令1、无符号数乘法指令MUL src 功能:完成将AL(字节)或AX(字)中的无符号数与源操作数相乘。 双倍长度的乘积送回到AX或DX:AX。影响标志位CF、OF。 若乘积的高半部分
34、(在字节相乘时为AH,在字相乘时为DX)不为零,则标志CF=1,OF=1; 否则CF=0,OF=0。 2、带符号数乘法指令IMUL src 功能:完成两个带符号数相乘, 操作及对标志位的影响与MUL指令完全类似。字节操作数:(AL) (src) AX 字操作数:(AX) (src) DX:AX3、AAM功能:把在AX中的两个未组合十进制数相乘的结果,进行十进制数的调整,使得在AX中得到正确的未组合十进制数的乘积。指令执行后影响标志位 PF、SF、ZF,对AF、CF、OF 未定义。例:设(AL)=90H,(BL)=04H。执行指令MUL BL后, (AX)=0240H,CF =1, OF =1例
35、:设(AL)= 09H,(BH)=06H 执行 MUL BL;(AL)= 36HAAM;调整得 (AH)= 05H,(AL)= 04H 即 (AX)= 0504H 为未组合十进制数09和06相乘的结果5434功能:对两个无符号数进行除法运算。源操作数可以是字节或字。字节操作数:(AX)/( src )(字节)的商 AL(最大为FFH),余数AH字操作数:(DX:AX)/( src )(字)的商AX(最大为FFFFH),余数DX若被除数只有16位,除数也是16位,则必须将16位被除数送AX,并将DX清0,然后相除。DIV指令执行后,所有标志位均无定义。2、带符号数除法指令IDIV src 功能:
36、该指令执行的操作与DIV相同,但操作数都必须是带符号数,商和余数也都是带符号数,而且规定余数的符号和被除数的相同,且所有标志位均无定义。 对于IDIV指令,字节操作时要求被除数为16位,字操作时要求被除数为32位。如果被除数不满足这个条件,不能简单地将高位置0,而应该先用下面的符号扩展指令将被除数转换成除法指令所要求的格式,再执行除法指令。3、把字节转换为字指令CBW 若(AL) 80H , 扩展后(AH) = 00H,若(AL) 80H,扩展后(AH) =0FFH。 该指令执行后,不影响标志位。功能:把AL中字节的符号位扩展到AH的所有位。(四)除法指令 1、无符号数除法指令 DIV src
37、354、CWD 把字转换成双字指令 指令执行后,不影响标志位功能:把AX中字的符号位扩展送到DX寄存器的所有位中去。 若(AX) BABABABABAB3、JCXZ OPRD 测试转移指令测试转移指令 功能:根据CX寄存器的内容是否为0,使程序产生分支,进入不同程序段。若(CX)= 0,则转移。63例;某学生的英语成绩在AL中,若低于60分,则打印F;若高于或等于85分,则打印G;打印P;试编程实现。程序段: CMP AL,60 ;与60分比较 JB FAIL ;小于60分,转FAIL CMP AL,85 ;大于60分,与85分比较 JAE GOOD ;大于等于85分,转GOOD MOV AL
38、,P ;其它,P送 AL JMP PRINT ;转打印程序 FAIL: MOV AL,F ;F送 AL JMP PRINT ;转打印程序 GOOD: MOV AL,G ;G送 ALPRINT: ;打印AL中的字符 64(三)循环控制指令循环控制指令用来控制一个程序段的重复执行,重复次数由CX寄存器中的内容决定。转移的目标地址必须在控制指令的128 +127字节范围内。 这类指令的执行均不影响标志位。1、LOOP OPRD功能:用于控制重复执行一系列指令。指令执行前必须先将重复次数放在CX寄存器中,每执行一次LOOP指令,CX自动减1。若减1后CX 0,则转移到指令指定的目标地址处继续循环;若自
39、动减1后CX = 0,则结束循环,顺序执行LOOP指令的下一条指令。指令 LOOP AGAIN 相当于 DEC CX JNZ AGAIN652、LOOPE/LOOPZ 相等或结果为0时循环格式:LOOPE 标号 / LOOPZ 标号功能:用于控制重复执行一组指令。指令执行前,先将重复次数送到CX中,每执行一次指令,CX自动减1,若减1后CX 0且ZF = 1,则转到指令所指定的标号处重复执行;若CX = 0或ZF = 0,便退出循环,顺序执行下一条指令。例:设在例:设在BUF1开始的内存中有一开始的内存中有一个由个由50个字节组成的数组,现要对个字节组成的数组,现要对数组中的元素进行测试,直到找到数组中的元素进行测试,直到找到第一个非第一个非 0元素或查完了为止。元素或查完了为止。程序段:LEA SI,BUF1 DEC SIMOV CX,50 AG: INC SICMP SI ,0LOOPE AG663、LOOPNE / LOOPNZ 不相等或结果不为 0循环格式:LOOPNE 标号 或 LOOPNZ 标号功能:用于控制重复执行一组指令。指令执行前,先将重复次数送到CX中,每执行一次指令,CX自动减1,若减1后CX 0且ZF = 0,则转到指令所指定的标号处重复执
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第11课《答谢中书书》教学设计-2024-2025学年统编版语文八年级上册
- 5,3细胞呼吸的原理和应用-第一课时教学设计-2024-2025学年高一上学期生物人教版(2019)必修1
- 第八单元《词义的辨析和词语的使用》教学设计 2024-2025学年统编版高中语文必修上册
- 2 回延安2024-2025学年八年级下册语文同步教学设计(统编版)
- Unit 7 Happy birthday Section A Grammar 教学设计2024-2025学年人教版(2024)七年级英语上册
- 第五单元 货币与赋税制度 单元教学设计-2023-2024学年高中历史统编版(2019)选择性必修1
- 2024年12月江苏省医疗器械检验所工作人员6人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 第3章数据处理与应用3.4数据分析报告与应用 -高中教学同步《信息技术-数据与计算》教学设计(人民教育出版社)
- 2025年湖南都市职业学院单招职业技能测试题库完美版
- 篮球 行进间双手胸前传接球 教学设计-2023-2024学年高一上学期体育与健康人教版必修第一册
- 教师师德和专业发展课件
- 服务器巡检报告模版
- 2023年中国煤化工行业全景图谱
- 2023年高中生物新教材人教版(2023年)必修二全册教案
- 小学美术 四年级 人教版《造型•表现-色彩表现与创作》“色彩”单元美术作业设计《色彩的明与暗》《色彩的渐变》《色彩的情感》
- 中国心脏重症镇静镇痛专家共识专家讲座
- 川教版七年级生命生态安全下册第1课《森林草原火灾的危害》教案
- 护理人员心理健康
- 安全技术说明书粗苯
- 单招面试技巧范文
- 情报信息收集报知
评论
0/150
提交评论