




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、重復前綴:REP REPE/REPZ REPNE/REPNZ數(shù)據(jù)串傳送指令MOVS數(shù)據(jù)串比較指令CMPS字符串掃描指令SCAS取數(shù)據(jù)串指令LODS存數(shù)據(jù)串指令STOS串操作指令串操作指令串操作指令可實現(xiàn)串操作,即對內(nèi)存中連續(xù)地址的字節(jié)、字或雙字進行處理,如將一個數(shù)據(jù)塊從一處搬至存儲器的另一處,比較兩個字符串是否相等,從一個數(shù)據(jù)塊尋找某一個特定的關鍵字,順次從一個存儲器取數(shù)或順次向一個存儲器存數(shù)等。當串操作指令執(zhí)行后,能自動修改地址指針,為下一次操作做好準備。串操作指令還可以在指令前加上重復前綴,使串操作重復進行,直到完成規(guī)定的次數(shù)為止。當處理長數(shù)據(jù)串時,采用這種方法比用軟件循環(huán)方法處理要快得多
2、,重復過程也可以根據(jù)規(guī)定條件來結束,也可以被中斷和恢復。 用SI寄存器尋址源操作數(shù)用DI寄存器尋址目的操作數(shù)源操作數(shù)隱含的段寄存器為DS,但允許段超越,目的操作數(shù)的段寄存器約定為ES,不允許段超越。每當串操作指令執(zhí)行后,可以自動實現(xiàn)源變址或目的變址,地址的增量可正可負,當方向標志位(DF)=0,地址增量為正;當(DF)=1時,地址增量為負,地址增量的大小取決于串操作數(shù)的類型,當操作數(shù)為字節(jié)屬性時,地址增量為1,當操作數(shù)為字屬性時,地址增量為2串操作指令特點串操作流程圖串操作指令常常和重復前綴一齊使用重復前綴有REP、REPZ/REPE、REPNZ/REPNE,其中REP為無條件重復前綴重復次數(shù)
3、由CX中存放的值決定,指令每重復執(zhí)行一次,計數(shù)器CX中值減1,當CX中值減至0時,停止重復執(zhí)行,繼續(xù)執(zhí)行下一條指令。 重復前綴指令(1)REP REP前綴用在MOVS、STOS 、LODS指令前。功能:每執(zhí)行一次串指令(CX)1,直到(CX)=0,重復執(zhí)行結束。(2)REPZ 該指令一般用在CMPS、SCAS指令前。功能:每執(zhí)行一次串指令(CX)1,并判斷ZF標志是否為0,只要(CX)=0或ZF=0,則重復執(zhí)行結束。(3)REPNZ 該指令一般用在CMPS、SCAS 指令前。功能:每執(zhí)行一次串指令(CX)1,并判斷ZF標志是否為0,只要(CX)=0或ZF=1,則重復執(zhí)行結束。重復前綴指令MOV
4、S 目的串,源串MOVSBMOVSW功能:將DS:SI所規(guī)定的源數(shù)據(jù)串中的字節(jié)、字傳送至目的串,目的串的地址由ES:DI確定。每當指令執(zhí)行后,變址寄存器SI、DI將依據(jù)傳送的操作數(shù)類型自動變址,其變址值可為1,2,分別對應于字節(jié)、字傳送?!?”、“”號由DF標志位的值確定,當DF=0,變址取“”,當DF=1,變址取“”。數(shù)據(jù)串傳送指令數(shù)據(jù)串傳送指令將一個字節(jié)/字從 DS:SI ES:DI指令前要先將源串首地址 DS:SI 目標串首地址 ES:DI完成操作后自動修改SI、DI,使其指向串的下一個元素串操作方向由CLD和STD指令設置CLD 地址遞增方向(DF=0)STD 地址遞減方向(DF=1)
5、串傳送重復前綴需要先將串的長度存入CX寄存器每處理完一個元素自動使CX-1,直到CX=0才結束串傳送完成整個串的傳送REP MOVSBREP MOVSWMOV SI, OFFSET S1MOV DI, OFFSET S2MOV CX, 18REP MOVSB.S1 DB “This is a string!$”S2 DB 18 DUP(0)String1.asm使用方法1、把存于數(shù)據(jù)段中的源串首/末地址放入SI寄存器2、把將要存放數(shù)據(jù)串的附加段的首/末地址放入DI寄存器3、把串長放入CX寄存器4、建立方向標志(cld std)5、使用串指令傳送數(shù)據(jù)在數(shù)據(jù)段中有一個字符串,長度為17,要求把它們
6、傳送到附加段中的一個緩沖區(qū)String2.asmdata segment mess1 db personal computer $data endsextra segment mess2 db 17 dup(0)extra ends例code segment assume cs:code,ds:data,es:extramain proc far mov ax,data mov ds,ax mov ax,extra mov es,ax, lea si,mess1 lea di,mess2 mov cx,17 cld rep movsb mov ah,4ch int 21main endpcod
7、e endsend mainCMPS 源串,目的串CMPSB字節(jié)串比較CMPSW字串比較功能:將SI所指的源串中的一個字節(jié)(或字)存儲單元中的數(shù)據(jù)與DI所指的目的串中的一個字節(jié)(或字)存儲單元中的數(shù)據(jù)相減,并根據(jù)相減的結果設置標志,但結果并不保存。(SI)(DI)。 修改串指針,使之指向串中的下一個元素。當DF=0時,(SI)和(DI)增量。當DF=1時,(SI)和(DI)減量。串比較指令源操作數(shù)的邏輯地址為DS:SI,可以段超越,目的操作數(shù)的邏輯地址為ES:DI。比較指令執(zhí)行后,變址寄存器SI、DI會自動變址,地址是增還是減,由DF標志位來確定,指令執(zhí)行時是將源操作數(shù)減去目的操作數(shù),該操作數(shù)
8、將影響AF、CF、OF、PF、SF和ZF標志指令前通常加重復前綴REPZ/REPE,從而當發(fā)現(xiàn)兩個串不同時結束比較。數(shù)據(jù)串比較指令MOV SI, OFFSET S1MOV DI, OFFSET S2MOV CX, xxREPZ CMPSBJNZ Not_EqualEqual: Not_Equal:.串搜索指令SCAS 目的串 SCASB字節(jié)串搜索 SCASW字串搜索功能:AL(字節(jié))或AX(字)中的內(nèi)容與DI所指的目的串中的一個字節(jié)(或字)存儲單元中的數(shù)據(jù)相減,根據(jù)相減結果設置標志位,結果不保存, 字節(jié)操作:(AL)(DI), 字操作:(AX)(DI)。 修改指針使之指向串中的下一個元素。當D
9、F=0時,(DI)增量。當DF=1時,(DI)減量。事先要將待搜索的元素存入AL/AX指令前通常加重復前綴REPNZ/REPNE,從而當發(fā)現(xiàn)待搜索的元素時結束搜索。從源串中取數(shù)指令LODS LODSB從字節(jié)串中取數(shù) LODSW從字串中取數(shù)功能:將SI所指的源串中的一個字節(jié)(或字)存儲單元中的數(shù)據(jù)取出來送入AL(或AX)中。即: 字節(jié)操作:(SI)AL, 字操作:(SI)AX。 修改指針SI,使它指向串中的下一個元素。當DF=0時,(SI)增量。當DF=1時,(SI)減量。 串裝入指令沒有重復前綴String3DATA SEGMENTSTRING DB ABCDEFGHIDATA ENDSCOD
10、E SEGMENTASSUME CS:CODE,DS:DATAMAIN PROC FARMOV AX,DATAMOV DS,AXLEA SI,STRINGMOV CX, 10MOV AH, 2NEXTCHAR: LODSBMOV DL, ALINT 21HLOOP NextCharMOV AH,01HINT 21HMOV AH,4CHINT 21HMAIN ENDPCODE ENDSEND MAIN例:將HEADG1緩沖區(qū)中的10個字節(jié),以反序的形式傳至HEADG2緩沖區(qū)中。String4.asm string42.asmdata segmentHEADG1 DB cybernauts$HEA
11、DG2 DB 10 DUP(20H),$data endscode segmentassume cs:code,ds:data,es:dataA10MAIN PROC NEAR CLD MOV CX,10 LEA SI,HEADG1 LEA DI,HEADG2+9A20: LODSB MOV DI,AL DEC DI LOOP A20 MOV AX,4C00H INT 21HA10MAIN ENDP END BEGINSTOS STOSB往字節(jié)串中存數(shù)(2)STOSW往字串中存數(shù)功能:將AL或AX中的數(shù)據(jù)送入DI所指的目的串中的字節(jié)(或字)存儲單元中。即: 字節(jié)操作:(AL)DI,字操作:(AX)DI。 修改指針DI,使之指向串中的下一個元素。當DF=0時,(DI)增量。當DF=1時,(DI)減量。存數(shù)據(jù)串指令例如把數(shù)據(jù)區(qū)的數(shù)據(jù)都清成空(即20H)。TITLE A12STOS(COM) MODLE
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 云計算資源共享平臺服務合同
- 綠色能源開發(fā)與儲備合作協(xié)議
- 黑龍江省齊齊哈爾市2025屆高考一模地理試卷(含答案)
- 鋼管買賣合同協(xié)議書
- 企業(yè)人力資源信息統(tǒng)計表
- 登鸛雀樓探究及其意境體驗:小學語文古詩教學教案
- 投資合同協(xié)議
- 《初中物理力學與電磁學探究活動》
- 中學生物理知識解讀的感悟
- 環(huán)境科學氣候變化與環(huán)境治理案例分析題集
- 婦產(chǎn)科學(甲)知到智慧樹章節(jié)測試課后答案2024年秋浙江大學
- 數(shù)字信號處理課后習題答案(吳鎮(zhèn)揚)
- 蜂膠表彰會中宏全國通用版模板課件
- 消化系統(tǒng)疾病PBL教學案例
- DBJ∕T 15-104-2015 預拌砂漿混凝土及制品企業(yè)試驗室管理規(guī)范
- 裝配式建筑疊合板安裝技術交底
- 2022年HTD-8M同步帶輪尺寸表
- 皮帶滾筒數(shù)據(jù)標準
- 腳手架操作平臺計算書
- 內(nèi)科學第八版循環(huán)系統(tǒng)教學大綱
- 煤礦供電系統(tǒng)及供電安全講座方案課件
評論
0/150
提交評論