實(shí)驗(yàn)三字符串操作_第1頁(yè)
實(shí)驗(yàn)三字符串操作_第2頁(yè)
實(shí)驗(yàn)三字符串操作_第3頁(yè)
實(shí)驗(yàn)三字符串操作_第4頁(yè)
實(shí)驗(yàn)三字符串操作_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、大全大全一、實(shí)驗(yàn)要求和目的1了解匯編語(yǔ)言字符串處理基本流程;2熟悉匯編語(yǔ)言字符串處理基本指令的使用方法;3掌握利用匯編語(yǔ)言實(shí)現(xiàn)字符串處理的程序設(shè)計(jì)方法。二、軟硬件環(huán)境1、硬件環(huán)境:計(jì)算機(jī)系統(tǒng)windows;2、軟件環(huán)境:裝有MASM、DEBUG、LINK、等應(yīng)用程序。三、實(shí)驗(yàn)涉及的主要知識(shí)1、字符串處理基本操作流程(1)利用SI寄存器保存源串首地址;(2)利用DI寄存器保存目的串首地址;(3)利用CX寄存器保存字符串長(zhǎng)度;(4)利用CLD或STD指令設(shè)置字符串處理;(5)利用字符串處理指令實(shí)現(xiàn)相關(guān)處理。其中,CLD指令使DF=0,在執(zhí)行串處理指令時(shí)可使地址自動(dòng)增量;STD使DF=1,在執(zhí)行串處

2、理指令時(shí)可使地址自動(dòng)減量。提示:字符串處理一般都涉及到源串和目的串,匯編語(yǔ)言規(guī)定源串在數(shù)據(jù)段中定義,目的串在附加段中定義。2、重復(fù)前綴指令,重復(fù)次數(shù)由計(jì)數(shù)寄存器CX中存放的值決定,指令每重復(fù)執(zhí)行一次,計(jì)數(shù)器CX中值減1,當(dāng)CX中值減至0時(shí),停止重復(fù)執(zhí)行,繼續(xù)執(zhí)行下一條指令REP無(wú)條件重復(fù)前綴,重復(fù)串操作直到計(jì)數(shù)寄存器的內(nèi)容CX為0為止。經(jīng)常與REP配合工作的字符串處理指令有MOVS、STOS和LODS。REPE/REPZ判斷計(jì)數(shù)寄存器的內(nèi)容CX是否為0或ZF=0(即比較的兩個(gè)操作數(shù)不等),只要滿足一個(gè)則重復(fù)執(zhí)行結(jié)束,否則繼續(xù)執(zhí)行??梢耘cREPE/REPZ配合工作的串指令有CMPS和SCAS。3

3、、字符串處理基本指令(1)MOVS傳送指令格式:MOVSDST,SRC或MOVSB(傳送字節(jié))或MOVSW(傳送字)。后面兩種形式需要與REP指令結(jié)合使用。該指令把由源變址寄存器邰區(qū)指向的數(shù)據(jù)段中的一個(gè)字(或字節(jié))數(shù)據(jù)傳送到由目的變址寄存器851)指向的附加段中的一個(gè)字(或字節(jié))中去,同時(shí),根據(jù)方向標(biāo)志及數(shù)據(jù)格式(字或字節(jié))對(duì)源變址寄存器和目的變址寄存器進(jìn)行修改。(2)STOS存入串指令格式:STOSDST或STOSB(存入字節(jié))或STOSW(存入字)。該指令把AL或AX的內(nèi)容存入由目的變址寄存器指向的附加段的某單元中,并根據(jù)方向標(biāo)志(DF)和數(shù)據(jù)類型修改目的變址寄存器的內(nèi)容。(3)LODS從

4、串取指令格式:LODSSRC或LODSB(取字節(jié))或LODSW(取字)。該指令把由源變址寄存器指向的數(shù)據(jù)段中某單元的內(nèi)容傳送到AL或AX中,并根據(jù)方向標(biāo)志和數(shù)據(jù)類型修改源變址寄存器的內(nèi)容。(4)CMPS串比較指令格式:CMPSSRC,DST或CMPSB或CMPSW。該指令把由源變址寄存器指向的數(shù)據(jù)段中的一個(gè)字節(jié)或字與由目的變址寄存器所指向的附加段中的一個(gè)字節(jié)或字相減,但不保存結(jié)果,只根據(jù)結(jié)果設(shè)置條件標(biāo)志。該指令與REPE/REPZ或REPNE/REPNZ結(jié)合,可以比較兩個(gè)數(shù)據(jù)串。(5)SCAS串掃描指令格式:SCASDST或SCASB或SCASW。該指令把AL或AX的內(nèi)容與由目的變址寄存器所指

5、向的附加段中的一個(gè)字節(jié)或字進(jìn)行比較,并不保存結(jié)果,只根據(jù)結(jié)果設(shè)置條件碼。該指令與REPE/REPZ或REPNE/REPNZ結(jié)合,可以從一個(gè)字符串中查找一個(gè)指定的字符。總的來(lái)說(shuō),字符串處理可以將緩沖區(qū)中一個(gè)數(shù)據(jù)塊搬至存儲(chǔ)器的另一處,比較兩個(gè)字符串是否相等,從緩沖區(qū)中一個(gè)數(shù)據(jù)塊尋找某一個(gè)特定的關(guān)鍵字,順次從一個(gè)緩沖區(qū)取字符或順次向一個(gè)緩沖區(qū)存字符等。四、實(shí)驗(yàn)內(nèi)容與步驟1、比較緩沖區(qū)中兩字符串是否相同,相同則AL返回0,不同AL返回1。為了使程序的通用性比較好,字符串長(zhǎng)度要求自動(dòng)獲取。(要求用字符串處理方法)實(shí)驗(yàn)流程圖比較字符串長(zhǎng)度比較字符串長(zhǎng)度字符進(jìn)行比較將AL賦值0結(jié)束代碼DATASSEGMEN

6、TDATASENDSextraSEGMENTstr1dbHello.orld!$leng1dw($-str1)str2dbHello.world!$leng2dw($-str2)extraENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,es:extraSTART:MOVAX,DATASMOVDS,AXMOVAX,EXTRAMOVES,AXMOVAL,1MOVBX,LENG1MOVDX,LENG2CMPBX,DXJNZNJMPCONN:MOVAL,1JMPOVERCON:LEASI,STR1LEADI,STR2MOVCX,LENG1CLDREPECMPSBJCXZ

7、YY:MOVAL,0JMPOVEROVER:MOVAH,4CHINT21HCODESENDSENDSTART因?yàn)闆](méi)有拍照片,所以沒(méi)有保存調(diào)試結(jié)果,但是在上機(jī)調(diào)試的過(guò)程中實(shí)驗(yàn)是正確的。2、編寫程序,將內(nèi)存中某一區(qū)域的數(shù)據(jù)傳送到另一區(qū)域。(要求用字符串處理方法)開始T,/輸入數(shù)據(jù)/CX二字符串長(zhǎng)度DATASSEGMENTstr1dbHello.orld!$leng1dw($-str1)DATASENDSextraSEGMENTstr2db30dup(0)leng2dw($-str2)extraENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,es:extraSTART

8、:MOVAX,DATASMOVDS,AXMOVAX,EXTRAMOVES,AXLEASI,STR1LEADI,STR2MOVCX,LENG1CLDREPMOVSBMOVAH,4CHINT21HCODESENDSENDSTART3、編寫程序,在已知字符串中搜索特定字符!,若找到則AL返回0,找不到AL返回1。(要求用字符串處理方法)將strl首地址傳送到ES段DI寄存器將strl長(zhǎng)度存到CX將待搜索字符!存到用scasb重復(fù)搜索!將AL賦值為1將AL賦值為0結(jié)束DATASSEGMENTDATASENDSextraSEGMENTstr1dbHello.world!$leng1dw($-str1)e

9、xtraENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,es:extraSTART:MOVAX,DATASMOVDS,AXMOVAX,EXTRAMOVES,AXLEAax,str1movdi,axMOVal,!movcx,leng1cldrepnzscasbjcxznjmpon:MOVbx,1JMPOVERo:MOVbx,0jmpoverover:movax,bxmovah,4chint21hCODESENDSENDSTART(要求用字符串處理方法);4、編寫程序,統(tǒng)計(jì)一串字符串中字符.出現(xiàn)的次數(shù)。(要求用字符串處理方法);DATASSEGMENTDATASENDSextraSEGMENTstr1dbHello.orld!$leng1dw($-str1)extraENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,es:extraSTART:MOVAX,DATASMOVDS,AXMOVAX,EXTRAMOVES,AXmovbx,0LEAax,STR1movdi,axMOVal,.movcx,leng1cldl:repnzscasbjcxzoverincbxjmplover:movax,bxmovah,4chint21hCODESENDSEN

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論