2章34逻辑移位0822资料.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
重复前缀 有的串操作指令前面可加上重复前缀REP。当使用REP前缀时,该指令重复执行,重复执行次数由CX决定(带有REP前缀的串操作指令每执行一次,CX自动减1; CX=0 时退出执行 )。 重复前缀包括: REP CX≠0 时重复执行 REPE/REPZ CX≠0∧ZF=1时重复执行 REPNE/REPNZ CX≠0∧ZF=0时重复执行 串指令使用的一般方法 设置源串地址 设置目标串地址 设置串长度 设置操作方向DF 串指令 MOV SI, 源串首地址 (或LEA SI, 源串) MOV DI, 目的串首地址 (或LEA DI, 目的串) MOV CX, 串长度 CLD(或STD) 《串指令》 指令执行的操作为: MOVSB: ((ES):(DI))←((DS):(SI)) SI±1, DI±1 MOVSW: ((ES):(DI+1)(DI))←((DS):(SI+1)(SI)) SI±2, DI±2 指令也可写成:MOVS dest,src 但要求: ①src用DS:SI寻址,dest用ES:DI寻址 ②传送是字节还是字,由操作数的类型决定 ⒈串传送指令MOVSB / MOVSW 串传送指令使用举例 用串传送指令实现200个字节的数据传送: LEA SI,MEM1 LEA DI,MEM2 MOV CX,200 CLD REP MOVSB HLT ⒉串比较指令CMPSB / CMPSW 指令执行的操作为: CMPSB: ((DS):(SI))-((ES):(DI)) SI±1, DI±1 CMPSW: ((DS):(SI+1)(SI))-((ES):(DI+1)(DI)) SI±2, DI±2 指令也可写成:CMPS dest, src 比较的结果只反映在标志位上,串本身无变化。 本指令可用来检查两个串是否相等。 ⒊串扫描SCASB / SCASW 执行的操作: 对字节:(AL)-((ES):(DI)) DI±1 对字: (AX)-((ES):(DI+1)(DI)) DI±2 搜索指令执行的仍是比较(减法)操作,结果只影响标志位。 要搜索的关键字放在AL(字节)或AX(字)中。 本指令用于在串中查找指定的信息。 SCAS指令加上重复前缀后,可对串进行连续扫描比较: 若前缀为REPZ,则表示比较结果相等且(ZF=1)且串未结束(CX≠0),则继续比较。 若前缀为REPNZ,则表示比较结果不相等(ZF=0)且串未结束(CX≠0)就继续比较。 例:在ES段的偏移1000H开始处存有10个ASCII码。搜索’E’,若找到则记下搜索次数及存放地址,并在屏幕上显示’Y’;若未找到则显示’N’。(见右图) 在屏幕上显示一个字符的 指令段如下:(参见附录C.3) MOV DL,字符 MOV AH,2 INT 21H 实现题目要求的程序段见下页: 1000H 41 42 43 44 45 46 ’A’ ’B’ ’C’ ’D’ ’F’ . . . ES段 ’E’ MOV DI, 1000H ;(DI)←串偏移地址 MOV CX, 0AH ;(CX)←串长度 MOV AL, ’E’ ;搜索关键字=’E’ CLD ;从低地址到高地址进行搜索 REPNZ SCASB ;若未找到, 继续搜索 JZ FOUND ;找到, 转至FOUND MOV DL, ’N’ ;串中无’E’,(DL)←’N’ JMP DONE ;转至DONE FOUND:DEC DI ;指针回退 MOV ADDR, DI

文档评论(0)

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

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

1亿VIP精品文档

相关文档