版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、重復(fù)前綴:REP REPE/REPZ REPNE/REPNZ數(shù)據(jù)串傳送指令MOVS數(shù)據(jù)串比較指令CMPS字符串掃描指令SCAS取數(shù)據(jù)串指令LODS存數(shù)據(jù)串指令STOS串操作指令串操作指令串操作指令可實(shí)現(xiàn)串操作,即對內(nèi)存中連續(xù)地址的字節(jié)、字或雙字進(jìn)行處理,如將一個數(shù)據(jù)塊從一處搬至存儲器的另一處,比較兩個字符串是否相等,從一個數(shù)據(jù)塊尋找某一個特定的關(guān)鍵字,順次從一個存儲器取數(shù)或順次向一個存儲器存數(shù)等。當(dāng)串操作指令執(zhí)行后,能自動修改地址指針,為下一次操作做好準(zhǔn)備。串操作指令還可以在指令前加上重復(fù)前綴,使串操作重復(fù)進(jìn)行,直到完成規(guī)定的次數(shù)為止。當(dāng)處理長數(shù)據(jù)串時,采用這種方法比用軟件循環(huán)方法處理要快得多
2、,重復(fù)過程也可以根據(jù)規(guī)定條件來結(jié)束,也可以被中斷和恢復(fù)。 用SI寄存器尋址源操作數(shù)用DI寄存器尋址目的操作數(shù)源操作數(shù)隱含的段寄存器為DS,但允許段超越,目的操作數(shù)的段寄存器約定為ES,不允許段超越。每當(dāng)串操作指令執(zhí)行后,可以自動實(shí)現(xiàn)源變址或目的變址,地址的增量可正可負(fù),當(dāng)方向標(biāo)志位(DF)=0,地址增量為正;當(dāng)(DF)=1時,地址增量為負(fù),地址增量的大小取決于串操作數(shù)的類型,當(dāng)操作數(shù)為字節(jié)屬性時,地址增量為1,當(dāng)操作數(shù)為字屬性時,地址增量為2串操作指令特點(diǎn)串操作流程圖串操作指令常常和重復(fù)前綴一齊使用重復(fù)前綴有REP、REPZ/REPE、REPNZ/REPNE,其中REP為無條件重復(fù)前綴重復(fù)次數(shù)
3、由CX中存放的值決定,指令每重復(fù)執(zhí)行一次,計(jì)數(shù)器CX中值減1,當(dāng)CX中值減至0時,停止重復(fù)執(zhí)行,繼續(xù)執(zhí)行下一條指令。 重復(fù)前綴指令(1)REP REP前綴用在MOVS、STOS 、LODS指令前。功能:每執(zhí)行一次串指令(CX)1,直到(CX)=0,重復(fù)執(zhí)行結(jié)束。(2)REPZ 該指令一般用在CMPS、SCAS指令前。功能:每執(zhí)行一次串指令(CX)1,并判斷ZF標(biāo)志是否為0,只要(CX)=0或ZF=0,則重復(fù)執(zhí)行結(jié)束。(3)REPNZ 該指令一般用在CMPS、SCAS 指令前。功能:每執(zhí)行一次串指令(CX)1,并判斷ZF標(biāo)志是否為0,只要(CX)=0或ZF=1,則重復(fù)執(zhí)行結(jié)束。重復(fù)前綴指令MOV
4、S 目的串,源串MOVSBMOVSW功能:將DS:SI所規(guī)定的源數(shù)據(jù)串中的字節(jié)、字傳送至目的串,目的串的地址由ES:DI確定。每當(dāng)指令執(zhí)行后,變址寄存器SI、DI將依據(jù)傳送的操作數(shù)類型自動變址,其變址值可為1,2,分別對應(yīng)于字節(jié)、字傳送?!?”、“”號由DF標(biāo)志位的值確定,當(dāng)DF=0,變址取“”,當(dāng)DF=1,變址取“”。數(shù)據(jù)串傳送指令數(shù)據(jù)串傳送指令將一個字節(jié)/字從 DS:SI ES:DI指令前要先將源串首地址 DS:SI 目標(biāo)串首地址 ES:DI完成操作后自動修改SI、DI,使其指向串的下一個元素串操作方向由CLD和STD指令設(shè)置CLD 地址遞增方向(DF=0)STD 地址遞減方向(DF=1)
5、串傳送重復(fù)前綴需要先將串的長度存入CX寄存器每處理完一個元素自動使CX-1,直到CX=0才結(jié)束串傳送完成整個串的傳送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、建立方向標(biāo)志(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ù)相減的結(jié)果設(shè)置標(biāo)志,但結(jié)果并不保存。(SI)(DI)。 修改串指針,使之指向串中的下一個元素。當(dāng)DF=0時,(SI)和(DI)增量。當(dāng)DF=1時,(SI)和(DI)減量。串比較指令源操作數(shù)的邏輯地址為DS:SI,可以段超越,目的操作數(shù)的邏輯地址為ES:DI。比較指令執(zhí)行后,變址寄存器SI、DI會自動變址,地址是增還是減,由DF標(biāo)志位來確定,指令執(zhí)行時是將源操作數(shù)減去目的操作數(shù),該操作數(shù)
8、將影響AF、CF、OF、PF、SF和ZF標(biāo)志指令前通常加重復(fù)前綴REPZ/REPE,從而當(dāng)發(fā)現(xiàn)兩個串不同時結(jié)束比較。數(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é)果設(shè)置標(biāo)志位,結(jié)果不保存, 字節(jié)操作:(AL)(DI), 字操作:(AX)(DI)。 修改指針使之指向串中的下一個元素。當(dāng)D
9、F=0時,(DI)增量。當(dāng)DF=1時,(DI)減量。事先要將待搜索的元素存入AL/AX指令前通常加重復(fù)前綴REPNZ/REPNE,從而當(dāng)發(fā)現(xiàn)待搜索的元素時結(jié)束搜索。從源串中取數(shù)指令LODS LODSB從字節(jié)串中取數(shù) LODSW從字串中取數(shù)功能:將SI所指的源串中的一個字節(jié)(或字)存儲單元中的數(shù)據(jù)取出來送入AL(或AX)中。即: 字節(jié)操作:(SI)AL, 字操作:(SI)AX。 修改指針SI,使它指向串中的下一個元素。當(dāng)DF=0時,(SI)增量。當(dāng)DF=1時,(SI)減量。 串裝入指令沒有重復(fù)前綴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,使之指向串中的下一個元素。當(dāng)DF=0時,(DI)增量。當(dāng)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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023八年級數(shù)學(xué)上冊 第2章 三角形2.5 全等三角形第5課時 SSS說課稿 (新版)湘教版
- 2024年九年級語文上冊 第五單元 第17課《草房子》說課稿 鄂教版
- 25《慢性子裁縫和急性子顧客》(說課稿)-2023-2024學(xué)年統(tǒng)編版語文三年級下冊
- 2024-2025學(xué)年高中物理 第一章 電磁感應(yīng) 4 楞次定律說課稿 教科版選修3-2
- 2025深圳市途安汽車租賃有限公司租賃合同
- 2025地區(qū)代理合同樣式詳細(xì)版
- 2024年四年級英語下冊 Unit 5 What will you do this weekend Lesson 27說課稿 人教精通版(三起)
- 2023八年級生物下冊 第七單元 生物圈中生命的延續(xù)和發(fā)展第一章 生物的生殖和發(fā)育第2節(jié) 昆蟲的生殖和發(fā)育說課稿 (新版)新人教版
- 個人消防安裝合同范例
- 俄羅斯電梯采購合同范例
- 胎兒性別鑒定報告模板
- 大學(xué)生就業(yè)指導(dǎo)PPT(第2版)全套完整教學(xué)課件
- 家具安裝工培訓(xùn)教案優(yōu)質(zhì)資料
- 湖南大一型抽水蓄能電站施工及質(zhì)量創(chuàng)優(yōu)匯報
- 耳穴療法治療失眠
- 少兒財商教育少兒篇
- GB 1886.114-2015食品安全國家標(biāo)準(zhǔn)食品添加劑紫膠(又名蟲膠)
- 初二上冊期末數(shù)學(xué)試卷含答案
- envi二次開發(fā)素材包-idl培訓(xùn)
- 2022年上海市初中語文課程終結(jié)性評價指南
- 西門子starter軟件簡易使用手冊
評論
0/150
提交評論