微機(jī)原理實(shí)驗(yàn)2程序---字符串匹配實(shí)驗(yàn)5頁(yè)_第1頁(yè)
微機(jī)原理實(shí)驗(yàn)2程序---字符串匹配實(shí)驗(yàn)5頁(yè)_第2頁(yè)
微機(jī)原理實(shí)驗(yàn)2程序---字符串匹配實(shí)驗(yàn)5頁(yè)_第3頁(yè)
微機(jī)原理實(shí)驗(yàn)2程序---字符串匹配實(shí)驗(yàn)5頁(yè)_第4頁(yè)
微機(jī)原理實(shí)驗(yàn)2程序---字符串匹配實(shí)驗(yàn)5頁(yè)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、8086匯編語(yǔ)言源程序2011年 湖北汽車工業(yè)學(xué)院 袁致旺 作8086匯編語(yǔ)言程序?qū)嶒?yàn):實(shí)驗(yàn)二、字符串匹配實(shí)驗(yàn)題目:1、 (必做題)編程實(shí)現(xiàn):從鍵盤分別輸入兩個(gè)字符串(不必等長(zhǎng)),然后進(jìn)行比較,若兩個(gè)字符串有相同的字符,則顯示“MATCH”,若字符都不相同則顯示“NO MATCH”。2、 (選做題)編程實(shí)現(xiàn):從鍵盤分別輸入兩個(gè)字符串,然后進(jìn)行比較,若兩個(gè)字符串的長(zhǎng)度和對(duì)應(yīng)字符都完全相同,則顯示“MATCH”,否則顯示“NO MATCH”。對(duì)應(yīng)程序如下所示:;第1題;=HUICHEMACRO ;定義一個(gè)具有回車、換行功能的宏,為程序多次回車換行所調(diào)用。MOV DL,0DH;用2號(hào)功能“顯示”回車

2、。MOV AH,02HINT 21HMOV DL,0AH;用2號(hào)功能“顯示”換行。MOV AH,02HINT 21HENDMDATA SEGMENTMESSAGE1 DB 'MATCH','$'定義“MATCH”提示信息,“$”作為調(diào)用9號(hào)功能的結(jié)束符。MESSAGE2 DB 'NO MATCH','$'定義“NO MATCH”提示信息。TISHI1 DB 'Please input the first string:','$'提示輸入第1個(gè)字符串的提示信息。TISHI2 DB 'Pleas

3、e input the second string:','$'提示輸入第1個(gè)字符串的提示信息。STRING1 DB 100; 100為存第一個(gè)字符串的最大可用空間的字節(jié)數(shù)。DB ?;預(yù)留字節(jié),存儲(chǔ)將要輸入的第1個(gè)字符串的實(shí)際長(zhǎng)度。DB 100 DUP(?);預(yù)留100個(gè)字節(jié)空間,用于存放第1個(gè)字符串。STRING2 DB 100DB ?DB 100 DUP(?)DATA ENDSSTACK SEGMENT;定義一個(gè)50字節(jié)大小的堆棧段空間。ZHANDB 50 DUP(?)ZHANDINGEQU LENGTH ZHANSTACK ENDSCODE SEGMENT;代碼段開(kāi)

4、始。ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTARTUP:MOV AX,DATA;程序開(kāi)始,首先將幾個(gè)段寄存器初始化為各段的首地址。MOV DS,AX;MOV ES,AX;MOV AX,STACK;MOV SS,AX;MOV SP,ZHANDING;棧頂指針賦初值。MOV DX, OFFSET TISHI1;用9功能顯示提示輸入第1個(gè)字符串的提示信息。MOV AH,9INT 21HHUICHE;調(diào)用 宏定義的“回車換行”功能,程序運(yùn)行到此處時(shí)進(jìn)行回車換行。MOV DX, OFFSET STRING1MOV AH,0AH;用10號(hào)功能輸入第1個(gè)字符串。IN

5、T 21HHUICHEMOV DX, OFFSET TISHI2MOV AH,9INT 21HHUICHEMOV DX, OFFSET STRING2;輸入第2個(gè)字符串。MOV AH,0AHINT 21HHUICHECLD; 方向標(biāo)志位清0,按增址方向操作。MOV SI, OFFSET STRING12;將第1個(gè)字符串第1個(gè)字符偏移地址傳送給SI,為串搜索做準(zhǔn)備。MOV BX,0; BX為后面“記下第1個(gè)字符串已經(jīng)被搜索過(guò)的字符的個(gè)數(shù)”做準(zhǔn)備。MOV CL, STRING11MOV CH,0; 將第1個(gè)字符串的實(shí)際長(zhǎng)度賦給CX。L1:PUSH CX;先將第1個(gè)字符串的實(shí)際長(zhǎng)度壓入堆棧,保留,為

6、后面?zhèn)溆?。MOV DI, OFFSET STRING22;將第2個(gè)字符串第1個(gè)字符偏移地址傳送給DI,為串搜索做準(zhǔn)備。MOV CL, STRING21;將第2個(gè)字符串的實(shí)際長(zhǎng)度傳送給CX。MOV CH,0MOV AL,SIREPNZ SCASB;進(jìn)行串搜索,將第2個(gè)字符串中的字符與第1個(gè)字符串的一個(gè)字符進(jìn)行比較。JZ XXX1INC SI;SI加1,指向第1個(gè)字符串的下一個(gè)字符。INC BX;記下第1個(gè)字符串已經(jīng)被搜索過(guò)的字符的個(gè)數(shù)。POP CXCMP CX,BX;“已經(jīng)被搜索過(guò)的字符個(gè)數(shù)”BX與“第1個(gè)字符串實(shí)際長(zhǎng)度”CX進(jìn)行比較。JNZ L1;若BX與CX不等,則進(jìn)行“第1字符串的下一字符

7、”與“第2字符串中的字符”的比較。;若BX與CX相等,則進(jìn)行執(zhí)行下面的語(yǔ)句,顯示“NO MACTH”。MOV DX, OFFSET MESSAGE2;顯示“NO MACTH”。MOV AH,9INT 21HJMP XXX2;顯示“NO MACTH”后,跳轉(zhuǎn)到XXX2,準(zhǔn)備返回DOS系統(tǒng)。XXX1:MOV DX, OFFSET MESSAGE1;顯示“MACTH”。MOV AH,9INT 21HXXX2:MOV AH,1INT 21H;等待鍵盤響應(yīng),準(zhǔn)備返回DOS系統(tǒng)。MOV AH,4CH;返回DOS系統(tǒng),準(zhǔn)備結(jié)束程序。INT 21HCODE ENDSEND STARTUP;程序從此處結(jié)束。;=

8、;第2題;=HUICHEMACRO ;定義一個(gè)具有回車、換行功能的宏,為程序多次回車換行所調(diào)用。MOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHMOV AH,02HINT 21HENDMDATA SEGMENTMESSAGE1 DB 'MATCH','$'MESSAGE2 DB 'NO MATCH','$'TISHI1 DB 'Please input the first string:','$'TISHI2 DB 'Please input the second

9、string:','$'STRING1 DB 100DB ?DB 100 DUP(?)STRING2 DB 100DB ?DB 100 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTARTUP:MOV AX,DATAMOV DS,AXMOV ES,AXMOV DX, OFFSET TISHI1MOV AH,9INT 21HHUICHE;調(diào)用 宏定義的“回車換行”功能,程序運(yùn)行到此處時(shí)進(jìn)行回車換行。MOV DX,OFFSET STRING1MOV AH,0AHINT 21HHUICHEMOV DX,

10、OFFSET TISHI2MOV AH,9INT 21HHUICHEMOV DX,OFFSET STRING2MOV AH,0AHINT 21HHUICHECLDMOV SI,OFFSET STRING12 ;將第1個(gè)字符串第1個(gè)字符偏移地址傳送給SI,為串比較做準(zhǔn)備。MOV BL, STRING11MOV BH,0; 將第1個(gè)字符串的實(shí)際長(zhǎng)度賦給BX。MOV DI,OFFSET STRING22 ;將第2個(gè)字符串第1個(gè)字符偏移地址傳送給DI,為串比較做準(zhǔn)備。MOV CL, STRING21MOV CH,0; 將第2個(gè)字符串的實(shí)際長(zhǎng)度賦給CX。CMP BX,CX;比較兩個(gè)字符串的長(zhǎng)度JNE XXX0;若兩個(gè)字符串的長(zhǎng)度不相等,則轉(zhuǎn)到XXX0處,顯示“NO MACTH”。REPE CMPSB;進(jìn)行串比較,將第2個(gè)字符串與第1個(gè)字符串按字符逐一進(jìn)行比較。JE XXX1;若經(jīng)過(guò)比較,兩字符串完全相等,則跳到XXX1處,顯示“MACTH”。;否則到XXX0處,顯示“NO MACTH”。XXX0:MOV DX, OFFSET MESSAGE2;顯示“NO MACTH”。MOV AH,9INT 21HJMP XXX2;顯示“NO MACTH”后,跳轉(zhuǎn)到XX

溫馨提示

  • 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)論