华科 汇编语言程序设计课件第5章.ppt

  1. 1、本文档共135页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
华科 汇编语言程序设计课件第5章

5.1 字符串操作指令 (1) 串传送指令 MOVS (2)串比较指令 CMPS (3)串搜索指令 SCAS (4)取字节/字/双字串指令 LODS (5)存储字节/字/双字串指令 STOS ( 6 ) 总结 (1) 串传送指令 MOVS ●格式:MOVS OPD,OPS 或 ●功能:(1) (DS:[SI]/[ESI]) → ES:[DI]/[EDI] (2) 修改串指针,使之指向下一元素。修改方式为: ⅰ.当DF=0时,(SI)/(ESI)增量1(字节操作)或2(字操作) 或4(双字操作) ⅱ.当DF=1时,(SI)/(ESI)减量1(字节操作)或2(字操作) 或4(双字操作) 说明:(1) 该指令可带的重复前缀为:REP 即当(CX/ECX)≠0时连续传送,直至(CX/ECX)=0。 (2) 源串应在当前数据段,指针为SI/ESI;目的串应在 当前附加数据段指针为DI/EDI。 (2)串比较指令 CMPS ●格式:CMPS OPD,OPS 或 ●功能: ⑴ (DS:[SI]/[ESI])—(ES:[DI]/[EDI]),即将SI/ESI所指的源串中的 一个字节(或字、双字)中的数与DI、EDI所指的目的串中的一个字节 (或字、双字)中的据相减,并根据相减的结果设置标志位,结果并不 保存。 ⑵ 修改串指针,使之指向串中的下一个元素。修改方式为: i. 当DF=0时,(SI)/(ESI)和(DI)/(EDI)增量1(字节操作)或2(字操 作)或4(双字操作)。 ii. 当DF=1时,(SI)/(ESI)和(DI)/(EDI) 减量1(字节操作)或2(字操 作) 或4(双字操作)。 (2)串比较指令 CMPS 说明:⑴ 源串放在当前数据段中,指针为SI/ESI;目的串放在 当前附加数据段中,指针为DI/EDI; ⑵ 该指令可带的重复前缀为: a.REPE/REPZ 当(CX/ECX)≠0时,如两串对应字符 相等继续比较,不相等跳出循环; b.REPNE/REPNZ 当(CX/ECX)≠0时,如两串对应字符 不相等继续比较,相等跳出循环; (2)串比较指令 CMPS 例2 从键盘输入一字符串至STR1为首址的字节缓冲区中,试 比较该串与字节字符串STR2是否相等,相等则0→BX;不 等-1→BX。 .386 DATA SEGMENT USE16 STR1 DB 80 DB 0 DB 80 DUP(0) STR2 DB ′WAN1.ASM′ COUNT EQU $-STR2 DATA ENDS STACK SEGMENT USE16 STACK DB 200 DUP(0) STACK ENDS CODE SEGMENT USE16 ASSUME DS:DATA,ES:DATA,SS:STACK,CS:CODE (2)串比较指令 CMPS START: MOV AX,DATA MOV DS,AX MOV ES,AX LEA DX,STR1 MOV AH,10 输入一串字符至STR1缓冲区 INT 21H MOV AL,STR1+1 CMP AL,COUNT 比较两串长度是否相等,不等转EXIT JNE EXIT LEA SI,STR1+2 LEA DI,STR2

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档