第3章-4串操作指令_第1页
第3章-4串操作指令_第2页
第3章-4串操作指令_第3页
第3章-4串操作指令_第4页
第3章-4串操作指令_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章指令系统

串操作指令9/11/202313.3.4串操作指令串操作指令用来处理存放在存储器中的一串字符或数据。数据串可以是字节串或字串。串可以是数值(二进制/BCD码),字母或数字(ASCII码)。数据串在内存中连续存放,以首地址、数据个数,数据类型等来表达。数据串长度的最大值为64K字节。9/11/202321.串传送指令MOVS(1)字节串传送 MOVSB;[DI]←[SI] SI←SI±1;DI←DI±1其中:①目标操作数约定为内存DI寻址(约定段ES),源操作数约定为内存SI寻址(约定段DS),

且都是隐含的。即DS:SI指向的字节串传送到ES:DI指向的内存区。

②+/-由DF(方向标志)确定,

若DF=0,从低地址向高地址方向处理,SI,DI增加

DF=1,从高地址向低地址方向处理,SI,DI减小不影响标志位9/11/202331.串传送指令MOVS(2)字串传送

MOVSW ;[DI]←[SI] [DI±1]←[SI±1] SI←SI±2 DI←DI±2 或写成:

MOVS目标串,源串注意:MOVS与MOV指令不同,可以实现内存单元之间的数据传送。9/11/202342.串比较指令

CMPSB ; [SI]-[DI]

CMPSW SI←SI±1/±2(B/W) DI←DI±1/±2 或:CMPS源串,目标串

相减结果:影响所有标志位,自动修改SI、DI。

作用:比较内存中两个字符串是否相等。若相同,则ZF=1。9/11/202353.串搜索(串扫描)指令

SCAS目标串

;AL-[DI](B)SCASB/SCASW

;AX-[DI](W) DI←DI±1/±2其中:源——AL或AX,隐含的,关键字目标——内存DI寻址(ES),隐含

作用:在字符串中搜索有否与AL或AX中相同的字符。9/11/202364.读串(串装入)指令

LODS源串;

AL←[SI] (B)

LODSB/LODSW

;AX←[SI] (W) SI←SI±1/2(B/W)其中:目的——AL或AX,隐含

源——内存SI寻址(DS),隐含

不影响标志位

一般不使用重复前缀。9/11/202375.写串(串存入)指令 STOS目标串;[DI]←AL(B) STOSB/STOSW

;[DI]←AX(W) DI←DI±1/±2(B/W)不影响标志位。9/11/202386.重复前缀指令重复指令:REP/REPE/REPNE/REPZ/REPNZ重复前缀指令格式:REP串指令

(1)是否重复受到隐含的计数器CX的控制。每执行一次串操作,计数器CX减1计数,直到CX=0为止。(2)CX:计数器的初值为字节个数或字个数(3)不影响标志位。

9/11/20239重复前缀指令REP前缀指令用在MOVS、LODS、STOS指令前。

REPMOVS REPLODS REPSTOS9/11/202310(2)有附加条件的重复前缀指令①附加条件为ZF=‘1’的重复前缀指令

REPE串指令;相同则重复 或REPZ串指令重复条件:

·CX≠0·ZF=1不影响标志位9/11/202311(2)有附加条件的重复前缀指令 ② 附加条件为ZF=‘0’的重复前缀指令

REPNE串指令;不同则重复 或 REPNZ串指令

重复条件:·CX≠0·ZF=0

REPE/REPZ CMPS;当两个串有不同时退出重

CMPSB

复。用来搜索与给定值不同

CMPSW

的内容。REPNE/REPNZ SCAS;当在字符串找到与AL或AX SCASB中字符相同的字符时退出重

SCASW

复。用来搜索与给定值相同

的内容。9/11/202312串操作的小结操作数为内存操作数或寄存器操作数:隐含的、约定的。内存操作数:源串:DS:[SI]目的:ES:[DI]寄存器操作数:字节:AL;字:AX初始化:SI和DI的初始化方向标志的初始化:CLD;/STD;计数器CX的初始化关键字(AL/AX)的初始化(如果有的话)9/11/202313例3.30串操作

串TAB1:字串,5个字,移到TAB2区解1:LEASI,TAB1LEADI,TAB2MOVCX,5CLD;令DF=0,“+”REPMOVSW

解2:LEASI,TAB1+8LEADI,TAB2+8MOVCX,5

STD;令DF=1,“-”REPMOVSW9/11/202314例3.30串操作解3:LEASI,TAB1LEADI,TAB2MOVCX,10CLD;令DF=0,“+”REPMOVSB9/11/202315例3.31串操作

查串TAB中有无‘A’,找到则…..LEADI,TABMOVAL,41HMOVCX,4CLD;令DF=0,“+”REPNZSCASB;AL-ES:[DI];ZF=?;CX=?

TABCXZF结果12340NZ(ZF=0)找完,未找到

123‘A’0ZF=1找完,找到12‘A’41ZF=1未找完,找到1‘A’342ZF=1未找完,找到‘A’2343ZF=1未找完,找到9/11/202316例3.32串操作

将1000H单元开始的100个存储单元全部清零。

MOVDI,1000HMOVCX,0032H;50个字CLD;令DF=0,“+”MOVAX,0REPSTOSW9/11/202317串操作举例例:在ES段中从1000H开始有10个ASCII

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论