版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Chapter8Processingstringdata处理串数据Textbook:11Processingstringdata8086SymbolicinstructionsAlistofthesymbolicinstructionsfortheIntelprocessorfamilyarrangedbycategory.①DataTransfer
数据传送类指令②ArithmeticandLogical算术、逻辑运算类指令③BitShifting
位操作类指令④StringOperation
串操作类指令⑤Transfer(ConditionalandUnconditional)控制转移类指令⑥ProcessorControl
处理机控制类指令Processingstringdata处理串数据7.1Textbook:11ProcessingstringdataoutlineREP:
repeatstringprefix
(重复前缀)MOVS: movestring
LODS: loadstringSTOS: StorestringCMPS:
Comparesbyte,wordordouble-wordlocations.SCAS:
ComparesthecontentsoftheAL,AX,orEAXwiththecontentsofamemorylocation.INS: TransfersabytefromporttomemoryOUTS: Transfersabytefrommemorytoport.MOVinstruction(move)TheMOVinstructiontransfers(orcopies)data
referencedbytheaddressinthesecondoperandtotheaddressinthefirstoperand.Format:从源操作数地址把一个字节、字或双字复制到目的操作数地址,存放在源地址的值不会改变。比如C语言中赋值语句intcount=0;[label:]MOVreg/mem,reg/mem/imm;reg/mem←reg/mem/immValidMOVOperationsByteflddb?;DefineabyteWordflddb?;Defineaword1)RegisterMovesmovdx,cx;register-to-registermoves,ax;register-to-segmentregistermovbytefld,dh;Register-to-memory,directmov[bx],al;register-to-memory,indirectExamplesFeaturesofstringoperationsAstringinstructioncanspecifytherepetitiveprocessingbyte,word,ordouble-wordatatime.串操作指令可以指定每次以字节/字/双字的形式操作。(Featuresofstringoperations)ForthestringinstructionsMOVS,STOS,CMPS,andSCAS,besurethatyour.EXEprogramsinitializetheESregister.ESregisterusually,butnotnecessarily,withthesameaddressasthatintheDSregister:
使用串操作指令MOVS/STOS/CMPS/SCAS时,需要初始化ES寄存器。ES常与DS有相同的值。(Featuresofstringoperations)ESregisterusually,butnotnecessarily,withthesameaddressasthatintheDSregister:
MOVAX,@data;getaddressofdatasegmentMOVDS,AX
;storeitinDSMOVES,AX;andinES简化段定义中给ES赋值实例,完整段定义中?Examples(Featuresofstringoperations)ForstringinstructionsusethesuffixesB,W,andDforhandlingbyte,word,ordouble-wordstring.串操作指令可以使用后缀B/W/D来表示字节/字/双字操作。(Featuresofstringoperations)Therearebasicallytwowaystocodestringinstructions:
(两种串操作编程方式)Wherethedefinitionoftheoperandsindicatesthelength
(通过操作数的长度定义)
Codetheinstructionwithoutoperands(无操作数)LEADI,BYTE2
;addressofbyte2LEASI,byte1;addressofbyte1MOVSB
;movebyte2tobyte1MOVSbyte1,byte2Examples(Featuresofstringoperations)REPrepeatstringprefix7.2REP:repeatstringprefixTheREPprefiximmediatelybeforeastringinstruction(anystring-instructionexceptingLOADS)providesforrepeatedexecutionbasedonaninitialcountthatyousetintheCXregister.
Format:REPstring-primitive
Suchas:REPMOVSBREP的位置:在除LOADS的其它串指令之前,重复操作次数由CX值确定。REP:repeatstringprefixREPexecutesthestringinstructionCXCX-1,and
repeatsthisoperationuntilCX=0.REP功能:每执行一次串操作,CX<-CX-1,直至CX=0Prepare:SISourcestringfirstaddress(orendaddress)源串首地址DIDestinationstringfirstaddress
(orendaddress)
目的串首地址CXString-lengthcount串长度Setdirectionflag(D).传送方向(REP:repeatstringprefix)使用REP时的预备工作(REP:repeatstringprefix)DirectionflagD:Determinesthedirectionofarepeatedoperation. Justusedinstringinstruction;
MakeDI、SI:auto-increment(增)
when
(D=0)
or
auto-decrement
(减)
when(D=1)方向标志D用于确定操作的方向,在串操作中使DI/SI自动递增或递减。(REP:repeatstringprefix)2Directionflagcontrolinstruction:
CLD
ClearDirectionflagD(D=0)Selectauto-increment
STD
SetDirectionflagD(D=1)Selectauto-decrementDATASTR1DB25DUP(‘*’);sendingfieldDATASTR2DB25DUP(‘‘);receivingfield…CLD;cleardirectionflagMOVCX,25;initializefor25byteLEADI,DATASTR2;initializereceivingLEASI,DATASTR1;initializesendingaddress
REPMOVSB;copydatastr1todatastr2Equivalent:L1:MOVAX,[SI];getbytefromDATASTR1MOV[DI],AX;storebyteinDATASTR2INCSI;incrementfornextbyteINCDILOOPL1;decrementCXandrepeatExamples:REP使用例程1定义方向2定义传送数量3定义源/目的串偏移量4串操作指令Examples(REP:repeatstringprefix)REPRepeatoperation,untilCX=0.REPE/REPZ
Repeatwhileequal/zero,
Stopwhennotequal/zero
or
CX=0.REPNE/REPNZ
Repeatwhilenotequal/zero,
Stopwhenequal/zero
or
CX=0.MOVS7.4MOVS:movestringinstructionMOVS;memorymemoryES:[DI]byte,word,double-word(DS:[SI])
+or–DIandSI
,dependingondirectionflagD(MOVS:movestringinstruction)MOVSLODS7.4LODS:loadstringinstructionLODS;AL(orAX,orEAX)memory
;(AL)
/(AX)/(EAX)(DS:[SI])
(noteffectDI,notuseREP)功能:将内存单元的数据放入AL/AX中,不涉及DI,不使用REP(LODS:loadstringinstruction)(LODS:loadstringinstruction)DataSegmentFigure12-LODSWinstructionoperation(D=0)STOS7.5STOS:StorestringinstructionSTOS;memoryAL(orAX,orEAX);(ES:[DI]) (AL)
/(AX)/(EAX)
(noteffectSI)功能:将AL/AX的数据放入内存单元中,不涉及SI(STOS:Storestringinstruction)(STOS:Storestringinstruction)CMPS7.6CMPS:ComparestringinstructionComparesbyte,wordordouble-wordmemorylocations.memorymemory (DS:[SI])) (ES:[DI])+or–DIandSI
,dependingondirectionflagD.TosetA,C,O,P,S,andZflags.比较一段内存单元的内容
(DS:[SI])<->(ES:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中央空调工程安装合同标准版可打印
- 年度核燃料元件及组件市场分析及竞争策略分析报告
- 年度硬面堆、药芯焊线战略市场规划报告
- 年度钟表与计时仪器竞争策略分析报告
- 二零二五年度特种吊车租赁与运输服务合同3篇
- 二零二五版高管劳动合同样本:股权激励与竞业禁止条款3篇
- 二零二五年空调销售与节能产品认证合同3篇
- 2025年度城市绿地养护及植物配置优化合同4篇
- 2025年度私人诊所与患者之间的远程医疗服务合同
- 2024版简易协议管理软件解决方案一
- 2024年智能科技项目开发战略合作框架协议
- 精神科健康宣教手册-各种精神疾病宣教
- 人才交流中心聘用合同模板
- 腾讯云人工智能工程师认证考试题(附答案)
- 2024版新能源汽车充电桩建设与运营合作框架协议3篇
- 挂靠免责协议书范本
- 广东省广州市天河区2023-2024学年高一上学期期末考试数学试卷(解析版)
- 钢构楼板合同范例
- 四年级全一册《劳动与技术》第四单元 活动4《饲养动物的学问》课件
- 2024-2025学年人教版(2024)信息技术四年级上册 第11课 嘀嘀嗒嗒的秘密 说课稿
- 2024中考物理真题汇编:电与磁(含解析)
评论
0/150
提交评论