《字符串指令》ppt课件

《字符串指令》ppt课件

ID:27371807

大小:278.51 KB

页数:55页

时间:2018-12-01

《字符串指令》ppt课件_第1页
《字符串指令》ppt课件_第2页
《字符串指令》ppt课件_第3页
《字符串指令》ppt课件_第4页
《字符串指令》ppt课件_第5页
资源描述:

《《字符串指令》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章字符串指令9.1字符串指令的性质9.2指令重复前缀9.3字符串传送、装入与存储指令9.4字符串的比较与扫描9.5字符串指令的应用9.1字符串指令的性质为方便对字符串进行操作,简化程序设计,指令系统提供了5类字符串操作指令。MOVS:从存储器中的某一位置传送一个字节或字到存储器的另一位置。LODS:从存储器中取一个字节或字数据装入寄存器AL或AX中。STOS:将AL或AX寄存器的内容存入存储器中。CMPS:两个数据块里的字符串进行比较(字节串或字串的比较)。SCAS:AL或AX的内容与存储器中的字符串进行比较。利用指令重复前缀还可实现字符

2、串指令的重复处理。字符串指令都要求先把数据串首元素(或者最后一个元素)的地址,放在指定的索引寄存器中,每处理一个数据元素,字符串指令本身自动把索引寄存器的内容做相应的变化(增值或减值),使其指向下一个待处理的元素。各种字符串操作指令具有一些共同的特征:(1)用SI来指定在数据段DS中源字符串的起始地址(第一个字符的段内偏移地址)。(2)用DI来指定在另一个数据段ES中的字符串起始地址(第二个字符的段内偏移地址)。(3)用CX来指定所要处理字符串的总长度。若以字节方式来处理字符串:用CX的值反映字符串所有字符的个数;若以字的方式来处理字符串,则

3、CX的值应为字符串中所有字符个数的1/2。(4)标志位DF决定字符串操作方向,是按增量还是减量增值。若DF=0,递增,字节操作时加1,字操作时加2;若DF=1,递减,字节操作时减1,字操作时减2。(5)每执行一条字符串操作指令只能完成字符串中一个字或一个字节的操作,同时自动修改SI和DI的内容,以指向字符串中下一个元素;SI、DI和CX都要发生相应的变化。(6)使用时,在它们的前面放置指令前缀,可提高处理速度,增强处理能力。以下列出每一条字符串指令所用到的寄存器和指令格式。假设DI和SI包含了正确的偏移地址。指令隐含操作字节格式字格式MOVS

4、DI,SIMOVSBMOVSWLODSAL,SIorAX,SILODSBLODSWSTOSDI,ALorDI,AXSTOSBSTOSWCMPSSI,DICMPSBCMPSWSCASDI,ALorDI,AXSCASBSCASW9.2指令重复前缀虽然字符串指令只允许一次处理一个字节或一个字数据,但是字符串操作指令前均可以加REP指令重复前缀,以实现对字符串中数据的重复处理。指令重复前缀包括无条件指令重复前缀REP、条件指令重复前缀REPE/REPZ与REPNE/REPNZ,它们必须置于字符串指令之前,其间用空格间隔,不能单独使用。使用指令重复前缀

5、,还必须先将重复的次数送入CX。每执行一次字符串操作指令,CX自动减1,直到CX=0时终止重复。方向标志位决定重复运算的方向:(1)使用CLD指令,设定DF=0;寄存器SI、DI由低地址到高地址变化。(2)使用STD指令,设定DF=1;寄存器SI、DI由高地址到低地址变化。使用指令重复前缀的一般格式为:指令重复前缀字符串指令9.2.1无条件重复前缀REP指令有四种格式:REPMOVSB/MOVSW/STOSB/STOSWREP将使得紧跟其后的字符串操作指令无条件地重复执行CX寄存器中内容指定的次数,直到CX=0为止。它通常用在字符串传送指令(

6、MOVS)、字符串存储指令(STOS)之前。若CX的初值为0,则字符串指令一次也不执行。例9.1从字符串1(STRING1)搬移20个字节数据到字符串2(STRING2)。假设,DS、ES属于同一数据段(即DS与ES相同)。STRING1DB20DUP(‘*’)STRING2DB20DUP(‘’)…CLD;清除DF标志位MOVCX,20;设定20个字节数据长度LEADI,STRING2;设定接收名字LEASI,STRING1;设定送出位地址REPMOVSB;将STRING1搬移到STRING29.2.2条件重复前缀REPE(REPZ)/REP

7、NE(REPNZ)字符串比较指令CMPS与字符串扫描指令SCAS也会影响状态标志,使指令的执行在指定的条件下能够立即停止。为配合此目的,REP还有两种条件重复形式:REPE和REPNE。与REPE配合使用的指令有以下4种格式:REPE(或REPZ)SCASB(SCASWCMPSBCMPSW)REPE与REPZ功能相同;其重复执行字符串操作指令的条件是CX≠0,且ZF=1。它们用在字符串比较和字符串扫描指令之前,用于通过相等比较,寻找字符串中不相等的字节数据或字数据。另外,与REPNE配合使用的指令亦有以下4种格式:REPNE(或REPNZ)S

8、CASB(SCASWCMPSBCMPSW)REPNE与REPNZ功能相同;其重复执行字符串指令的条件是CX≠0,且ZF=0。它们与REPE/REPZ指令一样,用在字

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。