书签 分享 收藏 举报 版权申诉 / 71
上传文档赚钱

类型[工学]第3章指令系统2课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3368675
  • 上传时间:2022-08-24
  • 格式:PPT
  • 页数:71
  • 大小:980.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《[工学]第3章指令系统2课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    工学 指令系统 课件
    资源描述:

    1、18086指令系统指令系统(2)2三、逻辑运算和移位类逻辑运算逻辑运算移位操作移位操作非循环移位非循环移位循环移位循环移位3逻辑运算和移位指令4指令类型n逻辑运算逻辑运算n与,或,非,异或与,或,非,异或n移位操作移位操作n非循环移位,循环移位非循环移位,循环移位5 一、逻辑运算n逻辑运算指令对操作数的要求大多与逻辑运算指令对操作数的要求大多与MOV指指令相同。令相同。“非非”运算指令要求操作数不能是运算指令要求操作数不能是立即数;立即数;n除除“非非”运算指令外,其余指令的执行都会运算指令外,其余指令的执行都会使标志位使标志位OF=CF=061.“与”指令:n格式:格式:n AND OPRD

    2、1,OPRD2n操作:操作:n两操作数相两操作数相“与与”,结果送目标地址。,结果送目标地址。7“与”指令的应用n实现两操作数按位相与的运算实现两操作数按位相与的运算nAND BL,SIn使目标操作数的某些位不变,某些位清零使目标操作数的某些位不变,某些位清零nAND AL,0FHn在操作数不变的情况下使在操作数不变的情况下使CF和和OF清零清零nAND AX,AX82.“或”运算指令n格式:格式:nOR OPRD1,OPRD2n操作:操作:n两操作数相两操作数相“或或”,结果送目标地址,结果送目标地址9“或”指令的应用n实现两操作数相实现两操作数相“或或”的运算的运算nOR AX,DIn使某

    3、些位不变,某些位置使某些位不变,某些位置“1”nOR CL,0FHn在不改变操作数的情况下使在不改变操作数的情况下使OF=CF=0nOR AX,AX10“或”指令的应用将一个二进将一个二进制数制数9变为字变为字符符9如何实现如何实现?113.“非”运算指令n格式:格式:nNOT OPRDNOT OPRDn操作:操作:n操作数按位取反再送回原地址操作数按位取反再送回原地址n注:注:n指令中的操作数不能是立即数指令中的操作数不能是立即数n指令的执行对标志位无影响指令的执行对标志位无影响n例:例:NOT BYTE PTRBXNOT BYTE PTRBX124.“异或”运算指令n格式:格式:nXOR

    4、OPRD1,OPRD2n操作:操作:n两操作数相两操作数相“异或异或”,结果送目标地址,结果送目标地址n例:例:XOR BL,80H XOR AX,AX两操作数自身相异或,结果为零两操作数自身相异或,结果为零135.“测试”指令n格式:格式:nTEST OPRD1,OPRD2n操作:操作:n执行执行“与与”运算,但运算的结果不送回目运算,但运算的结果不送回目标地址。标地址。n应用:应用:n常用于测试某些位的状态常用于测试某些位的状态14例:n从地址为从地址为3F8H的端口中读入一个字节数,当的端口中读入一个字节数,当该数的该数的bit1,bit3,bit5位同时为位同时为1时时,可从,可从38

    5、FH端口将端口将DATA为首地址的一个字输出,为首地址的一个字输出,否则就不能进行数据传送。否则就不能进行数据传送。编写相应的程序段。编写相应的程序段。15源程序代码:LEA SI,DATA MOV DX,3F8HWATT:IN AL,DX MOV DX,38FH MOV AX,SI OUT DX,AXAND AL,2AHCMP AL,2AHJNZ WATTTEST AL,02HJZ WATT ;ZF=1转移转移TEST AL,08HJZ WATTTEST AL,20HJZ WATTAND AL,2AHXOR AL,2AHJNZ WATT16逻辑指令小结逻辑指令小结nAND指令用于对一个数据的

    6、指定位清零指令用于对一个数据的指定位清零nOR指令用于对一个数据的指定位置指令用于对一个数据的指定位置1nNOT指令用于取反码,再加一指令用于取反码,再加一,得补码得补码nXOR指令用于对寄存器清零指令用于对寄存器清零,对特定位取反对特定位取反nTEST指令用于测试一个数据的指定位是指令用于测试一个数据的指定位是1还还是是0。操作与。操作与AND指令相同,但不送回操作指令相同,但不送回操作结果,仅影响标志位。结果,仅影响标志位。17二、移位指令 非循环移位指令非循环移位指令 循环移位指令循环移位指令注:注:n 移动一位时由指令直接给出;移动一位时由指令直接给出;n 移动两位及以上,则移位次数由

    7、移动两位及以上,则移位次数由CL指定。指定。二、非循环移位指令二、非循环移位指令SHL dst,count;逻辑左移逻辑左移SHR dst,count;逻辑右移逻辑右移SAL dst,count;算数左移算数左移SAR dst,count;算数右移算数右移CFM L00M LCCFM L0M LCF0最高位保持不变最高位保持不变19算术左移和逻辑左移n算术左移指令:算术左移指令:SAL OPRD,1 SAL OPRD,CLn逻辑左移指令:逻辑左移指令:SHL OPRD,1 SHL OPRD,CL有符号数有符号数无符号数无符号数移动一位后,若移动一位后,若CF与最高位不相等,则与最高位不相等,则

    8、OF=1;否则否则OF=020逻辑右移n格式:格式:SHR OPRD,1 SHR OPRD,CL0CF无符号数无符号数的右移的右移移动一位后,若次高位与最高位不相等,则移动一位后,若次高位与最高位不相等,则OF=1;否则否则OF=021逻辑右移例:nMOV AL,68HnMOV CL,2nSHR AL,CL0CF0 1 1 0 1 0 AL0 0 0 0 0 1 1 0 1 0 0ALCF0 00 0 0 1 1 0 1 0 ALCF0 0移动移动1次次移动移动2次次22算术右移n格式:格式:SAR OPRD,SAR OPRD,CL有符号数有符号数的右移的右移CF非循环移位指令的应用n左移可实

    9、现乘法运算左移可实现乘法运算n右移可实现除法运算右移可实现除法运算程序段:程序段:MOV BX,AX MOV CL,2 SHL AX,CL ;左移;左移2位,乘以位,乘以4 ADD AX,BX ;AX为原来为原来5倍倍 SHL AX,1 ;AX为原来的为原来的10倍倍 HLT 242.循环移位指令n不带进位位的循环移位不带进位位的循环移位n带进位位的循环移位带进位位的循环移位左移左移 ROL右移右移 ROR左移左移 RCL右移右移 RCR指令格式、对操作数的要求与非循环移位指令相同指令格式、对操作数的要求与非循环移位指令相同25不带进位位的循环移位CFCF26带进位位的循环移位CFCF27循环

    10、移位指令的应用n用于对某些位状态的测试;用于对某些位状态的测试;n高位部分和低位部分的交换;高位部分和低位部分的交换;n与非循环移位指令一起组成与非循环移位指令一起组成32位或更长字位或更长字长数的移位。长数的移位。(P124 例例3-35)28程序例 MOV SI,1000H MOV DI,3000H MOV CX,4STR:MOV AL,SI MOV BL,AL AND AL,0FH OR AL,30H MOV DI,AL INC DI MOV AL,BLPUSH CXMOV CL,4程序程序功能?功能?29程序功能n将将10001000H H开始存放的开始存放的四个压缩四个压缩BCDBC

    11、D码转换码转换为为ASCIIASCII码存放在码存放在30003000H H开始的单元中开始的单元中去。去。12H34H56H78H1000H3000H30串操作指令n字串传送:字串传送:MOVSB/MOVSWn字串比较:字串比较:CMPSB/CMPSWn字串扫描:字串扫描:SCASB/SCASWn字串装入:字串装入:LODSB/LODSWn字串存储:字串存储:STOSB/STOSB32串操作指令说明n针对数据块或字符串的操作;针对数据块或字符串的操作;n可实现存储器到存储器的数据传送;可实现存储器到存储器的数据传送;n待操作的数据串称为源串,目标地址称为待操作的数据串称为源串,目标地址称为目

    12、标串。目标串。33串操作指令的特点n源串一般存放在数据段,偏移地址由源串一般存放在数据段,偏移地址由SI指定。允许段指定。允许段重设;重设;n目标串必须在附加段,偏移地址由目标串必须在附加段,偏移地址由DI指定;指定;n指令自动修改地址指针,修改方向由指令自动修改地址指针,修改方向由DF决定。决定。DF=0 DF=1n数据块长度值由数据块长度值由CX指定指定n可增加自动重复前缀以实现自动修改可增加自动重复前缀以实现自动修改CX内容。内容。增地址方向;增地址方向;减地址方向;减地址方向;34重复前缀n无条件重复无条件重复nREPn条件重复条件重复nREPE 相等重复相等重复nREPZ 为零重复为

    13、零重复nREPNE 不相等重复不相等重复nREPNZ 不为零重复不为零重复CX0 且且 ZF=1CX0 且且 ZF=0CX0 重复重复35串操作指令流程取源串地址取源串地址取目标串地址取目标串地址设串长度设串长度传送一个字节或字传送一个字节或字修改地址指针修改地址指针修改串长度值修改串长度值传送完否?传送完否?NY设操作方向设操作方向361.串传送指令n格式:格式:MOVS OPRD1,OPRD2 MOVSB MOVSWn串传送指令常与无条件重复前缀连用串传送指令常与无条件重复前缀连用37串传送指令n对比用对比用MOV指令和指令和MOVS指令实现将指令实现将200个字节数据从内存的一个区域送到

    14、个字节数据从内存的一个区域送到另一个区域的程序段。另一个区域的程序段。38串传送指令例n用串传送指令实现用串传送指令实现200个字节数据的传送:个字节数据的传送:LEA SI,MEM1 LEA DI,MEM2 MOV CX,200 CLD REP MOVSB HLT392.串比较指令n格式:格式:CMPS OPRD1,OPRD2 CMPSB CMPSWn串比较指令常与条件重复前缀连用,指令的执串比较指令常与条件重复前缀连用,指令的执 行不改变操作数,仅影响标志位。行不改变操作数,仅影响标志位。n前缀的操作对标志位不影响前缀的操作对标志位不影响40串比较指令例测试测试200个字节数据是否传送正确

    15、:个字节数据是否传送正确:LEA SI,MEM1LEA DI,MEM2MOV CX,200CLD REPE CMPSB JZ STOP DEC SI MOV AL,SI MOV BX,SISTOP:HLT 413.串扫描指令n格式:格式:SCAS OPRD SCASB SCASWn执行与执行与CMPS指令相似的操作,只是这里的源指令相似的操作,只是这里的源 操作数是操作数是AX或或AL目目 标标操作数操作数42串扫描指令的应用n常用于在指定存储区域中寻找某个关键字。常用于在指定存储区域中寻找某个关键字。P127例例3-3843串装入指令n格式:格式:LODS OPRD LODSB LODSWn

    16、操作:操作:n对字节:对字节:ALALn对对 字:字:AXAX源操作数源操作数DS:SIDS:SIDS:SIDS:SI444.串装入指令n用于将内存某个区域的数据串依次装入累加用于将内存某个区域的数据串依次装入累加器,以便显示或输出到接口。器,以便显示或输出到接口。nLODS指令一般不加重复前缀。指令一般不加重复前缀。455.串存储指令n格式:格式:STOS OPRD STOSB STOSWn操作:操作:n对字节:对字节:ALALn对对 字:字:AXAX目目 标标操作数操作数ES:DIES:DI46串存储指令例 内存某个区域清零n设计思想:设计思想:区域首地址送区域首地址送ES:DI串长度送串

    17、长度送CX置方向标志置方向标志DF0送累加器送累加器AL执行串送存指令执行串送存指令P12947程序控制指令n转移指令转移指令n循环控制循环控制n过程调用过程调用n中断控制中断控制48一、转移和调用指令的寻址一、转移和调用指令的寻址n段内直接转移段内直接转移 有效地址:有效地址:IP+位移量位移量 段内间接转移段内间接转移n段间直接转移段间直接转移 CS、IPn段间间接转移段间间接转移 CS、IP二、无条件转移指令和条件转移指令二、无条件转移指令和条件转移指令1、无条件转移指令、无条件转移指令 段内转移:段内转移:JMP 1000H ;IP IP+1000H JMP SHORT LOP1;LO

    18、P1是标号是标号 段段间间转移转移 JMP FAR PTR LOP2 I P LOP2的段内偏移地址的段内偏移地址 CS LOP2的段地址的段地址 JMP DWORD PTR BX I P BX CS BX+250段间间接转移n间接寻址间接寻址n转移的目标地址由指令中的转移的目标地址由指令中的32位操作数给出位操作数给出n 例:例:nJMP DWORD PTRBXXXHXXHXXHXXHBXIPCSJMP指令码指令码代代码码段段1代代码码段段2数数据据段段 形式形式:JX 短目标地址短目标地址 X :13个英文字母个英文字母 跳转范围跳转范围:-128+127字节字节1)、)、JE/JZ ;等

    19、于,等于,A=B(ZF=1则跳转)则跳转)JNZ/JNE;不等于,不等于,AB2)、)、无符号数比较无符号数比较 JB/JNAE:A=B JA/JNBE:A B ;JNA/JBE:A=B2.条件转移指令3)、带符号数比较指令)、带符号数比较指令JL:A=BJG:A BJNG:A=B 比较比较1000H、1001单元的两个数(无符号数),单元的两个数(无符号数),将大数存将大数存2000H单元中。单元中。54二、循环控制指令n循环范围:循环范围:n以当前以当前IP为中心的为中心的-128+127范围内循环。范围内循环。n循环次数由循环次数由CX寄存器指定。寄存器指定。n循环指令:循环指令:LOO

    20、P *LOOPZ *LOOPNZ无条件循环指令无条件循环指令条件循环指令条件循环指令55无条件循环指令n格式:格式:LOOP LABELn循环条件:循环条件:CX 0n操作:操作:DEC CX JNZ 符号地址符号地址56条件循环指令n格式:格式:LOOPZ LABEL LOOPE LABELn循环条件:循环条件:CX 0 ZF=1n格式:格式:LOOPNZ LABEL LOOPNE LABELn循环条件:循环条件:CX 0 ZF=057三、过程调用和返回n用于调用一个子过程;用于调用一个子过程;n子过程由程序员预先设计子过程由程序员预先设计 并装入内存并装入内存 n子过程执行结束后要返回子过

    21、程执行结束后要返回 原调用处原调用处调用程序调用程序断点断点入口入口地址地址入口地址入口地址断点地址断点地址子程序子程序 指令格式指令格式 CALL CALL RET RET 1)、)、IP入栈入栈:SP SP-2 SP IP 2)、)、入口地址:入口地址:IP IP+1000H 1)IP值入栈:值入栈:SP SP-2 SP IP2)入口地址:入口地址:IP BCD1的偏移地址的偏移地址1)IP值入栈:值入栈:SP SP-2 SP IP2)入口地址:入口地址:IP AX的值的值 1)、)、CS值入栈值入栈 2)、)、IP值入栈值入栈 3)、)、CS BCD2的段地址的段地址 IP BCD2的偏

    22、移地址的偏移地址 1)、)、CS值入栈值入栈 2)、)、IP值入栈值入栈 3)、)、I P DI CS DI+2(2)、返回指令:)、返回指令:RET1)段内调用返回段内调用返回 从堆栈弹出一个字到从堆栈弹出一个字到IP2)段间调用返回段间调用返回 从堆栈弹出一个字到从堆栈弹出一个字到IP 从堆栈弹出一个字到从堆栈弹出一个字到CS3)RET N:带参数返回带参数返回 RET 6 ,返回后,使返回后,使SP+6。62段间调用例n格式:格式:CALL FAR PROCn格式例:格式例:nCALL FAR TIMREnCALL DWORD PTRSIXXHXXHCALL代代码码段段数数据据段段SIX

    23、XHXXHCSIP63四、中断指令n中断中断n中断源中断源n中断的类型中断的类型n中断指令中断指令n引起引起CPU产生一次中断的指令产生一次中断的指令64中断与过程调用:n中断是随机事件或异常事件引起,调用则是事中断是随机事件或异常事件引起,调用则是事 先已在程序中安排好先已在程序中安排好;n响应中断请求不仅要保护断点地址,还要保护响应中断请求不仅要保护断点地址,还要保护 FLAGS内容;内容;n调用指令在指令中直接给出子程序入口地址,调用指令在指令中直接给出子程序入口地址,中断指令只给出中断向量码,入口地址则在向中断指令只给出中断向量码,入口地址则在向 量码指向的内存单元中。量码指向的内存单

    24、元中。1)INT n (1)、)、标志寄存器入栈;标志寄存器入栈;(2)、清标志位)、清标志位TF、IF;(3)、)、CS、IP值入栈;值入栈;(4)、计算中断地址:)、计算中断地址:n 4:低地址单元入低地址单元入IP 高地址单元入高地址单元入CS 2)INTO:溢出中断溢出中断 3)中断返回中断返回IRET66中断指令的执行过程n4 22H11H00H67HIPCS68122HMOV代代码码段段中中断断向向量量表表堆堆栈栈段段SPFLAGSHFLAGSLIPHCSLCSHIPLSPSPSP例例3:INT 21H操作结果:操作结果:1)、标志寄存器入栈,)、标志寄存器入栈,2)、清)、清TF

    25、、IF 3)、)、CS、IP入栈入栈 4)、计算中断矢量存放地址:)、计算中断矢量存放地址:21H 4=84 H 84H85H86H87H00200030IP 2000HCS 3000H683.中断返回指令n格式:格式:IRETn中断服务程序的最后一条指令,负责中断服务程序的最后一条指令,负责恢复断点恢复断点恢复标志寄存器内容恢复标志寄存器内容69五、处理器控制指令对标志位的操作对标志位的操作与外部设备的同步与外部设备的同步说明见说明见p139表表70本章课外自学内容:nBCDBCD码调整指令码调整指令n远地址指针指令远地址指针指令LDSLDS,LESLESn条件循环指令条件循环指令LOOPZLOOPZ,LOOPNZLOOPNZnPentiumPentium新增指令新增指令71结束语:掌握:掌握:n指令的格式及意义;指令的格式及意义;n指令对操作数的要求及对标志位的影响;指令对操作数的要求及对标志位的影响;n指令的应用。指令的应用。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:[工学]第3章指令系统2课件.ppt
    链接地址:https://www.163wenku.com/p-3368675.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


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

    163文库