10指令系统4.ppt

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

串操作指令 1.字符串传送指令:MOVSB ,MOVSW 把数据段中由SI间接寻址的一个字节(或一个字)传送到附加段中由DI间接寻址的一个字节单元(或一个字单元)中去,然后,根据方向标志DF及所传送数据的类型(字节或字)对SI及DI进行修改,在指令重复前缀REP的控制下,可将数据段中的整串数据传送到附加段中去。 2.字符串比较指令 CMPSB ,CMPSW 指令的功能, 把数据段中由SI间接寻址的一个字节(或一个字)与附加段中由DI间接寻址的一个字节(或一个字)进行比较操作,使比较的结果影响标志位,然后根据方向标志DF及所进行比较的操作数类型(字节或字)对SI及DI进行修改,在指令重复前缀REPE/REPZ或者REPNE/REPNZ的控制下,可在两个数据串中寻找第一个不相等的字节(或字),或者第一个相等的字节(或字)。 CMPSB ;((SI))-((DI)) (SI)(SI)±1,(DI)(DI)±1 CMPSW ;((SI))-((DI)) (SI)(SI)±2,(DI)(DI)±2 2.字符串扫描指令 SCASB , SCASW SCAS指令的功能 用由指令指定的关键字节或关键字(分别存放在AL及AX 寄存器中),与附加段中由DI间接寻址的字节串(或字串)中的一个字节(或字)进行比较操作,使比较的结果影响标志位,然后根据方向标志DF及所进行操作的数据类型(字节或字) 对DI进行修改,在指令重复前缀REPE/REPZ或REPNE/REPNZ的控制下,可在指定的数据串中搜索第一个与关键字节(或字)匹配的字节(或字),或者搜索第一个与关键字节(或字)不匹配的字节(或字)。 SCASB , SCASW 例:在附加段中有一个字符串,存放在以符号地址MESS2开始的区域中,长度为17,要求在该字符串中搜索空格符(ASCII码为20H)。 实现上述功能的程序段如下: LEA DI,MESS2 ;装入目的串偏移地址 MOV AL,20H ;装入关键字节 MOV CX,17 ;装入字符串长度 REPNE SCASB STOS指令的功能 把指令中指定的一个字节或一个字(分别存放在AL及AX寄存器中),传送到附加段中由DI间接寻址的字节内存单元(或字内存单元)中去,然后,根据方向标志DF及所进行操作的数据类型(字节或字)对DI进行修改操作。在指令重复前缀的控制下,可连续将AL(AX)的内容存入到附加段中的一段内存区域中去,该指令不影标志位。 LODS指令的功能 从串中取数据,实现从指定的字节串(或字串)中读出信息的操作 例5 要对附加段中从MESS2开始的5个连续的内存字节单元进行清0操作,可用下列程序段实现: LEA DI,ESS2 ;装入目的区域偏移地址 MOV AL,00H ;为清零操作准备 MOV CX,5 ;设置区域长度 REP STOSB * * 4. 串操作指令 (数据块操作指令) 用途:用一条指令实现对一串字符或一块内存数据的读写操作 8086/8088指令系统为文本处理提供了一组强有力的指令(字符串处理指令),对一系列含有字母数字代码的字节(也称字符串)进行处理,例如传送、比较、查找、插入、删除等,字符串指令为这些处理提供了很大方便。字符串指令的寻址方式只用隐含寻址,源串固定使用SI,目的串固定使用DI。 写字节串到内存 写字串到内存 STOSB STOSW 读字节串到累加器 读字串到累加器 LODSB LODSW 影响标志寄存器 字节串搜索 字串搜索 SCANSB SCANSW 影响标志寄存器 字节串比较 字串比较 CMPSB CMPSW 字节串传送 字串传送 MOVSB MOVSW 备注 功能 指令 类型 指令特点: 1、串操作指令的源操作数和目的操作数都可以在内存单元 里。指令不显式指明操作数,遵循以下默认的寻址方式: 源操作数用SI寄存器在DS段内间接寻址; 目的操作数用DI寄存器在ES段内间接寻址。 2、每条指令执行一次,但可以通过加重复前缀来重复执行, 并自动修改SI和DI指针,以实现串操作或数据块操作。重复 次数由CX决定。 地址指针的修改方向由方向标志DF决定: DF=1,每执行一次,SI和DI自动减1(字节)或减2(字); DF=0,每执行一次,SI和DI自动加1(字节)或加2(字); 每执行一次,CX自动减1 重复前缀:REP 无条件重复,直到CX减为0

文档评论(0)

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

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

1亿VIP精品文档

相关文档