处理机控制指令PPT课件_第1页
处理机控制指令PPT课件_第2页
处理机控制指令PPT课件_第3页
处理机控制指令PPT课件_第4页
处理机控制指令PPT课件_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

-,1,6.处理机控制指令1)标志处理指令CLC,STC,CMC,CLD,STD,CLI,STI2)处理机控制指令HLT,NOP,WAIT,ESC,LOCK,-,2,1)标志处理指令设置和清除标志的指令,只影响指令指定的标志,-,3,2)处理机控制指令暂停指令HLT格式HLT执行使CPU处于暂停状态用于等待外部中断,中断处理结束后,继续执行HLT后的下一条指令例、STI;允许外部中断HLT;等待中断MOVAX,0、,-,4,空操作指令NOP格式NOP指令不执行任何操作,-,5,7串处理指令串的基本概念顺序存放在内存中的一组数据,称为串。用串的首(末)地址、元素类型、串的长度表示。,-,6,串操作种类串传送将串从内存某一区域传送到另一区域。从串取从串中取出某一元素。存入串将某个数据存入串中。串比较对两个串进行比较。搜索串在串中搜索(查找)某数据(关键字),-,7,-,8,串指令串传送MOVS从串取LODS存入串STOS串比较CMPS搜索串SCAS,-,9,-,10,对只有一个存储器操作数的串指令如LODS(从串取)STOS(存入串)SCAS(搜索串)另一个操作数在AL(字节操作)或AX(字操作)CMPS(串比较)、SCAS(串搜索)影响标志,MOVS(串传送)、LODS(从串取)、STOS(存入串)不影响标志。,-,11,串传送格式MOVSB字节传送MOVSW字传送MOVSB执行操作(ES:DI)(DS:SI)字节传送(SI)(SI)1修改源串指针(DI)(DI)1修改目的串指针其中:DF=0,用+DF=1,用-MOVSW执行操作(ES:DI)(DS:SI)字传送(SI)(SI)2修改源串指针(DI)(DI)2修改目的串指针,-,12,-,13,-,14,-,15,-,16,重复控制前缀重复前缀REP当相等重复前缀REPZ/REPE当不相等重复前缀REPNZ/REPNE,-,17,重复前缀REP执行过程:(1)当(CX)=0,结束REP,执行REP下一条指令。(2)当(CX)0,将CX的内容减1,执行REP后的串指令,返回(1)。例LEADI,destinationLEASI,sourceMOVCX,20REPMOVSBMOVAX,0只在(CX)=0时退出循环,-,18,当相等重复前缀REPZ执行过程:(1)当(CX)=0,结束REPZ,执行REPZ下一条指令;(2)当(CX)0,将CX的内容减1,执行REPZ后的串指令;(3)当ZF=1,返回(1);(4)当ZF1,则结束REPZ,执行REPZ下一条指令。(CX)减1操作不影响标志ZF标志由串操作决定,-,19,当不相等重复前缀REPNZ执行过程:(1)当(CX)=0,结束REPNZ,执行REPNZ下一条指令。(2)当(CX)0,将CX的内容减1,执行REPNZ后的串指令。(3)当ZF=0,返回(1);(4)当ZF0,则结束REPNZ,执行REPNZ下一条指令。,-,20,例1用REPMOVS进行数据块传送。编程:设置传送方向用CLD使DF=0,地址增加方向(正向)用STD使DF=1,地址减小方向(反向)设置源串地址将源串首地址(DF=0),或末地址(DF=1)放入DS、SI中。设置目的串地址将目的串首地址(DF=0),或末地址(DF=1)放入ES、DI中。设置串长度将串的长度(传送次数)放入CX中。字节传送用REPMOVSB字传送用REPMOVSW,-,21,-,22,data1SEGMENTstr1DBABCD;源串data1ENDSdata2SEGMENTstr2DB4DUP(?);缓冲区data2ENDScodeSEGMENT、CLD;DF=0,正方向传送MOVAX,data1;源串首地址的段值DSMOVDS,AXLEASI,str1;源串首地址的偏值SIMOVAX,data2;目的串首地址的段值ESMOVES,AXLEADI,str2;目的串首地址的偏值DIMOVCX,4;串长度CXREPMOVSB;串传送、codeENDS,-,23,data1SEGMENTstr1DBABCDdata1ENDSdata2SEGMENTstr2DB4DUP(?)data2EMDScodeSEGMENT、CLDMOVAX,data1MOVDS,AXLEASI,str1MOVAX,data2MOVES,AXLEADI,str2MOVCX,4REPMOVSB、codeENDS,假设程序经汇编、连接后,装入内存的情况如下:,-,24,程序执行结果:,-,25,例2比较string1和string2的两串,长度为8字节,-,26,用REPZCMPS进行串比较编程:设置比较方向(STD或CLD)设置源串、目的串地址将源串首地址(DF=0时),或末地址(DF=1时)放入DS、SI将目的串首地址(DF=0时),或末地址(DF=1时)放入ES、DI设置串长度将串的长度放入CX中按字节比较用REPZCMPSB按字比较用REPZCMPSW,-,27,执行完REPZCMPS后,根据ZF判断两串比较结果。若ZF=1,两串相等,此时:CX=0,表明串中所有元素已比较完毕SI、DI指向串尾的下一单元。若ZF=0,两串不等,此时:CX的值为剩下的未比较的元素个数。SI、DI指向不相等元素的下一元素。,-,28,codeSEGMENT、CLD;DF=0,正向比较MOVAX,SEGstring1;源串首地址DS:SIMOVDS,AXLEASI,string1MOVAX,SEGstring2;目的串首地址ES:DIMOVES,AXLEADI,string2MOVCX,8;串长度CXREPZCMPSB;串比较JZequal;利用ZF判断比较结果不相等处理JMPexitequal:相等处理exit:、codeENDS,-,29,-,30,-,31,执行完REPZCMPSB后,此时:ZF=0,两串不等CX=3,剩下的未比较的元素个数SI、DI指向不相等元素的下一元素。,例,-,32,例3用REPNZSCAS在串中找关键字。编程步骤:设置查找方向设置串地址将串的首地址(DF=0时),或末地址(DF=1时)放入ES、DI中。设置关键字将关键字放入AL(关键字为字节)或放入AX(关键字为字)。设置串长度将串的长度放入CX中。查找字节用REPNZSCASB查找字用REPNZSCASW,-,33,执行完REPNZSCAS后,根据ZF判断查找结果。若ZF=1,则串中有关键字,此时:CX的值为剩下的未搜索的元素个数,DI指向关键字元素的下一元素,而关键字在(DI)-1的位置若ZF=0,则串中无关键字,此时:CX=0,表明串中所有元素以搜索完毕DI指向串尾的下

温馨提示

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

评论

0/150

提交评论