




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第3章章 微型计算机指令系统微型计算机指令系统3.1 80X86/Pentium的寻址方式的寻址方式 立刻寻址、存放器寻址、直接寻址、立刻寻址、存放器寻址、直接寻址、存放器间接寻址、变址寻址、基址寻存放器间接寻址、变址寻址、基址寻址、基址变址寻址址、基址变址寻址3.2 8086/8088指令系统指令系统数据传送指令、算术运算指令、逻辑数据传送指令、算术运算指令、逻辑运算和移位指令、串操作指令、控制运算和移位指令、串操作指令、控制转移指令、处置器控制指令转移指令、处置器控制指令*3.3 80X86/Pentium指令系统指令系统第第3章章 微型计算机指令系统微型计算机指令系统3.1 80X86
2、/Pentium的寻址方式的寻址方式立刻寻址立刻寻址存放器寻址存放器寻址直接寻址直接寻址存放器间接寻址存放器间接寻址基址寻址基址寻址变址寻址变址寻址基址加变址寻址基址加变址寻址*比例变址寻址比例变址寻址*基址加比例变址寻址基址加比例变址寻址*带偏移量的基址加比例变址寻址带偏移量的基址加比例变址寻址第第3章章 微型计算机指令系统微型计算机指令系统寻址方式寻址方式寻址方式:指寻址方式:指CPUCPU指令中规定的寻觅操作数所在指令中规定的寻觅操作数所在的地址的方式。的地址的方式。操作数操作数: MOV AL , 05H: MOV AL , 05H 操作码操作码 目的目的操作数操作数 , 源操作数源操
3、作数立刻数:操作数包含在指令中立刻数:操作数包含在指令中存放器寻址:操作数包含在存放器寻址:操作数包含在CPUCPU的某个内部存放的某个内部存放器中器中存储器寻址:操作数包含在内存的数据区存储器寻址:操作数包含在内存的数据区操作数援用时的字节顺序:操作数援用时的字节顺序:假设存放的信息是字节,那么按顺序存放假设存放的信息是字节,那么按顺序存放假设存放的信息是字,那么将字的低位字节存放假设存放的信息是字,那么将字的低位字节存放在低地址,高位字节存放在高地址在低地址,高位字节存放在高地址第第3章章 微型计算机指令系统微型计算机指令系统寻址方式之一:立刻寻址寻址方式之一:立刻寻址操作数作为立刻数直接
4、存在指令中,可为字节或字。操作数作为立刻数直接存在指令中,可为字节或字。MOV AX, 3100H低地址低地址高地址高地址CS段段操作码操作码00H31H34H12HAX00H31H第第3章章 微型计算机指令系统微型计算机指令系统寻址方式之二:存放器寻址寻址方式之二:存放器寻址操作数包含在指令规定的操作数包含在指令规定的8位、位、16位存放器中。位存放器中。存放器寻址由于无需从存储器中取操作数,故执行存放器寻址由于无需从存储器中取操作数,故执行速度快。速度快。 MOV SS ,AX34H12HSS34H12HAX第第3章章 微型计算机指令系统微型计算机指令系统寻址方式之三:直接寻址寻址方式之三
5、:直接寻址在指令的操作码后面直接给出操作数的在指令的操作码后面直接给出操作数的16位偏移地址。位偏移地址。这个偏移地址也称为有效地址这个偏移地址也称为有效地址EA。操作数默许在。操作数默许在DS段段中。中。MOV AX, 3000H低地址低地址高地址高地址CS段段操作码操作码00H30H34H12H34H12HAXDS段段5000053000DS5000 0300053000+第第3章章 微型计算机指令系统微型计算机指令系统寻址方式之三:直接寻址寻址方式之三:直接寻址假设操作数在假设操作数在DS以外的其他段以外的其他段CS,SS,ES中,指中,指令中必需指明段存放器段超越令中必需指明段存放器段
6、超越MOV AX, ES:3000H低地址低地址高地址高地址CS段段操作码操作码00H30H34H12H34H12HAXES段段2000023000ES2000 0300023000+第第3章章 微型计算机指令系统微型计算机指令系统寻址方式之四:存放器间接寻址寻址方式之四:存放器间接寻址低地址低地址高地址高地址CS段段操作码操作码34H12H34H12HAXSS段段7000073000SS7000 0300073000+MOV AX, BPBP操作数地址的偏移量有效地址操作数地址的偏移量有效地址EA存放在存放器中。以存放在存放器中。以SI,DI, BX间接寻址,默许操作数在间接寻址,默许操作数
7、在DS段中;以段中;以BP间接寻址,间接寻址,默许操作数在默许操作数在SS段中。段中。可以加段超越前缀的方法进展其他段进展寻址可以加段超越前缀的方法进展其他段进展寻址第第3章章 微型计算机指令系统微型计算机指令系统寻址方式之五:基址寻址寻址方式之五:基址寻址EA=基址存放器基址存放器+偏移量偏移量基址存放器:基址存放器:BX(默许默许DS)和和BP(默许默许SS)。低地址低地址高地址高地址CS段段操作码操作码00H15H34H12H34H12HAXDS段段7000073500BX150073500+ MOV DX, BX+1500H或或 MOV DX, 1500HBXDS7000 02000第
8、第3章章 微型计算机指令系统微型计算机指令系统寻址方式之六:变址寻址寻址方式之六:变址寻址EA=变址存放器变址存放器+偏移量偏移量变址存放器:源变址存放器变址存放器:源变址存放器SI、目的变址存放器、目的变址存放器DI(默许默许DS)。MOV AL,TABLESIMOV AL,SI+TABLEMOV AL,SI+TABLE第第3章章 微型计算机指令系统微型计算机指令系统寻址方式之七:基址变址寻址寻址方式之七:基址变址寻址基址加变址:基址加变址:EA=基址存放器基址存放器+变址存放器变址存放器带偏移量的基址加变址:带偏移量的基址加变址:EA=基址存放器基址存放器+变址存放器变址存放器+偏移量偏移
9、量低地址低地址高地址高地址CS段段操作码操作码50H02H34H12H34H12HDXDS段段3000033250BX025033250+MOV DX, BX+SI0250HDS3000 02000SI1000第第3章章 微型计算机指令系统微型计算机指令系统*寻址方式之八:寻址方式之八:32位机的寻址方式位机的寻址方式比例变址寻址比例变址寻址EA=变址存放器变址存放器*比例因子比例因子+偏移量偏移量MOV EAX,TABLEESI*4基址加比例变址寻址基址加比例变址寻址EA=基地址存放器基地址存放器+变址存放器变址存放器*比例因子比例因子+偏移量偏移量MOV ECX,EDX*4EAX带偏移量的
10、基址加比例变址寻址带偏移量的基址加比例变址寻址EA=基地址存放器基地址存放器+变址存放器变址存放器*比例因子比例因子+偏移量偏移量MOV AX,EDI*8+ECX+408个个32位通用存放器均可作存放器间接寻址、基址位通用存放器均可作存放器间接寻址、基址存放器和变址存放器存放器和变址存放器(除除ESP外外),EBP、ESP缺省缺省为为SS段,其他缺省为段,其他缺省为DS段段第第3章章 微型计算机指令系统微型计算机指令系统寻址方式总结寻址方式总结F寻址方式:寻址方式:F1. 立刻寻址立刻寻址 MOV AX, 1234HF2. 存放器寻址存放器寻址MOV AX, BXF3. 直接寻址直接寻址MOV
11、 AX, 1234HF4. 存放器间接寻址存放器间接寻址MOV AX, BX F5. 基址寻址基址寻址MOV AX, BX+100HF6. 变址寻址变址寻址MOV AX, SI+100HF7. 基址加变址寻址基址加变址寻址MOV AX, BX+SI+100HF8.比例变址寻址比例变址寻址 MOV EAX,TABLEESI*4F9.基址加比例变址寻址基址加比例变址寻址 MOV ECX,EDX*4EAXF10.带偏移量的基址加比例变址寻址带偏移量的基址加比例变址寻址 FMOV AX,EDI*8+ECX+40第第3章章 微型计算机指令系统微型计算机指令系统操作数的分类操作数的分类立刻数操作数:绿立刻
12、数操作数:绿注注1:立刻数只能作为源操作数,不能作为目的操:立刻数只能作为源操作数,不能作为目的操作数。作数。注注2:不能用一条指令简单地将立刻数传送到段存:不能用一条指令简单地将立刻数传送到段存放器。放器。存放器操作数:红存放器操作数:红注注3:有些指令没有指定运用的存放器,但实践上:有些指令没有指定运用的存放器,但实践上隐含这特定的存放器操作数。隐含这特定的存放器操作数。存储器操作数:黄存储器操作数:黄注注4:不允许源操作数和目的操作数同时为存储器:不允许源操作数和目的操作数同时为存储器操作数。操作数。注注5:存储器操作数的物理地址的计算是将段基地:存储器操作数的物理地址的计算是将段基地址
13、左移四位加上有效地址址左移四位加上有效地址EA偏移地址得到的。偏移地址得到的。但是段存放器和有效地址的配对是有规定的,如但是段存放器和有效地址的配对是有规定的,如表表3-2(P99)注注6:执行速度:存放器操作数:执行速度:存放器操作数 立刻数操作数立刻数操作数 存储器操作数存储器操作数第第3章章 微型计算机指令系统微型计算机指令系统指令的机器码和执行时间指令的机器码和执行时间机器码:任何一条指令都是以特定的假设干个机器码:任何一条指令都是以特定的假设干个(16)字节字节的代码方式存在存储器的码段中。同样的指令如的代码方式存在存储器的码段中。同样的指令如MOV由于寻址方式和操作数的不同,机器码
14、的长度也不同。由于寻址方式和操作数的不同,机器码的长度也不同。执行时间:指令的指令时间包括取址、译码和执行的时间,执行时间:指令的指令时间包括取址、译码和执行的时间,跟该指令的机器码的长短没有直接关系。跟该指令的机器码的长短没有直接关系。 指令指令机器码机器码 字节数字节数 时钟数时钟数MOV AL,15HB0H15H 2 4MOV AX,BX8BHC3H 2 2第第3章章 微型计算机指令系统微型计算机指令系统3.2 8086/8088指令系统指令系统数据传送指令数据传送指令算术运算指令算术运算指令逻辑运算和移位指令逻辑运算和移位指令串操作指令串操作指令控制转移指令控制转移指令处置器控制指令处
15、置器控制指令第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令1MOV指令指令MOV dest,src ;(dest)(src)1源操作数可以是源操作数可以是8/16/32位的立刻数、存放器操作数、内位的立刻数、存放器操作数、内存操作数。目的操作数不允许为立刻数,其他同源操作数。存操作数。目的操作数不允许为立刻数,其他同源操作数。2源、目操作数类型必需匹配源、目操作数类型必需匹配MOV BYTE PTR BX, 12H3) 不能向段存放器写立刻数不能向段存放器写立刻数MOV AX, 2000MOV DX, AX4) 以以CS为目的的一切
16、传送指令都是非法的为目的的一切传送指令都是非法的5) 段存放器之间不能直接传送数据段存放器之间不能直接传送数据第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令例:合法指令例:合法指令MOV AL,30H ;立刻数传送到存放器;立刻数传送到存放器MOV AL, BL ;存放器之间传送字节数据;存放器之间传送字节数据MOV SI, BX+62H ;存放器和存储器之间传送;存放器和存储器之间传送数据数据例:不合法的指令例:不合法的指令MOV 6234H,AX ;立刻数不能用于目的操作数;立刻数不能用于目的操作数MOV CS,AX ;CS不能
17、用于目的操作数不能用于目的操作数MOV IP,AX ;IP不能用于目的操作数不能用于目的操作数MOV DS,4234H ;立刻数不能直接传送给段存;立刻数不能直接传送给段存放器放器MOV AL,BX ;源操作数与目的操作数的位数;源操作数与目的操作数的位数必需一致必需一致MOV BUF1,BUF2 ;不能在两个存储器单元之间;不能在两个存储器单元之间传送数据传送数据MOV DS,ES ;不能在两个段存放器之间传送;不能在两个段存放器之间传送数据数据第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令2堆栈操作指令堆栈操作指令PUSH sr
18、c ; (SP)(SP)-2 (SP)+1:(SP)(src)进栈指令,先调整堆栈指针,再把源操作数压栈进栈指令,先调整堆栈指针,再把源操作数压栈PUSH AXPOP dest ;(dest)(SP)+1:(SP) (SP)(SP)-2出栈指令,先将栈顶出栈指令,先将栈顶2/4字节送目的操作数,再调整堆栈指针字节送目的操作数,再调整堆栈指针POP AX注:堆栈指令指对字或双字进展操作,不对字节进展操作,注:堆栈指令指对字或双字进展操作,不对字节进展操作,普通成对运用。操作数为普通成对运用。操作数为16位存放器、段存放器或存储单位存放器、段存放器或存储单元元第第3章章 微型计算机指令系统微型计算
19、机指令系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令PUSH AX低地址低地址高地址高地址12H34H34H12HAX堆栈段SSSP指向栈顶SP1SP1第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令POP AX低地址低地址高地址高地址12H34H34H12HAX堆栈段SSSP指向栈顶SP+1SP+1第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令3交换指令交换指令 XCHG dest,src;(dest)(src)交换指令,源、目不能同为内存操作数交换指令
20、,源、目不能同为内存操作数,只能在存放器之间、只能在存放器之间、存放器和存储器之间交换,段存放器不能作为一个操作数存放器和存储器之间交换,段存放器不能作为一个操作数进展交换。进展交换。合法交换指令合法交换指令XCHG AL,CL ;字节交换;字节交换XCHG BX,SI ;字交换;字交换XCHG AX,BX+SI ;存放器和存储器之间交换数据;存放器和存储器之间交换数据非法的交换指令非法的交换指令XCHG AX,6234H ;存放器与立刻数之间不能交换;存放器与立刻数之间不能交换XCHG BUF1,BUF2 ;存储器单元与存储器单元之间不;存储器单元与存储器单元之间不能交换能交换XCHG AD
21、DR,4234H ;存储器单元与立刻数之间不;存储器单元与立刻数之间不能交换能交换XCHG CS,DATBX ;不能与;不能与CS或或IP存放器进展存放器进展交换交换第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令4XLAT 查表指令查表指令XLAT src_table;(AL)(BX)+(AL)查表指令,用来取表中某指定数的值查表指令,用来取表中某指定数的值执行指令前:序号执行指令前:序号 AL 表首址表首址 BX执行指令后:执行指令后:AL 表中序号对应的字节内容表中序号对应的字节内容TABLE DB 48, 49, 50, 51
22、, 52, 53, 54, 55, 56, 57 MOV BX, OFFSET TABLE MOV AL, 5 XLAT 或或XLAT TABLE执行后执行后AL=53第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之二:地址传送指令数据传送指令之二:地址传送指令LEA reg16,mem16有效地址传送指令,源操作数为内存操作数有效地址传送指令,源操作数为内存操作数内存单元的有效地址内存单元的有效地址目的存放器目的存放器 LEA SI, AREA1= MOV SI,OFFSET AREA1LDS/LES reg16,mem32地址指针传送指令地址指针传送指令,EAreg16, E
23、A+2DS/ES例:例:TABLE DD 12345678HLDS BX,TBALE5678BX, 1234HDS第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之三:标志传送指令数据传送指令之三:标志传送指令LAHF 标志存放器低字节标志存放器低字节AH,不影响标志位,不影响标志位 SAHF AH 标志存放器低字节,影响标志存放器低标志存放器低字节,影响标志存放器低8位位PUSHF:16位标志存放器内容入栈位标志存放器内容入栈POPF:16位标志存放器出栈位标志存放器出栈S ZAPCO D I TAHFLAGLAHFSAHF第第3章章 微型计算机指令系统微型计算机指令系统数据传送
24、指令之四:输入输出指令数据传送指令之四:输入输出指令完成累加器完成累加器AL/AX和和I/O端口之间的数据传送端口之间的数据传送IN acc,port;(acc)(port)当端口地址小于当端口地址小于256时,直接寻址时,直接寻址,最多可访问最多可访问256个端口个端口例:例:IN AL,60H(将将60H口地址的字节送给口地址的字节送给AL IN AX,60H(将将60H口地址的字送给口地址的字送给AX端口地址大于或等于端口地址大于或等于256时,间接寻址,端口地址必需放时,间接寻址,端口地址必需放在在DX存放器中,最多可访问存放器中,最多可访问65536个端口个端口例:例:MOV DX,
25、3DAH IN AL,DX(将将3DAH口地址的字节送给口地址的字节送给ALOUT port,acc ;(port)(acc)例:例:MOV DX,3DAH OUT DX,AX第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之一:加法运算指令算术运算指令之一:加法运算指令ADD dest,src;(dest)(dest)+(src)加法指令加法指令例例 不带进位加法指令不带进位加法指令ADD CL,20H ;(CL)(CL)+20HADD AX,SI ;(AX)(AX)+(SI)ADD DATA BX,AL ;(BX)+DATA)(BX)+DATA)+(AL)ADD DX,BX+S
26、I ;(DX)(DX)+(BX)+(SI)ADC dest,src;(dest)(dest)+(src)+(CF)带进位位加法带进位位加法例例 带进位加法指令带进位加法指令 ADC AX,SI ;(AX)(AX)+(SI)+CFADC BX,3000H ;(BX)(BX)+3000H+CFADC AX,DATSI ;(AX)(AX)+(SI+DAT)+CF 以上两条指令影响以上两条指令影响A,C,O,P,S,Z 6个标志位。留意带进位个标志位。留意带进位位加法中的进位位的值是上一条运算指令产生的结果位加法中的进位位的值是上一条运算指令产生的结果(P105)第第3章章 微型计算机指令系统微型计算
27、机指令系统算术运算指令之一:加法运算指令算术运算指令之一:加法运算指令ADC指令用于多字节加法运算指令用于多字节加法运算例例:有两个有两个4字节的无符号数相加:字节的无符号数相加: 2C56F8AC+309E47BE=?设被加数、加数分别存放在设被加数、加数分别存放在DS:0000及及DS:0004开场的开场的两个存储区内,结果放回两个存储区内,结果放回DS:0000 MOV AX,0004 ADD 0000,AX ;低字相加低字相加 MOV AX,0006 ADC 0002,AX ;高字相加,包括低字的进位高字相加,包括低字的进位第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之
28、一:加法运算指令算术运算指令之一:加法运算指令INC dest;(dest)(dest)+1加加1指令指令例例 加加1指令指令INC BX ;(BX)(BX)+1INC BYTE PTR DI+100H ;将;将DI100H所指的所指的;字节单元内容;字节单元内容加加1 影响影响A,O,P,S,Z 5个标志位,对个标志位,对CF无影响无影响操作数为存放器或内存操作数为存放器或内存第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之一:加法运算指令算术运算指令之一:加法运算指令AAA加法的加法的ASCII调整指令调整指令对在对在AL中的由两个非紧缩的中的由两个非紧缩的BCD码相码相加的
29、结果进展校正,结果仍以非紧缩加的结果进展校正,结果仍以非紧缩BCD码的方式存放,各位在码的方式存放,各位在AL,十位在,十位在AH。DAA 加法的十进制调整指令加法的十进制调整指令对在对在AL中的由两个紧缩的中的由两个紧缩的BCD码相加码相加的结果进展校正,产生一个正确的的结果进展校正,产生一个正确的BCD码码的和。的和。第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之一:加法运算指令算术运算指令之一:加法运算指令例例 两个非紧缩两个非紧缩BCD码的加法运算,设码的加法运算,设(AH)=0MOV AL,08 ;(AL) 08 (AL)=00001000ADD AL,09 ;(AL
30、) 08+09 (AL)=00010001=11HAAA ;AF=1,AH(AH)+01, ;ALAL+6& 0FHAL高高4位清位清0;AL=00000111,结果,结果AX=0107 AF=1 CF=1例例 两个紧缩两个紧缩BCD码的加法运算码的加法运算MOV AL,37 ;(AL)37MOV BL,35 ;(BL)35ADD AL,BL ;(AL)=6CH,AF=0,CF=0DAA ;由于;由于AL中的低中的低4位大于位大于9, ;所以;所以ALAL+06, ; 结果结果AL=72,AF=1,CF=0第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之二:减法运算指令算术运算指
31、令之二:减法运算指令SUB dest,src;(dest)(dest)-(src) 减法指令减法指令例例 不带借位的减法指令不带借位的减法指令SUB AX,3000H ;(AX)(AX)-3000HSUB BX,SI+100H ;(BX)(BX)-SI+100HSBB dest,src;(dest)(dest)-(src)-(CF) 带借位位减法带借位位减法例例 带借位的减法指令带借位的减法指令SBB AX,BX ;(AX)(AX)-(BX)-CFSBB WORD PTR SI,1068H ;(SI)(SI)-1068H-CF 以上两条指令影响以上两条指令影响A,C,O,P,S,Z 6个标志位
32、个标志位第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之二:减法运算指令算术运算指令之二:减法运算指令例:例:x、y、z均为均为32位数,分别存放在地址为位数,分别存放在地址为X, X+2;Y,Y+2;Z,Z+2的存储单元中,用指令序列实现的存储单元中,用指令序列实现wx+y+24-z,结,结果放在果放在W, W+2单元中。单元中。 MOV AX, X MOV DX, X+2 ADD AX, Y ADC DX, Y+2 ; x+y ADD AX, 24 ADC DX, 0 ; x+y+24 SUB AX, Z SBB DX, Z+2 ; x+y+24-z MOV W, AX MO
33、V W+2, DX ; 结果存入结果存入W, W+2单元单元第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之二:减法运算指令算术运算指令之二:减法运算指令DEC dest;(dest)(dest)-1减减1指令指令 影响影响A,O,P,S,Z 5个标志位,操作数为存放器或内存个标志位,操作数为存放器或内存例例 减减1指令指令DEC BL ;(BL)(BL)-1DEC BYTE PTRDI+2 ;DI+2DI+2-1NEG dest;(dest)0-(dest) 求补指令求补指令操作数可以是内存或存放器,影响一切标志位操作数可以是内存或存放器,影响一切标志位例例 设设AL=02H,
34、(BX)2212HNEG AL ;(AL)0-(AL),结果,结果AL=0FEHNEG BX ;(BX)0-(BX),结果,结果BX=DDEEH第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之二:减法运算指令算术运算指令之二:减法运算指令AAS 减法的减法的ASCII调整指令调整指令对在对在AL中的由两个非紧缩的中的由两个非紧缩的BCD码相减的结码相减的结果进展校正,结果仍以非紧缩果进展校正,结果仍以非紧缩BCD码的方式存放,码的方式存放,各位在各位在AL,十位在,十位在AH 。DAS 减法的十进制调整指令减法的十进制调整指令对在对在AL中的由两个紧缩的中的由两个紧缩的BCD码相
35、减的结果码相减的结果进展校正,产生一个正确的进展校正,产生一个正确的BCD码的差。码的差。第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之二:减法运算指令算术运算指令之二:减法运算指令例例 两个未组合两个未组合BCD码的减法运算码的减法运算MOV AX,0608H ;AX0608HSUB AL, 09H ;AL0FFHAAS ;AL09H,AH05H例:两个组合例:两个组合BCD码的减法运算码的减法运算MOV AL,73H ;AL73HSUB AL,27H ;AL4CHDAS ;AL46H第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之二:减法运算指令算术运算指令之
36、二:减法运算指令CMP dest,src; (dest)-(src) 比较指令。完成两个操作数相减,结果反映在标志位上,比较指令。完成两个操作数相减,结果反映在标志位上,但不送回结果。用于比较两个操作数的大小关系。但不送回结果。用于比较两个操作数的大小关系。CMP A,B1假设恣意两个数假设恣意两个数 ZF=0 AB (JNZ 不等转移不等转移 ZF=1 AB (JZ 相等转移相等转移2假设两个数都是无符号数假设两个数都是无符号数 CF=0 AB JNC) CF=1 AB (JC)3假设两个数都是带符号数正数假设两个数都是带符号数正数 SF=0 AB (JNS) SF=1 AB (JS)4假设
37、两个数是恣意带符号数假设两个数是恣意带符号数 SF OF=0 AB (JNL) SF OF=1 A(BX),那那么么RESULT1;假设假设AX (BX), 那么那么RESULT-1. CMPAX,BXJZEQUAL ;=JL LESS_THAN ; JMPSTOP EQUAL:MOVRESULT,00HJMPSTOP LESS_THAN: MOVRESULT,FFH STOP:HLT 第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之三:乘法运算指令算术运算指令之三:乘法运算指令MUL src;字节乘法字节乘法 AX(src)AL ;字乘法字乘法 DX:AX (src)AX无符号
38、数乘法指令无符号数乘法指令例例 无符号数乘法指令无符号数乘法指令MUL DL ;AXAX*DLMUL CX ;DX:AXAX*CXMUL BYTE PTR SI+8 ;AXAL*SI+8IMUL src ;字节乘法字节乘法 AX(src)AL 字乘法字乘法 DX:AX (src)AX 带符号数乘法指令带符号数乘法指令例例 两个有符号数的乘法两个有符号数的乘法MOV AL,FEH ;ALFEH,FEH看作有符号数看作有符号数-2MOV CL,11H ;CL11H,11H看作有符号数看作有符号数17IMUL CL ;AXFFDEH,执行,执行02H*11H, 将乘积结果取补码得将乘积结果取补码得F
39、FDEH=-34 第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之三:乘法运算指令算术运算指令之三:乘法运算指令AAM 乘法的乘法的ASCII码调整指令非紧缩码调整指令非紧缩BCD数数例例 两个非紧缩两个非紧缩BCD码的乘法运算。码的乘法运算。MOV AL,,06H ;AL06HMOV BL,07H ;BL07HMUL BL ;AX002AHAAM ;AX0402H第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之四:除法运算指令算术运算指令之四:除法运算指令DIV src;字节除法字节除法 (AL)(AX)/(src) (AH)(AX)(src) 字除法字除法 (A
40、X)(DX:AX)/ (src) (DX)(DX:AX)(src)无符号数除法指令无符号数除法指令例例 无符号数除法指令无符号数除法指令DIV CL ;AX中的中的16位数除以位数除以CL中的中的8位数,位数, 商送商送AL,余数送余数送AHDIV CX ;DX和和AX中的中的32位数除以位数除以CX中的中的16位数,位数, 商送商送AX,余数送,余数送DX IDIV src ;字节除法字节除法 (AL)(AX)/(src) (AH)(AX)(src) 字除法字除法 (AX)(DX:AX)/ (src) (DX)(DX:AX)(src) 带符号数除法指令带符号数除法指令 第第3章章 微型计算机
41、指令系统微型计算机指令系统算术运算指令之四:除法运算指令算术运算指令之四:除法运算指令AAD 除法的除法的ASCII码调整指令非紧缩码调整指令非紧缩BCD码码例例 两个非紧缩两个非紧缩BCD码的除法运算。码的除法运算。MOV AX, 0605H ;AX0605HMOV BL,07H ;BL07HAAD ;AX0041HDIV BL ;商值;商值AL09,余数,余数AH02H第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之五:符号扩展指令算术运算指令之五:符号扩展指令CBW ;假设假设(AL)80H,那么,那么(AH)0 否那么否那么(AH)FFH 将一个字节转换为字将一个字节转换
42、为字CWD ;假设假设(AX)JAE /JNB=JB/JNAEJBE /JNAJGE /JNL=JL/JNGEJLE /JNG05H,那么转向,那么转向ABC第第3章章 微型计算机指令系统微型计算机指令系统控制转移指令之二:循环控制指令控制转移指令之二:循环控制指令LOOP short_lable 将将CX的内容减的内容减1,假设不为,假设不为0,那么,那么 循环到短标号处循环到短标号处LOOPE/LOOPZ short_lable 相等或等于相等或等于0循环循环 将将CX的内容减的内容减1,假设结果不为,假设结果不为0,且,且ZF1,那么循,那么循环至短标号处。环至短标号处。LOOPNE/LOOPNZ short_lable 不相等或不等于不相等或不等于0循环循环 将将CX的内容减的内容减1,假设结果不为,假设结果不为0,且,且ZF0,那么循,那么循环至短标号处。环至短标号处。JCXZ OPRD 当当CX=0时转移
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开幕式致辞与未来发展规划演讲文本
- 不同类型疾病患者就医习惯分析表
- 农业观光可行性报告
- 企业培训员工的方式
- 农业科技成果
- 股东合作与投资方案说明书
- 全国光伏发电项目
- 育婴师复习测试题
- 农村金融投资者保护指南
- 中级养老护理复习测试卷含答案(二)
- 中国文化概论-绪论
- 医学课件:介入放射学(全套课件328张)
- 二年级下册课文(五)16雷雨-雷雨-学习任务单
- 食品添加剂、食品污染物的本底与转化来源
- 供应商管理控制流程图
- 泥石流勘察设计Word版(共44页)
- 普通生态学15章集合种群及其模型剖析课件
- 四年级下册健康成长教案(共26页)
- 义务教育语文课程标准(2022年版)
- 初中物理公式总结大全(最新归纳)
- GB 12268-2012 危险货物品名表(高清版)
评论
0/150
提交评论