三章指令系统ppt课件教案

上传人:s9****2 文档编号:567922034 上传时间:2024-07-22 格式:PPT 页数:71 大小:346KB
返回 下载 相关 举报
三章指令系统ppt课件教案_第1页
第1页 / 共71页
三章指令系统ppt课件教案_第2页
第2页 / 共71页
三章指令系统ppt课件教案_第3页
第3页 / 共71页
三章指令系统ppt课件教案_第4页
第4页 / 共71页
三章指令系统ppt课件教案_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《三章指令系统ppt课件教案》由会员分享,可在线阅读,更多相关《三章指令系统ppt课件教案(71页珍藏版)》请在金锄头文库上搜索。

1、第第3章章 微型计算机指令系统微型计算机指令系统三章指令系统ppt课件Stillwatersrundeep.流静水深流静水深,人静心深人静心深Wherethereislife,thereishope。有生命必有希望。有生命必有希望第第3章章 微型计算机指令系统微型计算机指令系统3.1 80X86/Pentium的寻址方式的寻址方式立即寻址立即寻址寄存器寻址寄存器寻址直接寻址直接寻址寄存器间接寻址寄存器间接寻址基址寻址基址寻址变址寻址变址寻址基址加变址寻址基址加变址寻址*比例变址寻址比例变址寻址*基址加比例变址寻址基址加比例变址寻址*带偏移量的基址加比例变址寻址带偏移量的基址加比例变址寻址第第3

2、章章 微型计算机指令系统微型计算机指令系统寻址方式寻址方式寻址方式寻址方式:指:指CPUCPU指令中规定的寻找操作数所在指令中规定的寻找操作数所在的地址的方式。的地址的方式。操作数操作数: MOV AL , 05H: MOV AL , 05H 操作码操作码 目的操作数目的操作数 , 源操作数源操作数立即数:操作数包含在指令中立即数:操作数包含在指令中寄存器寻址:操作数包含在寄存器寻址:操作数包含在CPU的某个内部寄存器中的某个内部寄存器中存储器寻址:操作数包含在内存的数据区存储器寻址:操作数包含在内存的数据区操作数引用时的字节顺序操作数引用时的字节顺序:1.若存放的信息是字节,则按顺序存放若存

3、放的信息是字节,则按顺序存放2.若存放的信息是字,则将字的低位字节存放在低地址,若存放的信息是字,则将字的低位字节存放在低地址,高位字节存放在高地高位字节存放在高地址址第第3章章 微型计算机指令系统微型计算机指令系统寻址方式之一:立即寻址寻址方式之一:立即寻址操作数作为立即数直接存在指令中,可为字节或字。操作数作为立即数直接存在指令中,可为字节或字。MOV AX, 3100H低地址低地址高地址高地址CS段段操作码操作码00H31H34H12HAX00H31H第第3章章 微型计算机指令系统微型计算机指令系统寻址方式之二:寄存器寻址寻址方式之二:寄存器寻址操作数包含在指令规定的操作数包含在指令规定

4、的8位、位、16位寄存器中。位寄存器中。寄存器寻址由于无需从存储器中取操作数,故执行寄存器寻址由于无需从存储器中取操作数,故执行速度快。速度快。 MOV SS,AX34H12HSS34H12HAX第第3章章 微型计算机指令系统微型计算机指令系统寻址方式之三:直接寻址寻址方式之三:直接寻址在指令的操作码后面直接给出操作数的在指令的操作码后面直接给出操作数的16位偏移地位偏移地址。这个偏移地址也称为有效地址址。这个偏移地址也称为有效地址EA。操作数默操作数默认在认在DS段中。段中。MOV AX, 3000H低地址低地址高地址高地址CS段段操作码操作码00H30H34H12H34H12HAXDS段段

5、5000053000DS5000 0300053000+第第3章章 微型计算机指令系统微型计算机指令系统寻址方式之三:直接寻址寻址方式之三:直接寻址如果操作数在如果操作数在DS以外的其他段(以外的其他段(CS,SS,ES)中,指中,指令中必须指明段寄存器(段超越)令中必须指明段寄存器(段超越)MOV AX, ES:3000H低地址低地址高地址高地址CS段段操作码操作码00H30H34H12H34H12HAXES段段2000023000ES2000 0300023000+第第3章章 微型计算机指令系统微型计算机指令系统寻址方式之四:寄存器间接寻址寻址方式之四:寄存器间接寻址低地址低地址高地址高地

6、址CS段段操作码操作码34H12H34H12HAXSS段段7000073000SS7000 0300073000+MOV AX, BPBP操作数地址的偏移量(有效地址操作数地址的偏移量(有效地址EA)存放在寄存器中。以存放在寄存器中。以SI,DI, BX间接寻址,默认操作数在间接寻址,默认操作数在DS段中;以段中;以BP间接寻址,间接寻址,默认操作数在默认操作数在SS段中。段中。可以加段超越前缀的方法进行其他段进行寻址可以加段超越前缀的方法进行其他段进行寻址第第3章章 微型计算机指令系统微型计算机指令系统寻址方式之五:基址寻址寻址方式之五:基址寻址EA=基址寄存器基址寄存器+偏移量偏移量基址寄

7、存器:基址寄存器:BX(默认默认DS)和和BP(默认默认SS)。低地址低地址高地址高地址CS段段操作码操作码00H15H34H12H34H12HAXDS段段7000073500BX150073500+ MOV DX, BX+1500H或或 MOV DX, 1500HBXDS7000 02000第第3章章 微型计算机指令系统微型计算机指令系统寻址方式之六:变址寻址寻址方式之六:变址寻址EA=变址寄存器变址寄存器+偏移量偏移量变址寄存器:源变址寄存器变址寄存器:源变址寄存器SI、目的变址寄存器、目的变址寄存器DI(默认默认DS)。MOV AL,TABLESIMOV AL,SI+TABLEMOV A

8、L,SI+TABLE第第3章章 微型计算机指令系统微型计算机指令系统寻址方式之七:基址变址寻址寻址方式之七:基址变址寻址基址加变址:基址加变址:EA=基址寄存器基址寄存器+变址寄存器变址寄存器带偏移量的基址加变址:带偏移量的基址加变址:EA=基址寄存器基址寄存器+变址寄存器变址寄存器+偏移量偏移量低地址低地址高地址高地址CS段段操作码操作码50H02H34H12H34H12HDXDS段段3000033250BX025033250+MOV DX, BX+SI0250HDS3000 02000SI1000第第3章章 微型计算机指令系统微型计算机指令系统寻址方式总结寻址方式总结F寻址方式:寻址方式:

9、1. 立即寻址立即寻址 MOV AX, 1234H2. 寄存器寻址寄存器寻址MOV AX, BX3. 直接寻址直接寻址MOV AX, 1234H4. 寄存器间接寻址寄存器间接寻址MOV AX, BX 5. 基址寻址基址寻址MOV AX, BX+100H6. 变址寻址变址寻址MOV AX, SI+100H7. 基址加变址寻址基址加变址寻址MOV AX, BX+SI+100H第第3章章 微型计算机指令系统微型计算机指令系统操作数的分类操作数的分类立即数操作数:立即数操作数:注注1:立即数只能作为源操作数,不能作为目标操作数。:立即数只能作为源操作数,不能作为目标操作数。注注2:不能用一条指令简单地

10、将立即数传送到段寄存器。:不能用一条指令简单地将立即数传送到段寄存器。寄存器操作数:寄存器操作数:注注3:有些指令没有指定使用的寄存器,但实际上隐含这特:有些指令没有指定使用的寄存器,但实际上隐含这特定的寄存器操作数。定的寄存器操作数。存储器操作数:存储器操作数:注注4:不允许源操作数和目标操作数同时为存储器操作数。:不允许源操作数和目标操作数同时为存储器操作数。注注5:存储器操作数的物理地址的计算是将段基地址左移四:存储器操作数的物理地址的计算是将段基地址左移四位加上有效地址位加上有效地址EA(偏移地址)得到的。但是段寄存器偏移地址)得到的。但是段寄存器和有效地址的配对是有规定的,如表和有效

11、地址的配对是有规定的,如表3-2(P99)注注6:执行速度:寄存器操作数:执行速度:寄存器操作数 立即数操作数立即数操作数 存储器操作存储器操作数数第第3章章 微型计算机指令系统微型计算机指令系统指令的机器码和执行时间指令的机器码和执行时间机器码机器码:任何一条指令都是以特定的若干个:任何一条指令都是以特定的若干个(16)字节的字节的代码形式存在存储器的码段中。同样的指令(如代码形式存在存储器的码段中。同样的指令(如MOV)由于寻址方式和操作数的不同,机器码的长度也不同。由于寻址方式和操作数的不同,机器码的长度也不同。执行时间执行时间:指令的指令时间包括取址、译码和执行的时间,:指令的指令时间

12、包括取址、译码和执行的时间,跟该指令的机器码的长短没有直接关系。跟该指令的机器码的长短没有直接关系。 指令机器码 字节数 时钟数MOV AL,15HB0H15H 2 4MOV AX,BX8BHC3H 2 2第第3章章 微型计算机指令系统微型计算机指令系统3.2 8086/8088指令系统指令系统数据传送指令数据传送指令算术运算指令算术运算指令逻辑运算和移位指令逻辑运算和移位指令串操作指令串操作指令控制转移指令控制转移指令处理器控制指令处理器控制指令第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令(1)MOV指令指令MOV dest,s

13、rc ;(dest)(src)1)源操作数可以是)源操作数可以是8/16位的立即数、寄存器操作数、内位的立即数、寄存器操作数、内存操作数。目标操作数不允许为立即数,其余同源操存操作数。目标操作数不允许为立即数,其余同源操作数。作数。2)源、目操作数类型必须匹配)源、目操作数类型必须匹配MOV BYTE PTR BX, 12H3) 不能向段寄存器写立即数不能向段寄存器写立即数MOV AX, 2000MOV DS, AX4) 以以CS为目标的一切传送指令都是非法的为目标的一切传送指令都是非法的5) 段寄存器之间不能直接传送数据段寄存器之间不能直接传送数据第第3章章 微型计算机指令系统微型计算机指令

14、系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令例:合法指令例:合法指令MOV AL,30H ;立即数传送到寄存器;立即数传送到寄存器MOV AL, BL ;寄存器之间传送字节数据;寄存器之间传送字节数据MOV SI, BX+62H ;寄存器和存储器之间传送数据;寄存器和存储器之间传送数据例:不合法的指令例:不合法的指令MOV 6234H,AX ;立即数不能用于目的操作数;立即数不能用于目的操作数MOV CS,AX ;CS不能用于目的操作数不能用于目的操作数MOV IP,AX ;IP不能用于目的操作数不能用于目的操作数MOV DS,4234H ;立即数不能直接传送给段寄存器;立

15、即数不能直接传送给段寄存器MOV AL,BX ;源操作数与目的操作数的位数必须一致;源操作数与目的操作数的位数必须一致MOV BUF1,BUF2 ;不能在两个存储器单元之间传送数据;不能在两个存储器单元之间传送数据MOV DS,ES ;不能在两个段寄存器之间传送数据;不能在两个段寄存器之间传送数据第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令(2)堆栈操作指令堆栈操作指令PUSH src ; (SP)(SP)-2 (SP)+1:(SP)(src)进栈指令,先调整堆栈指针,再把源操作数压栈进栈指令,先调整堆栈指针,再把源操作数压栈PU

16、SH AXPOP dest ;(dest)(SP)+1:(SP) (SP)(SP)-2出栈指令,先将栈顶出栈指令,先将栈顶2字节送目标操作数,再调整堆栈指字节送目标操作数,再调整堆栈指针针POP AX注:堆栈指令指对字进行操作,不对字节进行操作,一注:堆栈指令指对字进行操作,不对字节进行操作,一般成对使用。操作数为般成对使用。操作数为16位寄存器、段寄存器或存储位寄存器、段寄存器或存储单元单元第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令PUSH AX低地址低地址高地址高地址12H34H34H12HAX堆栈段SSSP指向栈顶SP1S

17、P2第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令POP AX低地址低地址高地址高地址12H34H34H12HAX堆栈段SSSP指向栈顶SP+1SP+2第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令(3)交换指令)交换指令 XCHG dest,src;(dest)(src)交换指令,源、目不能同为内存操作数交换指令,源、目不能同为内存操作数,只能在寄存器之只能在寄存器之间、寄存器和存储器之间交换,段寄存器不能作为一个操间、寄存器和存储器之间交换,段寄存器不能作为一个操作数

18、进行交换。作数进行交换。合法交换指令合法交换指令XCHG AL,CL ;字节交换;字节交换XCHG BX,SI ;字交换;字交换XCHG AX,BX+SI ;寄存器和存储器之间交换数据;寄存器和存储器之间交换数据非法的交换指令非法的交换指令XCHG AX,6234H ;寄存器与立即数之间不能交换;寄存器与立即数之间不能交换XCHG BUF1,BUF2 ;存储器单元与存储器单元之间不能交换;存储器单元与存储器单元之间不能交换XCHG ADDR,4234H ;存储器单元与立即数之间不能交换;存储器单元与立即数之间不能交换XCHG CS,DATBX ;不能与;不能与CS(或(或IP)寄存器进行交换)

19、寄存器进行交换第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之一:通用传送指令数据传送指令之一:通用传送指令(4)XLAT 查表指令查表指令XLAT src_table;(AL)(BX)+(AL)查表指令,用来取表中某指定数的值查表指令,用来取表中某指定数的值执行指令前:序号执行指令前:序号 AL 表首址表首址 BX执行指令后:执行指令后:AL 表中序号对应的字节内容表中序号对应的字节内容TABLE DB 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 MOV BX, OFFSET TABLE MOV AL, 5 XLAT (或(或XLAT TABL

20、E)执行后执行后AL=53第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之二:地址传送指令数据传送指令之二:地址传送指令LEA reg16,mem16有效地址传送指令,源操作数为内存操作数有效地址传送指令,源操作数为内存操作数内存单元的有效地址内存单元的有效地址目标寄存器目标寄存器 LEA SI, AREA1= MOV SI,OFFSET AREA1LDS/LES reg16,mem32地址指针传送指令地址指针传送指令,EAreg16, EA+2DS/ES例:例:TABLE DD 12345678HLDS BX,TBALE5678BX, 1234HDS第第3章章 微型计算机指令系

21、统微型计算机指令系统数据传送指令之三:标志传送指令数据传送指令之三:标志传送指令LAHF 标志寄存器低字节标志寄存器低字节AH,不影响标志位不影响标志位 SAHF AH 标志寄存器低字节标志寄存器低字节,影响标志寄存器低影响标志寄存器低8位位PUSHF:16位标志寄存器内容入栈位标志寄存器内容入栈POPF:16位标志寄存器出栈位标志寄存器出栈S ZAPCO D I TAHFLAGLAHFSAHF第第3章章 微型计算机指令系统微型计算机指令系统数据传送指令之四:输入输出指令数据传送指令之四:输入输出指令完成累加器完成累加器AL/AX和和I/O端口之间的数据传送端口之间的数据传送IN acc,po

22、rt;(acc)(port)当端口地址小于当端口地址小于256时,直接寻址时,直接寻址,最多可访问最多可访问256个端口个端口例:例:IN AL,60H(将将60H口地址的字节送给口地址的字节送给AL) IN AX,60H(将将60H口地址的字送给口地址的字送给AX)端口地址大于或等于端口地址大于或等于256时,间接寻址,端口地址必须放时,间接寻址,端口地址必须放在在DX寄存器中,最多可访问寄存器中,最多可访问65536个端口个端口例:例:MOV DX,3DAH IN AL,DX(将将3DAH口地址的字节送给口地址的字节送给AL)OUT port,acc ;(port)(acc)例:例:MOV

23、 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+SI ;(DX)(DX)+(BX)+(SI)ADC dest,src;(dest)(dest)+(src)+(CF)带进位位加法带进位位加法例

24、例 带进位加法指令带进位加法指令 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章章 微型计算机指令系统微型计算机指令系统算术运算指令之一:加法运算指令算术运算指令之一:加法运算指令ADC指令用于多字节加法运算指令用于多字节加法运算例例: :有两个有两

25、个4 4字节的无符号数相加:字节的无符号数相加: 2C56F8AC+309E47BE=2C56F8AC+309E47BE=?设被加数、加数分别存放在设被加数、加数分别存放在DS:0000DS:0000及及DS:0004DS:0004开始的两个开始的两个存储区内,结果放回存储区内,结果放回DS:0000DS:0000 MOV AXMOV AX,00040004 ADD 0000 ADD 0000,AX ;AX ;低字相加低字相加 MOV AXMOV AX,00060006 ADC 0002 ADC 0002,AX ;AX ;高字相加,包括低字的进位高字相加,包括低字的进位第第3章章 微型计算机指

26、令系统微型计算机指令系统算术运算指令之一:加法运算指令算术运算指令之一:加法运算指令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加法的加法的ASCII调整指令调整指令对在对在AL中的由两个

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

28、0001000ADD AL,09 ;(AL) 08+09 (AL)=00010001=11HAAA ;AF=1,(,(AH)(AH)+01, ;AL(AL+6)& 0FH(AL高高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)+06, ; 结果(结果(AL)=72,AF=1,CF=0

29、第第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 WORD PTR SI,1068H ;(SI)(SI

30、)-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 AX, 24 ADC DX, 0 ; x+y+24 S

31、UB 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;(dest)0-(dest) 求补指令求补指令操作数可以是内存

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

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

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

35、C)(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看作有符号数看作有符号数-2MOV CL,11H

37、 ;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)/(src) (AH)(

39、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 相等或等于相

41、等或等于0循环循环 将将CX的内容减的内容减1,如果结果不为,如果结果不为0,且,且ZF1,则循环至短则循环至短标号处。标号处。LOOPNE/LOOPNZ short_lable 不相等或不等于不相等或不等于0循环循环 将将CX的内容减的内容减1,如果结果不为,如果结果不为0,且,且ZF0,则循环至短则循环至短标号处。标号处。JCXZ OPRD 当当CX=0时转移至标号处,不影响时转移至标号处,不影响CX内容内容例例P123第第3章章 微型计算机指令系统微型计算机指令系统控制转移指令之三:过程调用指令控制转移指令之三:过程调用指令栈底近过程近过程、远过程远过程第第3章章 微型计算机指令系统微型

42、计算机指令系统控制转移指令之三:过程调用指令控制转移指令之三:过程调用指令CALL段内直接调用段内直接调用 CALL near_proc(SP)(SP)-2, (SP)+1:(SP)(IP), (IP)(IP)+disp段内间接调用段内间接调用 CALL reg16/mem16(SP)(SP)-2, (SP)+1:(SP)(IP), (IP)(reg16/mem16)段间直接调用段间直接调用 CALL far_proc(SP)(SP)-2, (SP)+1:(SP)(CS), (CS)SEG far_proc(SP)(SP)-2, (SP)+1:(SP)(IP), (IP) offset far

43、_proc段间间接调用段间间接调用 CALL mem32(SP)(SP)-2, (SP)+1:(SP)(CS), (CS)(mem32+2)(SP)(SP)-2, (SP)+1:(SP)(IP), (IP)(mem32)第第3章章 微型计算机指令系统微型计算机指令系统控制转移指令之三:过程调用指令控制转移指令之三:过程调用指令RET从近过程返回从近过程返回 RET (IP)(SP)+1:(SP) ,(SP)(SP)+2 RET pop_value (IP)(SP)+1:(SP) ,(SP)(SP)+2+ pop_value从远过程返回从远过程返回 RET (IP)(SP)+1:(SP) ,(S

44、P)(SP)+2 (CS)(SP)+1:(SP) ,(SP)(SP)+2 RET pop_value (例:(例:P121) (IP)(SP)+1:(SP) ,(SP)(SP)+2 (CS)(SP)+1:(SP) ,(SP)(SP)+2 + pop_value第第3章章 微型计算机指令系统微型计算机指令系统控制转移指令之四:中断指令控制转移指令之四:中断指令INT n n为中断类型号,取值在为中断类型号,取值在0255之间之间标志寄存器标志寄存器、IP、CS入栈,清除入栈,清除TF和和IFINTO 溢出中断指令,若溢出中断指令,若OF1启动一个中断过程启动一个中断过程IRET 中断返回指令,自

45、动将推入堆栈的段地址和中断返回指令,自动将推入堆栈的段地址和偏移地址弹出,同时恢复标志寄存器的内偏移地址弹出,同时恢复标志寄存器的内容。容。第第3章章 微型计算机指令系统微型计算机指令系统处理器控制指令处理器控制指令标志位操作(标志位操作(CLC、STC、CMC(取反)(取反) CLD、STD CLI、STI) 空操作指令空操作指令NOP处理器暂停指令处理器暂停指令HLT(RESET或中断才恢复执行)或中断才恢复执行)处理器等待指令处理器等待指令WAIT(TEST引脚无效的情况下引脚无效的情况下等待)等待)处理器脱离指令处理器脱离指令ESC(将控制权交给协处理器)(将控制权交给协处理器)总线锁定指令总线锁定指令LOCK(使其他处理器不能使用总(使其他处理器不能使用总线等资源)线等资源)第第3章章 微型计算机指令系统微型计算机指令系统作业作业3-4,3-8,3-12(3)(4)(5),3-14(2)(5)(7),3-28

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号