网站大量收购闲置独家精品文档,联系QQ:2885784924

第4章 汇编语言程序设计基本方法精品.ppt

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

4.3.8 字符串处理 字符串处理是指对一系列的字母或数字的代码进行处理。 计算机中字符代码一般都采用ASCII码表示,每个字符占一个字节,一个字符串存放在一个连续的存储区中。 字符串处理通常包括求字符串的长度、字符串的移动、字符串的查找(搜索)、字符串的删除与插入等功能。这些功能在文本编辑程序中是不可缺少的。 字符串处理(2) 1、字符串操作指令 字符串传送指令  指令格式: MOVS DST, SRC MOVSB MOVSW 主要功能: ((ES:DI))←((DS:SI)) 字操作: (SI)←(SI)±2,(DI)←(DI)±2 字节操作:(SI)←(SI)±1,(DI)←(DI)±1 说明: 地址指针SI和DI的修正是可以递增,也可以递减的。 当标志寄存器中方向标志位DF=0时,地址指针以递增方式修正;反之,则以递减方式修正。 递增或递减的值将根据指令是字操作还是字节操作而定。 对于DF位的状态,在编写程序时,可以用CLD指令或STD指令将其清零或者置位。 字符串处理(3) LENG  DW 10 DAT1 DW 10 DUP(?) DAT2 DW 20 DUP(?) CLD ;DF=0 MOV AX, SEG DAT1 MOV DS, AX MOV ES, AX LEA SI, DAT1 LEA DI, DAT2 MOV CX, LENG AGAIN: MOVSW LOOP AGAIN 字符串处理(4) 2、字符串比较指令  指令格式: CMPS DST,SRC CMPSB CMPSW  主要功能: ((DS:SI))-((ES:DI)) 建立标志   字操作: (SI)←(SI)±2,(DI)←(DI)±2 字节操作:(SI)←(SI)±1,(DI)←(DI)±1 说明: 相减时是源串减去目的串,即SRC-DST 比较后只影响标志位,源串和目的串保持不变 指令的寻址方式与指针的修正同字符串传送指令  下面试举一个例子,说明该指令的功能。 字符串处理(5) LENG DW 4 STRING1 DB ‘THIS’ STRING2 DB ‘THAT’ CLD MOV AX, SEG STRING1 MOV DS, AX MOV ES, AX LEA SI, STRING1 LEA DI, STRING2 MOV CX, LENG AGAIN: CMPS STRING2, STRING1 JNE NO_SAME LOOP AGAIN SAME: … NO_SAME: … 字符串处理(6) 3、字符串扫描指令  指令格式:SCAS DST SCASB SCASW  主要功能: 累加器AX或AL中内容与ES:DI所指单元内容比较,根据结果设置标志位,累加器和目的操作数不受影响 字操作: (AX)-((ES:DI)) 建立标志 (DI)←(DI)±2 字节操作:(AL)-((ES:DI)) 建立标志 (DI)←(DI)±1  下面试举一个例子,说明该指令的功能。 字符串处理(7) LENG DW 4 STRING DB ‘THIS’ CLD MOV AX, SEG STRING MOV ES, AX

文档评论(0)

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

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

1亿VIP精品文档

相关文档