指令系统(串操作类指令).ppt_第1页
指令系统(串操作类指令).ppt_第2页
指令系统(串操作类指令).ppt_第3页
指令系统(串操作类指令).ppt_第4页
指令系统(串操作类指令).ppt_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

第六节,串操作指令,定义,串指存储器中地址连续的若干单元字符或数据。,由多个字节数据组成的数据串称为字节数据串,简称字节串;由多个字数据组成的数据串称为字数据串,简称字串。组成数据串的字节数据或字数据称为数据串元素。若对数据串元素作同样的操作,就称为串操作。把能完成串操作功能的指令称为数据串操作指令或简称为串操作指令。,教学进程,基本的字符指令,1.,(1)串传送指令MOVS,指令功能:把位于数据段DS:SI中一个字节或字的数据传送到附加段ES:DI中。指令格式:MOVSB;传送字节数据MOVSW;传送字数据指令操作:字节操作:(DI)(SI),SI(SI)1,DI(DI)1字操作:(DI)(SI),SI(SI)2,DI(DI)2(方向标志DF=0时用;DF=1时用)本指令对标志位无影响,例414将数据段中首地址为SOURCE的100个字节串元素传送到附加段中首地址为DEST的内存单元中。实现该功能的程序段如下:CLD;使DF=0LEASI,SOURCE;SI指向源串LEADI,DEST;DI指向目的串MOVCX,100AGAIN:MOVSB;(DS:SI)ES:DI,;(SI)+1SI,(DI)+1DIDECCXJNZAGAINHLT,本例中MOVSB指令可用以下4条指令替代:MOVAL,SIMOVES:DI,ALINCSIINCDI,(2)串比较指令CMPS,指令功能:将ES:DI指定的单元的内容减去由DS:SI指定单元的内容,不送回结果,只影响标志位CF、PF、AF、ZF、SF和OF。指令格式:CMPSB;比较字节数据CMPSW;比较字数据指令操作:(DI)-(SI),根据比较结果置条件标志位:相等ZF=1,不等ZF=0字节操作:SI(SI)1,DI(DI)1字操作:SI(SI)2,DI(DI)2(方向标志DF=0时用;DF=1时用),例415检查数据段中首地址分别为STR1和STR2的两个长度为50的字节串是否相等。若相等,则(BX)=0;若不相等,则BX保存STR1中第1个不相同元素的偏移地址,并将该元素保存到AL中。实现该功能的程序段如下:,CLDMOVCX,50MOVAX,DSMOVES,AX;使附加段与数据段重叠LEASI,STR1LEADI,STR2LP1:CMPSB;(ES:DI)-(DS:SI),(SI)+1SI,(DI)+1DIJNZLP2DECCXJNZLP1MOVBX,0JMPDONELP2:DECSIMOVBX,SIMOVAL,SIDONE:HLT,(3),指令功能:AL或AX中的内容与附加段ES:DI所指的目的串中的一个字节(或字)的数据相减,并根据结果设置标志位,但结果不回送任何单元。指令格式:SCASB;比较字节数据SCASW;比较字数据指令操作:字节操作:(AL)(DI),DI(DI)1字操作:(AX)(DI),DI(DI)2(方向标志DF=0时用;DF=1时用),串扫描指令SCAS,指令功能:将DS:SI所指定的字节(或字)单元的内容取出来送入AL(或AX)中。指令格式:LODSB;存字节数据LODSW;存字数据指令操作:字节操作:AL(SI),SI(SI)1字操作:AX(SI),SI(SI)2(方向标志DF=0时用;DF=1时用),(4)串装入指令LODS,指令功能:将AL或AX中的数据送入ES:DI所指定的目标单元中。指令格式:STOSB;存字节数据STOSW;存字数据指令操作:字节操作:(DI)(AL),DI(DI)1字操作:(DI)(AX),DI(DI)2(方向标志DF=0时用;DF=1时用),(5)串存储指令STOS,指令功能:重复执行指令规定的操作,直到(CX)=0。指令格式:REPMOVS(B/W)或STOS(B/W)或LODS(B/W)指令操作:如(CX)=0则退出REP,否则转;(CX)(CX)1;执行其后的串操作指令;重复。,(1)无条件重复前缀REP,重复前缀,2.,(2),指令功能:重复执行指令规定的操作,每执行一次串指令(CX)1,并判断ZF标志是否为0,只要(CX)=0或ZF=0,则停止执行串操作指令。指令格式:REPE/REPZMOVS(B/W)或STOS(B/W)或LODS(B/W)指令操作:如(CX)=0或ZF=0则退出,否则转;(CX)(CX)1;执行其后的串操作指令;重复。,相等或为零时重复串前缀REPE/REPZ,例4-16比较首地址分别为STR1和STR2的两个长度为50的字节串,找出第一个不相等的字节(要求用REPZ指令实现)。若两串相同,则(BX)=0;若找到不相等的字节,则将STR1串中的这个数送到AL,基地址送BX中。,CLDMOVCX,100LEASI,STR1LEADI,STR2REPZCMPSBJZOVERDECSIMOVBX,SIMOVAL,SIJMPSTOPOVER:MOVBX,0STOP:HLT,(3),指令功能:重复执行指令规定的操作,每执行一次串指令(CX)1,并判断ZF标志是否为1,只要(CX)=0或ZF=1,则停止执行串操作指令。指令格式:REPNE/REPNZMOVS(B/W)或STOS(B/W)或LODS(B/W)指令操作:如(CX)=0或ZF=1则

温馨提示

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

评论

0/150

提交评论