版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
Chapter8Processingstringdata處理串數(shù)據(jù)Textbook:11Processingstringdata8086SymbolicinstructionsAlistofthesymbolicinstructionsfortheIntelprocessorfamilyarrangedbycategory.①DataTransfer
數(shù)據(jù)傳送類指令②ArithmeticandLogical算術、邏輯運算類指令③BitShifting
位操作類指令④StringOperation
串操作類指令⑤Transfer(ConditionalandUnconditional)控制轉移類指令⑥ProcessorControl
處理機控制類指令Processingstringdata處理串數(shù)據(jù)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:從源操作數(shù)地址把一個字節(jié)、字或雙字復制到目的操作數(shù)地址,存放在源地址的值不會改變。比如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.串操作指令可以指定每次以字節(jié)/字/雙字的形式操作。(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來表示字節(jié)/字/雙字操作。(Featuresofstringoperations)Therearebasicallytwowaystocodestringinstructions:
(兩種串操作編程方式)Wherethedefinitionoftheoperandsindicatesthelength
(通過操作數(shù)的長度定義)
Codetheinstructionwithoutoperands(無操作數(shù))LEADI,BYTE2
;addressofbyte2LEASI,byte1;addressofbyte1MOVSB
;movebyte2tobyte1MOVSbyte1,byte2Examples(Featuresofstringoperations)REPrepeatstringprefix7.2REP:repeatstringprefixTheREPprefiximmediatelybeforeastringinstruction(anystring-instructionexceptingLOADS)providesforrepeatedexecutionbasedonaninitialcountthatyousetintheCXregister.
Format:REPstring-primitive
Suchas:REPMOVSBREP的位置:在除LOADS的其它串指令之前,重復操作次數(shù)由CX值確定。REP:repeatstringprefixREPexecutesthestringinstructionCXCX-1,and
repeatsthisoperationuntilCX=0.REP功能:每執(zhí)行一次串操作,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定義傳送數(shù)量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)功能:將內(nèi)存單元的數(shù)據(jù)放入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的數(shù)據(jù)放入內(nèi)存單元中,不涉及SI(STOS:Storestringinstruction)(STOS:Storestringinstruction)CMPS7.6CMPS:ComparestringinstructionComparesbyte,wordordouble-wordmemorylocations.memorymemory (DS:[SI])) (ES:[DI])+or–DIandSI
,dependingondirectionflagD.TosetA,C,O,P,S,andZflags.比較一段內(nèi)存單元的內(nèi)容
(DS:[SI])<->(ES:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 分析儀器在液體食品質(zhì)量分析的應用考核試卷
- 專業(yè)知識的學習與價值創(chuàng)造考核試卷
- 合成革的綠色生產(chǎn)與品牌建設考核試卷
- ??漆t(yī)院護理志愿者服務管理知識考核試卷
- 辦公室項目管理進度控制考核試卷
- 印刷設備智能化生產(chǎn)計劃的設計考核試卷
- 食品創(chuàng)新與創(chuàng)意課程設計
- 機械制造課程設計緒論
- 鄭州環(huán)境監(jiān)測課程設計
- 身邊的科學主題課程設計
- 2024年采購代發(fā)貨合作協(xié)議范本
- 2024年業(yè)績換取股權的協(xié)議書模板
- 顳下頜關節(jié)疾?。谇活M面外科學課件)
- 工業(yè)自動化設備維護保養(yǎng)指南
- 2024人教新版七年級上冊英語單詞英譯漢默寫表
- 《向心力》參考課件4
- 2024至2030年中國膨潤土行業(yè)投資戰(zhàn)略分析及發(fā)展前景研究報告
- 2024年深圳中考數(shù)學真題及答案
- 土方轉運合同協(xié)議書
- Module 3 Unit 1 Point to the door(教學設計)-2024-2025學年外研版(三起)英語三年級上冊
- 智能交通信號燈安裝合同樣本
評論
0/150
提交評論