- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1、可以通过重复前缀(REP)来实现串操作 2、串可以是字串或字节串 3、以SI作为源操作数的指针寄存器,默认段为DS段, 以DI作为目的操作数的指针寄存器,默认为ES段。 4、串操作地址的修改和FLAG的DF位有关,DF=0时, SI和DI增量变化;DF=1时,SI和DI减量变化,对于 字节串操作SI、DI每次变化量为±1,对于字串操作 SI、DI每次变化量为±2 例如: 将数据段1000H开始的100个字节传送到扩展段 2000H开始的单元 MOV [DI],[SI] INC SI INC DI (CX)←(CX)-1 当CX=0时退出MOVSB 计数器CX存放传送的字节数或字数 带重复前缀REP,则每次传送一次CX自动减1,直到CX为0 SI、DI分别为源和目的寄存器 方向标志位DF=0,SI、DI自动减量,否则自动增量 不影响标志位 使用指令前的初始化工作说明: 格式: LODSB LODSW LODS 目的操作数,源操作数 实现:若字节 AL←((DS):(SI)) 若字 AX←((DS):(SI)) (2) 取字符串指令(LODSB/LODSW) 若字节 (SI)← (SI)±1(DF=0用“+”) 若字 (SI)← (SI)±2 (DF=0用“+”) 不用重复前缀REP 程序举例:将0700H单元开始的5个字节的内容逐一取出,进行处理,处理之后再送回到0700H的内存区域 CLD MOV SI,0700H MOV DI,SI MOV CX,5 LT: LODSB PUSH CX ---- POP CX DEC CX MOV [DI],AL JNZ LI STRING→ f b c a 格式: STOSB STOSW STOS 目的操作数 (3) 存字符串指令(STOSB/SOTSW) 实现:若字节 ((ES):(DI)) ← AL 若字 ((ES):(DI)) ← AX 可用重复前缀REP,使一串内存单元填充相同的数 CLD LEA DI,AREA MOV CX,0080H XOR AX,AX REP STOSB 例: (4) 字符串比较指令(CMPSB/CMPSW) 格式: CMPSB (字节比较指令) CMPSW (字比较指令) CMPS 源操操作数寻址,目的操作数寻址 实现: 将SI所指向的源串中的一个字节或字与DI所指向的目的串中的一个字节或一个字相减,但不保存结果,只是根据结果设置标志位。([DS:SI])-([ES:DI]) 带重复前缀REPE/REPZ CX≠0且比较字节相等(ZF=1)时,继续比较 带重复前缀REPNE/REPNZ CX≠0且比较字节不相等(ZF=0)时,继续比较 通过重复前缀REPE/REPZ或REPNE/REPNZ实现两个字 符串中寻找第一个不等的元素或第一个相等的元素 程序举例: 比较STR1和STR2开头的两个字符串,两个字符串完全相同,则将AL置1,否则置0.字符串长度为3 LEA DI,STR1 LEA SI,STR2 CLD MOV CX,3 REPZ CMPSB JZ MATCH AND AL,0 HLT MATCH:MOV AL,1 HLT STR1→ a b c STR2→ a b c (5) 字符串检索指令(SCASB/SCASW) 格式: SCASB (字节比较指令) SCASW (字比较指令) SCAS 目的操作数 AL(AX)-[ES:DI] 根据相减结果置标志位 带重复前缀REPE/REPZ CX≠0且与AL(AX)内容相等(ZF=1)时,继续检索 带重复前缀REPNE/REPNZ CX≠0且与AL(AX)的内容不相等(ZF=0)时,继续检索 通过重复前缀REPE/REPZ或REPNE/REPNZ寻找第一个 与AL(AX)不同或相同的单元 程序举例:试检索AL中字符在STRING字符串中的位置,将该位置记录在BX寄存器中,如果没有检索到则BX置为-1,STRING字符串长度为4 LEA DI,STRING CLD MOV CX,4 MOV BX,CX REPNZ SCASB JZ FND MOV BX, FFFFH HLT FND:S
文档评论(0)