三章指令系统.ppt课件_第1页
三章指令系统.ppt课件_第2页
三章指令系统.ppt课件_第3页
三章指令系统.ppt课件_第4页
三章指令系统.ppt课件_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第3章章 微型计算机指令系统微型计算机指令系统3.1 80X86/Pentium的寻址方式的寻址方式 立即寻址、寄存器寻址、直接寻址、立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、变址寻址、基址寻寄存器间接寻址、变址寻址、基址寻址、基址变址寻址址、基址变址寻址3.2 8086/8088指令系统指令系统数据传送指令、算术运算指令、逻辑数据传送指令、算术运算指令、逻辑运算和移位指令、串操作指令、控制运算和移位指令、串操作指令、控制转移指令、处理器控制指令转移指令、处理器控制指令第第3章章 微型计算机指令系统微型计算机指令系统3.1 80X86/Pentium的寻址方式的寻址方式立即寻址立即寻址

2、寄存器寻址寄存器寻址直接寻址直接寻址寄存器间接寻址寄存器间接寻址基址寻址基址寻址变址寻址变址寻址基址加变址寻址基址加变址寻址*比例变址寻址比例变址寻址*基址加比例变址寻址基址加比例变址寻址*带偏移量的基址加比例变址寻址带偏移量的基址加比例变址寻址第第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中,指中,指令中必须指明段寄存器段超越)令中必须指明段寄存器段超越)MOV AX, ES:3000H低地址低地址高地址高地址CS段

6、段操作码操作码00H30H34H12H34H12HAXES段段2000023000ES2000 0300023000+第第3章章 微型计算机指令系统微型计算机指令系统寻址方式之四:寄存器间接寻址寻址方式之四:寄存器间接寻址低地址低地址高地址高地址CS段段操作码操作码34H12H34H12HAXSS段段7000073000SS7000 0300073000+MOV AX, BPBP操作数地址的偏移量有效地址操作数地址的偏移量有效地址EA存放在寄存器中。以存放在寄存器中。以SI,DI, BX间接寻址,默认操作数在间接寻址,默认操作数在DS段中;以段中;以BP间接寻址,间接寻址,默认操作数在默认操作

7、数在SS段中。段中。可以加段超越前缀的方法进行其他段进行寻址可以加段超越前缀的方法进行其他段进行寻址第第3章章 微型计算机指令系统微型计算机指令系统寻址方式之五:基址寻址寻址方式之五:基址寻址EA=基址寄存器基址寄存器+偏移量偏移量基址寄存器:基址寄存器:BX(默认默认DS)和和BP(默认默认SS)。低地址低地址高地址高地址CS段段操作码操作码00H15H34H12H34H12HAXDS段段7000073500BX150073500+ MOV DX, BX+1500H或或 MOV DX, 1500HBXDS7000 02000第第3章章 微型计算机指令系统微型计算机指令系统寻址方式之六:变址寻

8、址寻址方式之六:变址寻址EA=变址寄存器变址寄存器+偏移量偏移量变址寄存器:源变址寄存器变址寄存器:源变址寄存器SI、目的变址寄存器、目的变址寄存器DI(默认默认DS)。MOV AL,TABLESIMOV AL,SI+TABLEMOV AL,SI+TABLE第第3章章 微型计算机指令系统微型计算机指令系统寻址方式之七:基址变址寻址寻址方式之七:基址变址寻址基址加变址:基址加变址:EA=基址寄存器基址寄存器+变址寄存器变址寄存器带偏移量的基址加变址:带偏移量的基址加变址:EA=基址寄存器基址寄存器+变址寄存器变址寄存器+偏移量偏移量低地址低地址高地址高地址CS段段操作码操作码50H02H34H1

9、2H34H12HDXDS段段3000033250BX025033250+MOV DX, BX+SI0250HDS3000 02000SI1000第第3章章 微型计算机指令系统微型计算机指令系统寻址方式总结寻址方式总结F寻址方式:寻址方式:F1. 立即寻址立即寻址 MOV AX, 1234HF2. 寄存器寻址寄存器寻址MOV AX, BXF3. 直接寻址直接寻址MOV AX, 1234HF4. 寄存器间接寻址寄存器间接寻址MOV AX, BX F5. 基址寻址基址寻址MOV AX, BX+100HF6. 变址寻址变址寻址MOV AX, SI+100HF7. 基址加变址寻址基址加变址寻址MOV A

10、X, BX+SI+100H第第3章章 微型计算机指令系统微型计算机指令系统操作数的分类操作数的分类立即数操作数:立即数操作数:注注1:立即数只能作为源操作数,不能作为目标操:立即数只能作为源操作数,不能作为目标操作数。作数。注注2:不能用一条指令简单地将立即数传送到段寄:不能用一条指令简单地将立即数传送到段寄存器。存器。寄存器操作数:寄存器操作数:注注3:有些指令没有指定使用的寄存器,但实际上:有些指令没有指定使用的寄存器,但实际上隐含这特定的寄存器操作数。隐含这特定的寄存器操作数。存储器操作数:存储器操作数:注注4:不允许源操作数和目标操作数同时为存储器:不允许源操作数和目标操作数同时为存储

11、器操作数。操作数。注注5:存储器操作数的物理地址的计算是将段基地:存储器操作数的物理地址的计算是将段基地址左移四位加上有效地址址左移四位加上有效地址EA偏移地址得到的。偏移地址得到的。但是段寄存器和有效地址的配对是有规定的,如但是段寄存器和有效地址的配对是有规定的,如表表3-2(P99)注注6:执行速度:寄存器操作数:执行速度:寄存器操作数 立即数操作数立即数操作数 存储器操作数存储器操作数第第3章章 微型计算机指令系统微型计算机指令系统指令的机器码和执行时间指令的机器码和执行时间机器码:任何一条指令都是以特定的若干个机器码:任何一条指令都是以特定的若干个(16)字节的字节的代码形式存在存储器

12、的码段中。同样的指令如代码形式存在存储器的码段中。同样的指令如MOV由于寻址方式和操作数的不同,机器码的长度也不同。由于寻址方式和操作数的不同,机器码的长度也不同。执行时间:指令的指令时间包括取址、译码和执行的时间,执行时间:指令的指令时间包括取址、译码和执行的时间,跟该指令的机器码的长短没有直接关系。跟该指令的机器码的长短没有直接关系。 指令指令机器码机器码 字节数字节数 时钟数时钟数MOV AL,15HB0H15H 2 4MOV AX,BX8BHC3H 2 2第第3章章 微型计算机指令系统微型计算机指令系统3.2 8086/8088指令系统指令系统数据传送指令数据传送指令算术运算指令算术运

13、算指令逻辑运算和移位指令逻辑运算和移位指令串操作指令串操作指令控制转移指令控制转移指令处理器控制指令处理器控制指令第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令(1MOV指令指令MOV dest,src ;(dest)(src)1源操作数可以是源操作数可以是8/16位的立即数、寄存器操作数、内存操位的立即数、寄存器操作数、内存操作数。目标操作数不允许为立即数,其余同源操作数。作数。目标操作数不允许为立即数,其余同源操作数。2源、目操作数类型必须匹配源、目操作数类型必须匹配MOV BYTE PTR BX, 12H3) 不能向段寄存器写

14、立即数不能向段寄存器写立即数MOV AX, 2000MOV DS, AX4) 以以CS为目标的一切传送指令都是非法的为目标的一切传送指令都是非法的5) 段寄存器之间不能直接传送数据段寄存器之间不能直接传送数据第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令例:合法指令例:合法指令MOV AL,30H ;立即数传送到寄存器;立即数传送到寄存器MOV AL, BL ;寄存器之间传送字节数据;寄存器之间传送字节数据MOV SI, BX+62H ;寄存器和存储器之间传送;寄存器和存储器之间传送数据数据例:不合法的指令例:不合法的指令MOV 6

15、234H,AX ;立即数不能用于目的操作数;立即数不能用于目的操作数MOV CS,AX ;CS不能用于目的操作数不能用于目的操作数MOV IP,AX ;IP不能用于目的操作数不能用于目的操作数MOV DS,4234H ;立即数不能直接传送给段寄;立即数不能直接传送给段寄存器存器MOV AL,BX ;源操作数与目的操作数的位数;源操作数与目的操作数的位数必须一致必须一致MOV BUF1,BUF2 ;不能在两个存储器单元之间;不能在两个存储器单元之间传送数据传送数据MOV DS,ES ;不能在两个段寄存器之间传送;不能在两个段寄存器之间传送数据数据第第3章章 微型计算机指令系统微型计算机指令系统数

16、据传送指令之一:通用传送指令数据传送指令之一:通用传送指令(2堆栈操作指令堆栈操作指令PUSH src ; (SP)(SP)-2 (SP)+1:(SP)(src)进栈指令,先调整堆栈指针,再把源操作数压栈进栈指令,先调整堆栈指针,再把源操作数压栈PUSH AXPOP dest ;(dest)(SP)+1:(SP) (SP)(SP)-2出栈指令,先将栈顶出栈指令,先将栈顶2字节送目标操作数,再调整堆栈指针字节送目标操作数,再调整堆栈指针POP AX注:堆栈指令指对字进行操作,不对字节进行操作,一般成注:堆栈指令指对字进行操作,不对字节进行操作,一般成对使用。操作数为对使用。操作数为16位寄存器、

17、段寄存器或存储单元位寄存器、段寄存器或存储单元第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令PUSH AX低地址低地址高地址高地址12H34H34H12HAX堆栈段SSSP指向栈顶SP1SP2第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令POP AX低地址低地址高地址高地址12H34H34H12HAX堆栈段SSSP指向栈顶SP+1SP+2第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令(3交换指令交换指令 XCH

18、G dest,src;(dest)(src)交换指令,源、目不能同为内存操作数交换指令,源、目不能同为内存操作数,只能在寄存器之间、只能在寄存器之间、寄存器和存储器之间交换,段寄存器不能作为一个操作数寄存器和存储器之间交换,段寄存器不能作为一个操作数进行交换。进行交换。合法交换指令合法交换指令XCHG AL,CL ;字节交换;字节交换XCHG BX,SI ;字交换;字交换XCHG AX,BX+SI ;寄存器和存储器之间交换数据;寄存器和存储器之间交换数据非法的交换指令非法的交换指令XCHG AX,6234H ;寄存器与立即数之间不能交换;寄存器与立即数之间不能交换XCHG BUF1,BUF2

19、;存储器单元与存储器单元之间不;存储器单元与存储器单元之间不能交换能交换XCHG ADDR,4234H ;存储器单元与立即数之间不;存储器单元与立即数之间不能交换能交换XCHG CS,DATBX ;不能与;不能与CS或或IP寄存器进行寄存器进行交换交换第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令(4XLAT 查表指令查表指令XLAT src_table;(AL)(BX)+(AL)查表指令,用来取表中某指定数的值查表指令,用来取表中某指定数的值执行指令前:序号执行指令前:序号 AL 表首址表首址 BX执行指令后:执行指令后:AL 表

20、中序号对应的字节内容表中序号对应的字节内容TABLE DB 48, 49, 50, 51, 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 AREA

21、1LDS/LES reg16,mem32地址指针传送指令地址指针传送指令,EAreg16, EA+2DS/ES例:例:TABLE DD 12345678HLDS BX,TBALE5678BX, 1234HDS第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之三:标志传送指令数据传送指令之三:标志传送指令LAHF 标志寄存器低字节标志寄存器低字节AH,不影响标志位,不影响标志位 SAHF AH 标志寄存器低字节,影响标志寄存器低标志寄存器低字节,影响标志寄存器低8位位PUSHF:16位标志寄存器内容入栈位标志寄存器内容入栈POPF:16位标志寄存器出栈位标志寄存器出栈S ZAPCO

22、D I TAHFLAGLAHFSAHF第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之四:输入输出指令数据传送指令之四:输入输出指令完成累加器完成累加器AL/AX和和I/O端口之间的数据传送端口之间的数据传送IN acc,port;(acc)(port)当端口地址小于当端口地址小于256时,直接寻址时,直接寻址,最多可访问最多可访问256个端口个端口例:例:IN AL,60H(将将60H口地址的字节送给口地址的字节送给AL) IN AX,60H(将将60H口地址的字送给口地址的字送给AX)端口地址大于或等于端口地址大于或等于256时,间接寻址,端口地址必须放时,间接寻址,端口地址

23、必须放在在DX寄存器中,最多可访问寄存器中,最多可访问65536个端口个端口例:例:MOV DX,3DAH IN AL,DX(将将3DAH口地址的字节送给口地址的字节送给AL)OUT 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)AD

24、D DATA BX,AL ;(BX)+DATA)(BX)+DATA)+(AL)ADD DX,BX+SI ;(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个标志位。注意带进位个标志位。注意带进位位加法中的进位位的值是上一条运算指令产生的

25、结果位加法中的进位位的值是上一条运算指令产生的结果(P105)第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之一:加法运算指令算术运算指令之一:加法运算指令ADC指令用于多字节加法运算指令用于多字节加法运算例例:有两个有两个4字节的无符号数相加:字节的无符号数相加: 2C56F8AC+309E47BE=?设被加数、加数分别存放在设被加数、加数分别存放在DS:0000及及DS:0004开始的开始的两个存储区内,结果放回两个存储区内,结果放回DS:0000 MOV AX,0004 ADD 0000,AX ;低字相加低字相加 MOV AX,0006 ADC 0002,AX ;高字相加,

26、包括低字的进位高字相加,包括低字的进位第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之一:加法运算指令算术运算指令之一:加法运算指令INC dest;(dest)(dest)+1加加1指令指令例例 加加1指令指令INC BX ;(BX)(BX)+1INC BYTE PTR DI+100H ;将;将DI)100H所指的所指的;字节单元内容;字节单元内容加加1 影响影响A,O,P,S,Z 5个标志位,对个标志位,对CF无影响无影响操作数为寄存器或内存操作数为寄存器或内存第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之一:加法运算指令算术运算指令之一:加法运算指令AAA加

27、法的加法的ASCII调整指令调整指令对在对在AL中的由两个非压缩的中的由两个非压缩的BCD码相码相加的结果进行校正,结果仍以非压缩加的结果进行校正,结果仍以非压缩BCD码的形式存放,各位在码的形式存放,各位在AL,十位在,十位在AH。DAA 加法的十进制调整指令加法的十进制调整指令对在对在AL中的由两个压缩的中的由两个压缩的BCD码相加码相加的结果进行校正,产生一个正确的的结果进行校正,产生一个正确的BCD码码的和。的和。第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之一:加法运算指令算术运算指令之一:加法运算指令例例 两个非压缩两个非压缩BCD码的加法运算,设码的加法运算,设(

28、AH)=0MOV AL,08 ;(AL) 08 (AL)=00001000ADD AL,09 ;(AL) 08+09 (AL)=00010001=11HAAA ;AF=1,(,(AH)(AH)+01, ;AL(AL+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, ;所以;所以AL)(AL)

29、+06, ; 结果结果AL)=72,AF=1,CF=0第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之二:减法运算指令算术运算指令之二:减法运算指令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

30、 WORD PTR SI,1068H ;(SI)(SI)-1068H-CF 以上两条指令影响以上两条指令影响A,C,O,P,S,Z 6个标志位个标志位第第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

31、AX, 24 ADC DX, 0 ; x+y+24 SUB AX, Z SBB DX, Z+2 ; x+y+24-z MOV W, AX MOV 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;(des

32、t)0-(dest) 求补指令求补指令操作数可以是内存或寄存器,影响所有标志位操作数可以是内存或寄存器,影响所有标志位例例 设设AL)=02H,(BX)2212HNEG AL ;(AL)0-(AL),结果,结果AL)=0FEHNEG BX ;(BX)0-(BX),结果,结果BX)=DDEEH第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之二:减法运算指令算术运算指令之二:减法运算指令AAS 减法的减法的ASCII调整指令调整指令对在对在AL中的由两个非压缩的中的由两个非压缩的BCD码相减的结码相减的结果进行校正,结果仍以非压缩果进行校正,结果仍以非压缩BCD码的形式存放,码的形式

33、存放,各位在各位在AL,十位在,十位在AH 。DAS 减法的十进制调整指令减法的十进制调整指令对在对在AL中的由两个压缩的中的由两个压缩的BCD码相减的结果码相减的结果进行校正,产生一个正确的进行校正,产生一个正确的BCD码的差。码的差。第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之二:减法运算指令算术运算指令之二:减法运算指令例例 两个未组合两个未组合BCD码的减法运算码的减法运算MOV AX,0608H ;AX0608HSUB AL, 09H ;AL0FFHAAS ;AL09H,AH05H例:两个组合例:两个组合BCD码的减法运算码的减法运算MOV AL,73H ;AL73

34、HSUB AL,27H ;AL4CHDAS ;AL46H第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之二:减法运算指令算术运算指令之二:减法运算指令CMP dest,src; (dest)-(src) 比较指令。完成两个操作数相减,结果反映在标志位上,比较指令。完成两个操作数相减,结果反映在标志位上,但不送回结果。用于比较两个操作数的大小关系。但不送回结果。用于比较两个操作数的大小关系。CMP A,B(1若任意两个数若任意两个数 ZF=0 AB (JNZ 不等转移)不等转移) ZF=1 AB (JZ 相等转移)相等转移)(2若两个数都是无符号数若两个数都是无符号数 CF=0 A

35、B (JNC) CF=1 AB (JC)(3若两个数都是带符号数正数若两个数都是带符号数正数 SF=0 AB (JNS) SF=1 AB (JS)(4若两个数是任意带符号数若两个数是任意带符号数 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章章 微型计算机指令系统微型计算机指令系统算术运算指令之三:

36、乘法运算指令算术运算指令之三:乘法运算指令MUL src;字节乘法字节乘法 (AX)(src)(AL) ;字乘法字乘法 (DX:AX) (src)(AX)无符号数乘法指令无符号数乘法指令例例 无符号数乘法指令无符号数乘法指令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看作有符号数看作有符号

37、数-2MOV CL,11H ;CL11H,11H看作有符号数看作有符号数17IMUL CL ;AXFFDEH,执行,执行02H*11H, 将乘积结果取补码得将乘积结果取补码得FFDEH=-34 第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之三:乘法运算指令算术运算指令之三:乘法运算指令AAM 乘法的乘法的ASCII码调整指令非压缩码调整指令非压缩BCD数)数)例例 两个非压缩两个非压缩BCD码的乘法运算。码的乘法运算。MOV AL,,06H ;AL06HMOV BL,07H ;BL07HMUL BL ;AX002AHAAM ;AX0402H第第3章章 微型计算机指令系统微型计算

38、机指令系统算术运算指令之四:除法运算指令算术运算指令之四:除法运算指令DIV src;字节除法字节除法 (AL)(AX)/(src) (AH)(AX)(src) 字除法字除法 (AX)(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)/(

39、src) (AH)(AX)(src) 字除法字除法 (AX)(DX:AX)/ (src) (DX)(DX:AX)(src) 带符号数除法指令带符号数除法指令 第第3章章 微型计算机指令系统微型计算机指令系统算术运算指令之四:除法运算指令算术运算指令之四:除法运算指令AAD 除法的除法的ASCII码调整指令非压缩码调整指令非压缩BCD码)码)例例 两个非压缩两个非压缩BCD码的除法运算。码的除法运算。MOV AX, 0605H ;AX0605HMOV BL,07H ;BL07HAAD ;AX0041HDIV BL ;商值;商值AL09,余数,余数AH02H第第3章章 微型计算机指令系统微型计算机

40、指令系统算术运算指令之五:符号扩展指令算术运算指令之五:符号扩展指令CBW ;假如假如(AL)80H,那么,那么(AH)0 否则否则(AH)FFH 将一个字节转换为字将一个字节转换为字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时转移至标号处,不影响时转移至标号处,不影响CX内容内容例例P123第第3章章 微型计算机指令系统微型计算机指令系统控制转移指令之

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论