




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
字符串處理指令字符串:一系列存放在存儲器中的字或字節數據,不管他們是不是ASCII碼。字符串長度可達64K字節,組成字符串的字節或字稱為字符串元素,每種字符串指令對字符串對字符串元素只進行同一種操作。8086提供5條1字節的字符串操作指令,專門對存儲器中的字節串和字串數據進行傳送、比較、掃描、存儲及裝入等5種操作。使用字符串操作指令時,可以有兩種方法告訴匯編程序是進行字節操作還是字操作。一種方法是用指令中的源串和目的串名來表明是字節還是字,另一種方法是在指令助記符后加B說明是字節,加W說明是字操作。這樣每種指令都有3種格式。字符串傳送,MOVS目的串,源串MOVSBMOVSW字符串比較,CMPS目的串,源串CWPSBCMPSW字符串掃描,SCAS目的串SCASBSCASW字符串裝入,LODS源串LODSBLODSW字符串存儲,STOS目的串STOSBSTOSW字符串指令執行時,必須遵守以下隱含約定:源串位于當前數據段,由DS尋址,源串的元素由SI作指針,即源串字符的起始地址為DS:SI。源串允許使用段超越前綴來修改段地址。目的串必須位于當前的附加段中,由ES尋址,目的串元素由DI做指針,即目的串字符的首地址為ES:DI,但目的串不允許使用短超越前綴修改ES。如果要在同一段內進行串運算,必須使DS和ES指向同一段。每執行一次字符串指令,指針SI和DI會自動進行修改,以便指向下一待操作單元。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清零。要處理的字符串長度(字或字節數)放在CX寄存器中。為了加快串運算指令的執行速度,可在基本指令前加重復前綴,是數據傳指令重復執行。每重復執行一次,地址指針SI和DI都根據方向標志自動進行修改,CX的值則將自動減1.能與基本指令配合使用的重復前綴有:REP無條件重復REPE\REPZ相等\結果為零則重復REPNE\REPNZ不相等\結果不為零則重復無條件重復指令REP常與傳送指令(MOVS)連用,連續進行字符串傳送操作,直到整個字符串傳送完畢,CX=0為止。重復前綴REPE和REPZ具有相同的含義,它們常與串比較指令(CMPS)連用,用于字符串比較操作。當兩個字符串相等(ZF=1)和CX0時,則進行重復比較,直到ZF=0或CX=0為止。重復前綴REPNE和REPNZ也具有相同的意義,它們常與串掃描指令(SCAS)連用,當結果非零時(ZF=0)和CX0時,重復進行,直到ZF=1或CX=0為止。帶有重復前綴的串運算時間可能很長,在指令執行過程中允許有中斷進入,因此在處理每個元素之前都在查詢是否有中斷請求,一旦外部有中斷進入,CPU將暫停執行當前的串操作指令,轉去執行相應得中斷服務程序,使中斷服務完成后,再去執行被中斷的串操作指令。分別介紹:MOVS字符串操作指令指令格式:MOVS目的串,源串指令功能:把由SI指針的源串中的一個字節或一個字傳送到由DI作指針的目的串中,且自動修改指針SI和DI在實際應用中,人們經常需要在存儲單元之間傳送數據。然而,MOVS指令不能直接在存儲單元之間傳送數據,為了實現這種操作,必須以某一通用寄存器為橋梁,先把一個存儲單元的數據送到指定的通用寄存器中,再把寄存器中的數據傳送到另一個存儲單元中,每進行一次傳送操作,還必須修改地址指針。如果改用MOVS指令,便能方便地實現這種功能,它不但能把數據從內存中的某一地址傳送到另一地址,還能自動修改源和目的地址。若使用重復前綴,還可以利用一條指令傳送一批數據。例要求把數據段中以SRC_MESS為偏移地址的一串字符“HELLO!"傳送到附加段中以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指向目的串偏移地址MOVCX,6;CX作串長度計數器CLD;清方向標志,地址增量REPMOVSB;重復傳送串中的各字節,直到CX=0為止CODEENDSENDSTART例中的REPMOVSB也可用指令代替:AGAIN:MOVSNEW_LOC,SRC_MESSDECCXJNZAGAIN比較這兩種方法,顯然可以發現,使用有重復前綴REP的MOVSB指令,程序更簡潔。2/CMPS字符串比較指令指令格式:CMPS目的串,源串指令功能:從S
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 采購合同執行與監督協議
- 沿海地區海島采砂資源合作開發合同
- 水文地質測繪成果保密及授權使用合同
- 茶園旅游民宿開發與承包經營合同
- 年終考核總結2025年(16篇)
- 公司承攬合同管理制度
- 公安單身民警管理制度
- 2025年文藝部工作計劃(16篇)
- 2025年安全員述職報告(16篇)
- 軟件測試中如何考慮可維護性問題試題及答案
- 初中畢業證書怎么查詢電子版
- YY/T 1293.4-2016接觸性創面敷料第4部分:水膠體敷料
- 2023年山西文旅集團云游山西股份有限公司招聘筆試模擬試題及答案解析
- 關于生活老師現實表現總結簡述(精選6篇)
- 公務員轉任情況登記表
- 企業組織架構表
- 氣象檢測器實測項目質量檢驗報告單
- 揚塵污染控制工作臺帳(揚塵防治全套資料)
- 各科室臨床路徑(衛生部)2022
- 學習宣傳貫徹反有組織犯罪法工作經驗材料
- 大學生德育論文范文3000字
評論
0/150
提交評論