字符串处理指令.doc

字符串处理指令.doc

ID:61929807

大小:44.50 KB

页数:5页

时间:2021-03-30

字符串处理指令.doc_第1页
字符串处理指令.doc_第2页
字符串处理指令.doc_第3页
字符串处理指令.doc_第4页
字符串处理指令.doc_第5页
资源描述:

《字符串处理指令.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、字符串处理指令字符串:一系列存放在存储器中的字或字节数据,不管他们是不是ASCII码。字符串长度可达64K字节,组成字符串的字节或字称为字符串元素,每种字符串指令对字符串对字符串元素只进行同一种操作。8086提供5条1字节的字符串操作指令,专门对存储器中的字节串和字串数据进行传送、比较、扫描、存储及装入等5种操作。使用字符串操作指令时,可以有两种方法告诉汇编程序是进行字节操作还是字操作。一种方法是用指令中的源串和目的串名来表明是字节还是字,另一种方法是在指令助记符后加B说明是字节,加W说明是字操作。这样每种指令都有3种格式。字符串传送,MOVS目的串

2、,源串MOVSBMOVSW字符串比较,CMPS目的串,源串CWPSBCMPSW字符串扫描,SCAS目的串SCASBSCASW字符串装入,LODS源串LODSBLODSW字符串存储,STOS目的串STOSBSTOSW字符串指令执行时,必须遵守以下隐含约定:(1)源串位于当前数据段,由DS寻址,源串的元素由SI作指针,即源串字符的起始地址为DS:SI。源串允许使用段超越前缀来修改段地址。(2)目的串必须位于当前的附加段中,由ES寻址,目的串元素由DI做指针,即目的串字符的首地址为ES:DI,但目的串不允许使用短超越前缀修改ES。如果要在同一段内进行串运算

3、,必须使DS和ES指向同一段。(3)每执行一次字符串指令,指针SI和DI会自动进行修改,以便指向下一待操作单元。(4)DF标志控制字符的处理方向。DF=0为递增方向,这时DS:SI指向源串首地址,每进行一次串操作,使SI和DI增加,字节串操作时,SI和DI分别增1,字串操作时,SI和DI分别增2,;DF=1为递减方向,这时,DS:SI指向源串末地址,每执行一次串操作,使SI和DI分别减量,字节串操作时减1,字串操作时减2.可用标志操作指令STD和CLD来改变DF的值,STD使DF置1,CLD使DF清零。(5)要处理的字符串长度(字或字节数)放在CX寄

4、存器中。为了加快串运算指令的执行速度,可在基本指令前加重复前缀,是数据传指令重复执行。每重复执行一次,地址指针SI和DI都根据方向标志自动进行修改,CX的值则将自动减1.能与基本指令配合使用的重复前缀有:REP无条件重复REPEREPZ相等结果为零则重复REPNEREPNZ不相等结果不为零则重复无条件重复指令REP常与传送指令(MOVS)连用,连续进行字符串传送操作,直到整个字符串传送完毕,CX=0为止。重复前缀REPE和REPZ具有相同的含义,它们常与串比较指令(CMPS)连用,用于字符串比较操作。当两个字符串相等(ZF=1)和CX0时,则

5、进行重复比较,直到ZF=0或CX=0为止。重复前缀REPNE和REPNZ也具有相同的意义,它们常与串扫描指令(SCAS)连用,当结果非零时(ZF=0)和CX0时,重复进行,直到ZF=1或CX=0为止。带有重复前缀的串运算时间可能很长,在指令执行过程中允许有中断进入,因此在处理每个元素之前都在查询是否有中断请求,一旦外部有中断进入,CPU将暂停执行当前的串操作指令,转去执行相应得中断服务程序,使中断服务完成后,再去执行被中断的串操作指令。分别介绍:1.MOVS字符串操作指令指令格式:MOVS目的串,源串指令功能:把由SI指针的源串中的一个字节或一个字传

6、送到由DI作指针的目的串中,且自动修改指针SI和DI在实际应用中,人们经常需要在存储单元之间传送数据。然而,MOVS指令不能直接在存储单元之间传送数据,为了实现这种操作,必须以某一通用寄存器为桥梁,先把一个存储单元的数据送到指定的通用寄存器中,再把寄存器中的数据传送到另一个存储单元中,每进行一次传送操作,还必须修改地址指针。如果改用MOVS指令,便能方便地实现这种功能,它不但能把数据从内存中的某一地址传送到另一地址,还能自动修改源和目的地址。若使用重复前缀,还可以利用一条指令传送一批数据。例要求把数据段中以SRC_MESS为偏移地址的一串字符“HEL

7、LO!"传送到附加段中以NEW_LOC开始的单元中。实现该操作的程序如下:DATASEGMENT;数据段SRC_MESSDB"HELLO!";源串DATAENDS;EXTRASEGMENT;附加段NEW_LOCDB6DUP(?);存放目的串EXTRAENDS;CODESEGMENT;代码段ASSUMECS:CODE,DS:DATA,ES:EXTRASTART:MOVAX,DATAMOVDS,AN;DS=数据段段址MOVAX,EXTRAMOVES,AX;ES=附加段段址LEASI,SRC_MESS;SI指向源串偏移地址LENDI,NEW_LOC;DI指

8、向目的串偏移地址MOVCX,6;CX作串长度计数器CLD;清方向标志,地址增量REPMOVSB;重复传送串中

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。