第7章 串操作程序设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
指令的功能: ① 对于字节串,执行(AL)- (DI);对于字串,执行(AX)- (DI)。按指令的执行结果设置状态位,执行结果不改变DI所指内存单元的值。 ② 据DF的值及串的类型(字节/字)修改DI,使DI指向串扫描的下一个元素。 * 具体情况如下: DF=0且是字节串,则: DI←DI+1 DF=0且是字串,则: DI←DI+2 DF=1且是字节串,则: DI←DI-1 DF=1且是字串,则: DI←DI-2 * 使用格式的条件: ① 目的串在附加数据段ES中定义。 ② 指令用DI指向目的串。 ③ 根据串的处理方向设置DF的值。从串首到串尾处理,设置DF=0(CLD);从串尾到串首处理,设置DF=1(STD)。 * DI←目的串的首地址或尾地址 DF←0或1 CX←目的串长度 AL←待扫描的字符 CX=0或ZF=1 结束串操作 CX←CX-1 SCAS 图7-3 带REPNZ/REPNE前缀的串扫描指令 Y N * 2. 程序设计 例7-4 在STR为首地址的字符串中查找有没有空格字符。如果没有空格,在F单元存入-1;如果有空格,在F单元存入找到的第一个空格的偏移地址。 DATA SEGMENT STR DB “I love china” ;字符串1 COUNT EQU $-STR F DW -1 ;假定字符串中无空格 DATA ENDS STACK SEGMENT SATCK DB 200 DUP(?) STACK ENDS CODE SEGMENT ASSUME DS:DATA,ES:DATA,SS:STACK,CS:CODE * START: MOV AX,DATA MOV DS,AX MOV ES,AX LEA DI,STR ;取目的串的偏移地址 MOV CX,COUNT MOV AL,“ ” CLD ;设置 DF=0 REPNE SCASB ;重复依次查找空格 JNE ET ;无空格,则转移 DEC DI ;指向空格字符 MOV F,DI ET: MOV AH,4CH INT 21H CODE ENDS END START 返回本章目录 * 7.5 串元素的存取 指令及程序设计 * 格式一: LODS src 格式二: LODSB LODSW 1.串元素取指令 * 指令的功能: ① 将DS:SI指向的串元素的值取出传送到AL或AX中。 ② 据DF的值及指令的类型属性(字节/字)修改SI,使SI指向串处理的下一个元素。 * 使用格式的前提条件: ① 源串必须在数据段DS中定义。 ② 指令用SI指向源串中待取的串元素。 ③ 根据串的处理方向设置DF的值。从串首到串尾取串元素,设置DF=0(CLD); 从串尾到串首取串元素,设置DF=1(STD)。 * 格式一: STOS dest 格式二: STOSB   STOSW  2.串元素存指令 *   指令的功能: ① 将AL或AX的值存入ES:DI指向的内存单元。 ② 根据DF的值及类型属性(字节/字)修改DI,使DI指向串处理的下一个存储单元。 * 使用格式的条件: ① 目的串在附加数据段ES定义。 ② 指令用DI指向目的串中的一个存储单元。 ③ 根据串的处理方向设置DF的值。 从串首 到串尾处理串,设置DF=0(CLD);从串尾到 串首处理串,设置DF=1(STD)。 * 例7-8 一组带符号数,由小到大的顺序存放在以BUF为首地址的内存中 ,试编写程序将一个数据插入到适当的位置,使该组数据仍符合由小到大的顺序排列。 DATA SEGMENT BUF DB -120,-89,-60,43,67,94,100,112 DB ? ;预留存数空间 COUNT EQU $-BUF M DB 80 ;待插入的数据 DATA ENDS 3. 程序设计 *

文档评论(0)

精品报告 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档