ImageVerifierCode 换一换
格式:PPT , 页数:104 ,大小:1.88MB ,
文档编号:4194945      下载积分:29 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4194945.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(微处理器的指令系统课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

微处理器的指令系统课件.ppt

1、180868088的寻址方式的寻址方式汇编语言指令要解决的两个问题:要指出进行什么操作操作符;要指出操作数和操作结果放在何处寻址方式。280868088的寻址方式的寻址方式 1.数据寻址方式 380868088的寻址方式的寻址方式v操作数就在指令中提供立即数寻址方式。(1)立即寻址 480868088的寻址方式的寻址方式v立即寻址时CPU直接从紧跟着的指令代码的后续地址单元中取得要操作的数,而不必执行总线周期;v立即数可以是8位,也可以是16位;v立即数寻址主要用来给寄存器赋初值,指令执行速度快。580868088的寻址方式的寻址方式v操作数放在CPU寄存器中寄存器寻址方式。(2)寄存器寻址

2、680868088的寻址方式的寻址方式v寄存器寻址可以使用8位或者16位的寄存器,对于8位寄存器,可以是AL、AH、BL、BH、CL、CH、DL、DH;v如果源操作数和目的操作数都是寄存器寻址,操作数在CPU内部进行,不需要执行总线周期;780868088的寻址方式的寻址方式v数据在存储器中,有效地址由指令给出直接寻址(3)直接寻址 880868088的寻址方式的寻址方式v数据在存储器中,有效地址由寄存器给出寄存器间接寻址(4)寄存器间接寻址 980868088的寻址方式的寻址方式v寄存器间接寻址允许使用的寄存器有BX、BP、SI、DIv书写时,寄存器带方括号 v当使用BX、DI和SI寻址存储

3、器时,默认使用数据段DS,而使用BP寻址存储器时,默认使用堆栈段SS1080868088的寻址方式的寻址方式v数据在存储器中,有效地址由基址寄存器(BX或BP)与变址寄存器(SI或DI)之和给出基址加变址寻址(5)基址加变址寻址 1180868088的寻址方式的寻址方式v在使用基址加变址寻址时,通常用基址寄存器保持存储器数组的起始地址,而变址寄存器保持数组元素的相对位置。1280868088的寻址方式的寻址方式v数据在存储器中,有效地址由寄存器与位移量之和给出寄存器相对寻址(6)寄存器相对寻址 1380868088的寻址方式的寻址方式v数据在存储器中,有效地址由基址寄存器、变址寄存器与位移量3

4、个分量之和给出寄存器相对寻址(7)相对基址加变址寻址 1480868088的寻址方式的寻址方式v程序存储器寻址方式即转移类指令(如CALL、JMP)的寻址方式 段内直接转移;JMP 1000H 段内间接转移;JMP CX 段间直接转移;JMP 2000H:0100H 段间间接转移 JMP DWORD PTR SI2.程序存储器寻址方式 1580868088的寻址方式的寻址方式v段内转移1680868088的寻址方式的寻址方式v段间转移1780868088的寻址方式的寻址方式v字符串指令不能使用正常的存储器寻址方式来存取数据串指令中使用的操作数。在字符串指令中,隐含使用变址寄存器SI和DI来寻址

5、操作数,因此采用的是隐含寻址方式。3.串操作指令寻址方式1880868088的寻址方式的寻址方式v在8086/8088中,I/O端口通过输入(IN)输出(OUT)指令来操作,可采用直接或间接两种方式 直接端口寻址 端口地址以8位立即数方式在指令中直接给出,端口地址范围为0255。IN AL,80H;将80H端口地址中的字节输入到AL中 间接端口寻址 端口地址以16位二进制数形式保存在DX寄存器中,范围为065535 OUT DX,AL;将AL中的字节内容输出到DX指向的端口4.I/O端口寻址方式19v通用数据传送指令 MO V、PUSH、POP、XCHG、XLATv目标地址传送指令 LEA、L

6、DS、LESv标志位传送指令 LAHF、SAHF、PUSHF、POPFvI/O数据传送指令 IN、OUT数据传送类指令数据传送类指令20(1)最基本的传送指令(MOV)MOVAL,BL;BL中的8位数据送AL MOVES,DX;DX中16位数据送ES1通用数据传送指令通用数据传送指令数据传送类指令数据传送类指令21几点注意:通用传送指令可传送8位和16位数据。通用传送指令中总是既含源操作数,又含目的操作数。不能在两个内存单元之间直接传送数据CS和IP寄存器不能作为目的操作数用BX、SI、DI来间接寻址时,默认的段寄存器为DS,而用BP来间接寻址时,默认的段寄存器为SS。执行SS寄存器赋值的传送

7、指令时,系统自动禁止外部中断。所有的通用传送指令都不改变标志。数据传送类指令数据传送类指令22数据传送类指令数据传送类指令MOV DS,AXMOV CS,AXMOV SI,BXMOV AX,BXMOV SI,AX23数据传送类指令数据传送类指令(2)堆栈操作指令推入堆栈指令PUSH和弹出堆栈指令POP。如:PUSH AXPUSH DSPOP DSPOP AX24数据传送类指令数据传送类指令PUSH BX指令的操作过程指令的操作过程25数据传送类指令数据传送类指令几点注意:堆栈操作总是按字进行的。推入指令,SP减2,数据在栈顶。弹出指令正好相反。允许PUSH CS,但不允许POP CS。堆栈的后

8、进先出。26数据传送类指令数据传送类指令(3)数据交换指令交换指令XCHG可以实现字节或字交换。如:XCHG AL,BL XCHG BX,CXXCHG 2530,CX练习:设当前练习:设当前CS=1000H,IP=0064H,DS=2000H,SI=3000H,AL=12H,执行执行XCHG AL,SI+0400H后,后,AL中的数被送到什么地方?中的数被送到什么地方?27数据传送类指令数据传送类指令交换指令注意点:目的操作数和源操作数不能均为内存单元。段寄存器和IP不能作为交换指令的操作数。28数据传送类指令数据传送类指令(4)换码指令 换码指令为XLAT,使累加器中的一个值变换为内存表格中

9、的某一个值,又称为代码转换或查表指令,特别适合于不规则代码的转换。指令的执行过程是:ALBX+AL例:已知7段显示码的编码规则为:编码信息在数据段中,起始地址的偏移为0030H,假定当前CS=2000H,IP=007AH,DS=4000H。要把AL中的5转换成对应的编码(12H),执行XLAT。原始值显示编码原始值显示编码00100000050001001010111100160000001020010010070111100030011000080000000040001100190001000029数据传送类指令数据传送类指令30(1)取有效地址指令(LEA)LEA指令的功能是将源操作数的

10、偏移地址送到目的寄存器中如:LEAAX,2728;将内存单元的偏移量2728送AXLEABX,BP+SI;指令执行后,BX中内容为BP+SI的值LEASP,0482;使堆栈指针SP为482数据传送类指令数据传送类指令2目标地址传送指令目标地址传送指令31数据传送类指令数据传送类指令例 设当前CS=1500H,IP=0200H,DS=2000H,SI=0030H,源操作数1234H存放在SI+100AH开始的存储器内存单元中,则指令 LEA BX,SI+100AH的操作过程如下:32(2)装入地址指令(LDS)功能:将4字节的地址指针传送到2个目的寄存器比如:LDSDI,2130H;使2130H

11、和2131H中的偏移量送DI,2132H和2133H中的段值DS。数据传送类指令数据传送类指令33数据传送类指令数据传送类指令例 设当前CS=1000H,IP=0604H,DS=2000H,DI=2400H,待传送的某变量的地址指针,其偏移地址为0180H,段地址为2230H,则指令 LDS SI,DI+100AH的操作过程如下:34(3)装入地址的指令(LES)功能:将一个地址指针装入ES和另一个寄存器。例:LESDI,BP+04;将堆栈中存放的字符串首址送到ES和DI中 数据传送类指令数据传送类指令35(1)读取标志指令(LAHF)将标志寄存器的低8位送AH。(2)设置标志指令(SAHF)

12、将AH寄存器的相应位送标志寄存器的低8位。(3)标志寄存器入栈指令(PUSHF)将标志寄存器的值推入堆栈顶部。(4)标志寄存器出栈指令(POPF)从堆栈弹出一个字送标志寄存器。数据传送类指令数据传送类指令3标志位传送指令标志位传送指令36(1)输入指令IN(2)输出指令OUT分为:直接的输入输出指令间接的输入输出指令。数据传送类指令数据传送类指令4I/O数据传送指令数据传送指令37直接的输入输出指令提供端口号。如:IN AL,50H;将50H端口的字节读入ALIN AX,70H;分别将70H、71H端口的 内容读入AL、AHOUT 44H,AL;将AL中的内容输出到44H 端口OUT 80H,

13、AX;将AL、AH中的内容分别输出 到80H、81H两端口 数据传送类指令数据传送类指令38间接的输入输出指令,如:INAL,DX;从DX所指的端口中读取INAX,DX;从DX和DX+1所指出的两个端口 中读取OUT DX,AL;将AL中的字节输出到DX所指的 端口中OUT DX,AX;将AL中的字节输出到DX所指的 端口中,同时将AH中的字节输 出到DX+1所指的端口中数据传送类指令数据传送类指令39输入输出指令注意点:只能用累加器作为执行输入输出的机构 寻址范围:直接输入输出指令为0255间接输入输出指令为065535。数据传送类指令数据传送类指令40算术运算类指令算术运算类指令v加法指令

14、 ADD、ADC、INCv减法指令 SUB、SBB、DEC、NEG、CMPv乘法指令 MUL、IMULv除法指令 DIV、IDIV、CBW、CWDv十进制调整指令 AAA、DAA|AAS、DAS、AAM、AAD41算术运算指令涉及两种类型的数据无符号数8位无符号数的范围为025516位无符号数的范围为065535有符号数8位有符号数的范围为-128+127 16位有符号数的范围为-32768+32767算术运算类指令算术运算类指令42算术运算类指令算术运算类指令所有算术运算指令均影响状态标志。规则:当无符号数运算产生溢出时,CF为1;当有符号数运算产生溢出时,OF为1;如运算结果为0,则ZF=

15、1;如运算结果为负数,则SF=1;如运算结果中有偶数个1,则PF=1。43(1)不带进位位的加法指令ADD如:ADD AL,50H;AL和50H相加,结果放在AL中ADD DI,SI;DI和SI的内容相加,结果在DIADD BX+DI,AX;BX+DI和BX+DI+1的2个单元和AX相加,;结果在BX+DI和BX+DI+1所指单元ADD AX,BX+2000H;BX+2000H和BX+2001H所指单元内容;和AX的内容相加,结果在AX中算术运算类指令算术运算类指令1加法指令加法指令44算术运算类指令算术运算类指令(2)带进位位的加法指令ADC如:ADC AX,SI ;AX和SI中的内容以及C

16、F的值相加,;结果在AXADC DX,SI;SI和SI+1所指的单元的内容;和DX的内容以及CF的值相加,;结果在DX45算术运算类指令算术运算类指令(3)增量指令INC将操作数的内容加1。如:INC AL;将AL中的内容加1INC CX;将CX中的内容加1INC BYTE PTR BX+DI+500 ;将BX+DI+500所指单元的内容加146(1)不考虑借位的减法指令SUBSUB完成2个字节或2个字的相减。如:SUB BX,CX ;将BX中的内容减去CX中的内容,结果在BX中SUB BP+2,CL;将BP+2所指的单元中的值减去CL中的值 ;结果在BP+2所指的堆栈单元中SUB AL,20

17、 ;AL中的数减去20,结果在AL中SUB SI,5010H ;SI中的数减去5010H,结果在SI中SUB WORD PTR DI,1000H ;DI和DI+1所指的两单元中的数减去1000H;结果在DI和DI+1所指的单元中算术运算类指令算术运算类指令2减法指令减法指令47算术运算类指令算术运算类指令48算术运算类指令算术运算类指令(2)考虑借位的减法指令SBB如:SBB AX,2030H;将AX的内容减去2030H,并减去CF值SBB WORD PTR DI+2,1000H ;将DI+2和DI+3所指两单元的内容减去1000H,;并减去CF值,结果在DI+2和DI+3所指的单元49算术运

18、算类指令算术运算类指令(3)减量指令DEC将操作数减1。如:DEC AX ;将AX的内容减1,再送回AX中DEC BL ;将BL的内容减1,结果送回BL中DEC BYTE PTRDI+2 ;将DI+2所指单元的内容减1,结果送回此单元 50算术运算类指令算术运算类指令(4)求补指令NEG操作数取补码如:NEG AL ;将AL中的数取补码NEG CX ;将CX中的内容取补码 51算术运算类指令算术运算类指令(5)比较指令CMP如:CMP AX,2000H;将AX的内容和2000H相比较,结果影响标志位CMPAL,50H;将AL中的数和50H比较,结果 影响标志位52(1)无符号数的乘法指令MUL

19、如:MUL BL ;AL中数和BL中数相乘,结果在AX中MUL CX ;AX中数和CX中数相乘,结果在DX和AX中MUL BYTE PTRDI;AL中数和DI所指的单元中 数相乘,结果在AX中算术运算类指令算术运算类指令3乘法指令乘法指令53算术运算类指令算术运算类指令54算术运算类指令算术运算类指令(2)有符号数的乘法指令IMUL如:IMUL CL;AL中有符号数与CL中有符号数相乘,结果在AX中IMUL BX ;AX和BX中的两个有符号数相乘,结果在DX和AX中IMUL BYTE PTRBX;AL中的8位有符号数;和BX所指单元的8位有符号数相乘,结果在AXIMUL WORD PTRDI;

20、AX中的16位有符号数;和DI、DI+1所指的单元16位有符号数相乘,结果在DX和AX中 MUL和IMUL执行时,会影响标志位CF和OF,但,AF、PF、SF和ZF无意义。55注意:当被除数为16位,除数为8位时,8位的商放在AL,8位的余数放在AH当被除数为32位,除数为16位,16位的商放在AX中,16位的余数放在DX 算术运算类指令算术运算类指令4除法指令除法指令56算术运算类指令算术运算类指令(1)无符号数的除法指令DIV如:DIV CL;AX中的数据除以CL中的数据,商在AL中,余数在AH中DIV WORD PTR DI ;DX和AX中的32位数除以DI、DI+1所指的16位数,商在

21、AX中,余数在DX中57算术运算类指令算术运算类指令(2)有符号数的除法指令IDIV如:IDIV BX ;将DX和AX中的32位数除以 BX中的16位数,商在AX中,余数在DX中IDIV BYTE PTR DI ;将AX中16位数除以DI所指单元 中的8位数,商在AL,余数在AH58算术运算类指令算术运算类指令除法指令几点注意:标志位AF、CF、OF、PF、SF和ZF无意义。商范围如下,超出了范围则产生0号中断:双字除以字为-32 768+32 767 字除以字节-128+127 有符号数除法规定余数的符号和被除数的符号相同。要求用16位数除以8位数,或者用32位数除以16位数。59算术运算类

22、指令算术运算类指令(3)将字节扩展成字的指令CBW功能:将AL寄存器中的符号位扩展到AH中。执行时,不影响标志位。60算术运算类指令算术运算类指令(4)将字扩展成双字的指令CWD功能:将AX中的被除数扩展成双字,即把AX中的符号位扩展到DX中。执行时,不影响标志位。61(1)BCD码的加法十进制调整指令AAA对非组合BCD码相加结果调整,DAA对组合的BCD码相加结果进行调整。算术运算类指令算术运算类指令5十进制调整指令十进制调整指令62算术运算类指令算术运算类指令(2)BCD码的减法十进制调整指令AAS对非组合BCD码相减结果进行调整DAS对组合的BCD码相减结果进行调整63算术运算类指令算

23、术运算类指令(3)BCD码的乘法十进制调整指令AAM功能:对非组合的BCD码相乘结果进行调整64算术运算类指令算术运算类指令(4)BCD码的除法十进制调整指令AAD功能:在除法之前,对除数和被除数进行非组合的BCD码调整。65逻辑运算和移位循环类指令逻辑运算和移位循环类指令v逻辑运算指令 AND、OR、NOT、XOR、TESTv移位指令 SAL、SAR、SHL、SHR ROL、ROR、RCL、RCR66v逻辑运算指令包括 AND(与)OR(或)NOT(非)XOR(异或)TEST(测试)逻辑运算和移位循环类指令逻辑运算和移位循环类指令1逻辑运算指令逻辑运算指令67逻辑运算和移位循环类指令逻辑运算

24、和移位循环类指令比如:AND AL,0FH;AL中内容和0FH相与,结果在AL ORAX,00F0H;AX和00F0H相或,结果在AX XOR AX,AX;AX内容本身进行异或,结果AX清零 NOT AL;AL中内容求反码,结果AL中TEST和AND执行同样操作,但TEST指令不送回操作结果,而仅仅影响标志位。如:TEST AX,8000H;如AX的最高位为1,则ZF0,否则ZF1 68(1)非循环移位指令4条移位指令:算术左移指令SAL逻辑左移指令SHL算术右移指令SAR逻辑右移指令SHR算术移位是对有符号数进行移位,在移位过程中必须保持符号不变;逻辑移位是对无符号数进行移位,总是用0来填补

25、已空出的位;逻辑运算和移位循环类指令逻辑运算和移位循环类指令2移位指令移位指令69移位指令(a)SAL(b)SHL(c)SAR(d)SHR 逻辑运算和移位循环类指令逻辑运算和移位循环类指令70逻辑运算和移位循环类指令逻辑运算和移位循环类指令(2)循环移位指令4条循环移位指令循环左移指令ROL循环右移指令ROR带进位位的循环左移指令RCL带进位位的循环右移指令RCR循环移位是将操作数首尾相接进行移位71循环移位指令(a)ROL(b)ROR(c)RCL(d)RCR 逻辑运算和移位循环类指令逻辑运算和移位循环类指令72逻辑运算和移位循环类指令逻辑运算和移位循环类指令v目标操作数允许是8/16位的通用

26、寄存器或内存单元,若移移1位,则指令中直接写1,若移多位,需要先将移位次数送到CL寄存器中。例:SAL BX,1;BX的内容算术左移1位ROR AX,1;AX的内容循环右移1位MOV CL,6;先指定移位位数SAR DX,CL;DX的内容算术右移6位RCL AX,CL;AX的内容连同CF循环左移6位73串操作类指令串操作类指令v字符串传送指令 MOVSB、MOVSWv字符串比较指令 CMPSB、CMPSWv字符串搜索指令 SCASB、SCASWv取字符串指令 LODSB、LODSWv存字符串指令 STOSB、STOSW74字符串传送指令MOVSB/MOVSWMOVSB用于字节传送MOVSW用于

27、字传送。特点:指令前面常加重复前缀REP。注意:为缩短指令长度,串操作指令采用隐含 寻址方式,源数据串一般在当前数据段中(DS),目标数据串在附加段中(ES),如果要在同一段内进行串操作,必须使DS和ES指向同一段。串操作类指令串操作类指令1字符串传送指令字符串传送指令75串操作类指令串操作类指令如:设当前CS=6180H,IP=120AH,DS=1000H,ES=3000HMOVSI,2000H;源地址为2000HMOVDI,1020H;目的地址为1020HMOVCX,100;字符串长100个字节CLD;方向标志清0,使指针按增量方向修改REP MOVSB;将源地址开始的100个字节传送到目

28、的地址 76串操作类指令串操作类指令77串操作类指令串操作类指令MOVSB指令注意点:源地址用SI寄存器指出 目的地址用DI寄存器指出 CX中为字节数或字数。若DF为0,则用MOVSB时,每传送一次,SI和DI自动增1;用MOVSW时,每传送一次,SI和DI自动增2。78字符串比较指令CMPSB/CMPSW功能:把DS段由SI所指的字节或者字和ES段由DI所指的字节或者字相比较。串操作类指令串操作类指令2字符串比较指令字符串比较指令79串操作类指令串操作类指令CMPSB/CMPSW指令注意点:预先将源字符串的首址设置到DS段和SI中目的字符串的首址设置到ES段和DI中比较的字节数或字数设置到C

29、X中设置方向标志 在DF为0或为1,影响比较SI和DI的修改方向。CMPSB/CMPSW指令通常加前缀REPZ/REPE相等时重复REPNZ/REPNE不等时重复80串操作类指令串操作类指令如:CLD;方向标志清0,使指针按增量方向修改MOV CX,100;字符串长100个字节MOV SI,2500H;源地址为2500HMOV DI,1400H;目的地址为1400HREPE CMPSB;相等或CX不为零时,执行比较81字符串搜索指令SCASB或者SCASW功能:将AL中的字节或者AX中的字与位于ES段由DI寄存器所指的内存单元的字节或字相比较。串操作类指令串操作类指令3字符串搜索指令字符串搜索

30、指令82取字符串指令LODSB/LODSW功能:将位于DS段由SI所指的存储单元的内容取到AL或AX中。LODSB取字节LODSW取字DF=1时地址作减量修改DF=0时地址作增量修改 该指令一般不加重复前缀串操作类指令串操作类指令4取字符串指令取字符串指令83存字符串指令STOSB/STOSW功能:把AL或AX中的数据存到ES段DI寄存器所指的内存单元。STOSB存字节STOSW存字DF=1时地址作减量修改DF=0时地址作增量修改 该指令一般不加重复前缀,如果使用重复前缀,可以建立一串相同的值。串操作类指令串操作类指令5存字符串指令存字符串指令84控制转移类指令控制转移类指令v转移指令 无条件

31、转移指令 JMP 条件转移指令 J*JC、JNC、JE/JZ、JNE/JNZ(单标志)JA/JNBE、JAE/JNB、JB/JNAE、JBE/JNA(无符号数)JG/JNLE、JGE/JNL、JL/JNGE、JLE/JNG(有符号数)JO、JNO、JNP/JPO、JP/JPE、JNS、JS(位条件)v循环控制指令 LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ、JCXZv过程调用 CALL、RETv中断控制 INT、INTO、IRET85控制转移类指令控制转移类指令(1)无条件转移指令JMP 段内直接转移;JMP 1000H 段内间接转移;JMP CX 段间直接转移;JMP 20

32、00H:0100H 段间间接转移 JMP DWORD PTR SI1无条件转移指令无条件转移指令86控制转移类指令控制转移类指令(2)调用指令CALL 段内直接调用;CALL 1000H 段内间接调用;CALL BX 段间直接调用;CALL 2000H:0100H 段间间接调用 CALL DWORD PTR DI87(3)调用返回指令RET功能:返回高一层的程序。特点:可带参数RETnn为0FFFFH范围中的偶数。控制转移类指令控制转移类指令88v条件转移指令特点:都是相对转移形式的 转移范围为-128+127,好处是指令字节少,执行速度快,需要转移到更远的目标,可以使用中间跳板;根据比较结果

33、决定是否转移,但注意无符号数和有符号数区分;大部分转移指令有两种不同的助记符2条件转移指令条件转移指令控制转移类指令控制转移类指令89控制转移类指令控制转移类指令90(1)LOOP指令功能:将CX的内容减1,CX如不为0,则继续循环,为0,则退出循环。如:MOV CX,0100H;设置循环次数KKK:LOOP KKK ;CX减1,如不为0则循环 控制转移类指令控制转移类指令3循环控制指令循环控制指令91(2)LOOPZ/LOOPE功能:将CX减1,如CX为0或者ZF为0则退出循环,在ZF=1且CX0时继续循环。注意:CX中的值为0时,并不会影响标志位ZF。控制转移类指令控制转移类指令92控制转

34、移类指令控制转移类指令(3)LOOPNZ/LOOPNECX减1,如CX0且ZF=0,则继续循环;如CX=0,或ZF=1,则退出循环。93控制转移类指令控制转移类指令(4)JCXZJCXZ指令不对CX寄存器内容操作,只根据CX内容控制转移。程序员需要在程序中执行CX的增减(通常为INC或DEC)。94(1)软件中断指令INT nn为中断类型号,在8086中,允许有256种中断类型(0255)(2)中断返回指令IRETIRET指令总是安排在中断服务程序的出口处。控制转移类指令控制转移类指令4中断指令中断指令95处理器控制类指令处理器控制类指令v标志位操作指令 CLC、STC、CMC、CLD、STD

35、、CLI、STIv同步控制指令 WAIT、ESC、LOCKv其他控制指令 HLT、NOP96(1)STC、CLC和CMC CLC、STC、CMC指令用来对进位标志CF清0、置1和取反操作(2)STD和CLD CLD、STD指令用来将方向标志DF清0、置1,常用于串操作指令之前(3)STI和CLICLI、STI指令用来将中断标志IF清0、置1。当CPU需要禁止可屏蔽中断进入时,应将IF清0,允许可屏蔽中断进入时,应将IF置1。1标志位操作指令标志位操作指令处理器控制类指令处理器控制类指令97(1)交权指令ESC交权指令ESC:CPU调用协处理器工作。(2)等待指令WAIT等待指令WAIT:CPU

36、测试TEST引脚上的信号,直到TEST引脚出现有效信号退出等待。(3)总线封锁指令LOCK功能:对总线实行封锁。注意:同步控制指令是为最大模式(多处理器系统)设计的;LOCK只是指令前缀,不是一条独立的指令。2同步控制指令同步控制指令处理器控制类指令处理器控制类指令98(1)暂停指令HLT功能:CS和IP指向HLT后面的一条指令的地址,而CPU暂停工作(2)空指令NOP功能:NOP指令并未使CPU完成任何有效功能,只是每执行一次该指令要占用3个时钟周期的时间,常用作延时,或取代其他指令用作调试。处理器控制类指令处理器控制类指令3其它控制指令其它控制指令99CPU指令集的发展指令集的发展v什么是

37、CPU指令集 所谓指令集,就是CPU中用来计算和控制计算机系统的一套指令的集合,而每一种新型的CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。指令集的先进与否,关系到CPU的性能发挥,它是CPU性能体现的一个重要标志。CPU的指令集从主流的体系结构上分为精简指令集(Reduced Instruction Set Computing,RISC)和复杂指令集(Complex Instruction Set Computing,CISC)。100CPU指令集的发展指令集的发展vRISC的产生 在计算机早期发展过程中,CPU中的指令都是将各种程序需要相配合的指令集成到CPU中。但是,随着计算

38、机的功能越来越强大,计算机内部的元件也越来越多,而且越来越复杂,CPU的指令也相应地变得十分复杂,而在使用过程中,并不是每一条指令都要经常被执行。统计证明,约有80%的程序只用到了20%的指令,而一些过于冗余的指令严重影响到了计算机的工作效率,正是这一现象,使RISC的概念被提了出来。101CPU指令集的发展指令集的发展vRISC和CISC的比较(1)指令系统:RISC 设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来完成。因此,在RISC 机器上实现特殊功能时,效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。而CISC 计算

39、机的指令系统比较丰富,有专用指令来完成特定的功能。因此,处理特殊任务效率较高。(2)存储器操作:RISC 对存储器操作有限制,使控制简单化;而CISC 机器的存储器操作指令多,操作直接。(3)程序:RISC 汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计;而CISC 汇编语言程序编程相对简单,科学计算及复杂操作的程序社设计相对容易,效率较高。102CPU指令集的发展指令集的发展vRISC和CISC的比较(4)中断:RISC 机器在一条指令执行的适当地方可以响应中断;而CISC 机器是在一条指令执行结束后响应中断。(5)CPU:RISC CPU 包含有较少的单元电路,因而面

40、积小、功耗低;而CISC CPU 包含有丰富的电路单元,因而功能强、面积大、功耗大。(6)设计周期:RISC 微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC 微处理器结构复杂,设计周期长。(7)用户使用:RISC 微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。103CPU指令集的发展指令集的发展v目前为止,Intel公司所生产的大部分处理器都是属于x86架构的处理器,属于CISC处理器,主要用于桌面应用。vIntel的Itanium(安腾)属于RISC处理器,主要用于企业级服务器应用。104CPU指令集的发展指令集的发展v几种现有的扩展指令集 MMX指令集(多媒体扩展指令集)Intel在1996年为Pentium系列处理器开发的多媒体增强指令,包括57条指令。SSE指令集(单指令多数据流扩展)Intel为提高处理器浮点性能而开发的扩展指令集,共70条。3D Now!指令集 AMD针对三维建模、坐标变换和效果渲染而开发的增强指令集,包含21条指令。SSE2指令集 在SSE的基础上的增强,包括144条指令。SSE3指令集 对SSE2 的一个补充,包括13条指令。

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|