版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 微機原理 課程設(shè)計報告題 目: 字符串分類統(tǒng)計 學(xué)生姓名: 周喜民 學(xué) 號: 32 專業(yè)班級: 計0601 同組姓名: 趙晏龍 陳順 指導(dǎo)教師: 范軼彥 設(shè)計時間: 2010.1.4-2010.1.10 指導(dǎo)老師意見:評定成績: 簽名: 日期:目錄一、需求分析2二、系統(tǒng)設(shè)計31. 內(nèi)容32思路3三、系統(tǒng)總體框圖5四、調(diào)試分析6五、實驗結(jié)果6六、程序設(shè)計7七、總結(jié)13八、參考文獻(xiàn)14一、需求分析 本程序主要用于,把輸入的一串字符分類統(tǒng)計,分別統(tǒng)計出數(shù)字、大寫字符、小寫字符和其他字符的個數(shù)。本程序采用匯編語言編程,定義了宏、比較判斷、循環(huán)調(diào)用、統(tǒng)計等等,非常人性化的把統(tǒng)計的結(jié)果顯示出來。比如你輸
2、入一串?dāng)?shù)字“12345”,它會顯示出你輸入的這串?dāng)?shù)字,并顯示數(shù)字的個數(shù)為5,同時顯示其他相應(yīng)類字符為空。 程序接收用戶鍵入的一行字符(字符長度不大于80個,以回車結(jié)束),并把字符,數(shù)字,其它字符分類計數(shù),然后將結(jié)果存入以Letter,Digit,Other為名的存儲單元中。 程序可采用0AH斷將鍵入的字符直接送至鍵盤緩沖區(qū),然后逐個取出分類計數(shù)。也可采用01H在接收字符后進(jìn)行分類奇數(shù)在存入緩沖區(qū)。程序需要進(jìn)入DEBUG看計數(shù)結(jié)果二、系統(tǒng)設(shè)計1.內(nèi)容從鍵盤輸入任意一個字符串,以回車作為結(jié)束符并顯示,分別統(tǒng)計并顯示出其中數(shù)字字符、大寫字符、小寫字符以及其它字符的個數(shù)。2思路(1).首先定義兩個宏,
3、一個用于輸出統(tǒng)計各字符的個數(shù),另一個用于輸出字符串。(2).在數(shù)據(jù)段中定義各種字符提示信息以便程序清晰明白。(3).定義數(shù)據(jù)緩沖區(qū)用于存放輸入的字符串,定義NUM區(qū)用于存放統(tǒng)計的大寫字符、小寫字符、數(shù)字以及其它字符的個數(shù)。定義OTHERCHAR、BIGCHAR、SMALLCHAR以及堆棧用于存放統(tǒng)計的相應(yīng)字符保存,以便后來輸出。(4).首先調(diào)用DOS 10號功能用DX指定BUF區(qū),將輸入的字符串保存到BUF區(qū)中。(5).將BUF+1的內(nèi)容取出來,判斷是否為0,如果為0表示沒有輸入任何字符,則程序跳到NEXTLAP(輸出提示信息You do not input any string!),然后顯示
4、字符串(Do you want to input a string again(Y/N)?)然后調(diào)用DOS 1號功能獲取您從鍵盤輸入的數(shù),判斷是否為Y或y如果是則將程序跳到剛開始處重新執(zhí)行,如果不是這兩個字符則程序結(jié)束。(6).如果輸入了字符串,則調(diào)用DOS 2號功能將BUF里的內(nèi)容輸出來(2號功能可以輸出$符號而9號功能遇到$符號就終止)。(7).取字符出來進(jìn)行比較統(tǒng)計,如果它比30H大且比39H小則為數(shù)字,如果比41H大且比5AH小則為大寫字符,如果比61H大且比7AH小則為小寫字符,如果不是這三種情況則為其它字符。注:DX存數(shù)字個數(shù),BX存小寫字母個數(shù),DI存大寫字母個數(shù),BP存其它字符
5、個數(shù)。(8).將數(shù)字個數(shù)、大寫字母個數(shù)、小寫字母個數(shù)、其它字符個數(shù)依次放入NUM區(qū)。(9).依次輸出各字符: a.判斷數(shù)字個數(shù)是否為0,如果為0則輸出提示沒有此類數(shù)據(jù),否則輸出數(shù)字個數(shù)以及有哪些數(shù)字。 b.判斷大寫字符個數(shù)是否為0,如果為0則輸出提示沒有此類數(shù)據(jù),否則輸出大寫字符的個數(shù)以及輸入的哪些大寫字符。 c.判斷小寫字符個數(shù)是否為0,如果為0則輸出提示沒有此類數(shù)據(jù),否則輸出小寫字符的個數(shù)以及輸入的哪些小寫字符。 d.判斷其它字符個數(shù)是否為0,如果為0則輸出提示沒有此類數(shù)據(jù),否則輸出其它字符的個數(shù)以及輸入的哪些其它字符。(10).然后將程序跳到NEXTLAP繼續(xù)執(zhí)行,依次下去。三、系統(tǒng)總體
6、框圖四、調(diào)試分析本程序主要用于,把輸入的一串字符分類統(tǒng)計,分別統(tǒng)計出數(shù)字、大寫字符、小寫字符和其他字符的個數(shù)。本程序采用匯編語言編程,定義了宏、比較判斷、循環(huán)調(diào)用、統(tǒng)計等等,非常人性化的把統(tǒng)計的結(jié)果顯示出來。比如你輸入一串?dāng)?shù)字“12345”,它會顯示出你輸入的這串?dāng)?shù)字,并顯示數(shù)字的個數(shù)為5,同時顯示其他相應(yīng)類字符為空。從鍵盤輸入任意一個字符串,以回車作為結(jié)束符并顯示,分別統(tǒng)計并顯示出其中數(shù)字字符、大寫字符、小寫字符以及其它字符的個數(shù)。五、實驗結(jié)果1)所有字符都有的時候:2)其中有字符類型缺少的時候:3)什么字符都不輸入的時候:六、程序設(shè)計shuchu MACRO ;定義宏,用來輸出統(tǒng)計其它字符
7、、數(shù)字、大小寫 個數(shù) LOCAL NEXT MOV AH,0 MOV BL,10 DIV BL MOV DL,AL MOV BH,AH ;將余數(shù)暫時存放在BH中 CMP AL,0 JZ NEXT OR DL,30h MOV AH,2 INT 21HNEXT: MOV DL,BH OR DL,'0' ;輸出余數(shù) MOV AH,2 INT 21H dismsg CRLF ;回車換行 ENDM dismsg MACRO message ;輸出字符串 LEA DX,message MOV AH,9 INT 21H ENDMDATAS SEGMENTSTR DB 'The inp
8、ut string is:$'STR1 DB 'Please input a string:$'STR2 DB 'The integer is:$'STR3 DB 'The bigchar is:$'STR4 DB 'The smallchar is:$'STR5 DB 'The otherchar is:$' STR6 DB 'The date of integer is null!$'STR7 DB 'The date of otherchar is null!$'STR
9、8 DB 'The data of bigchar is null!$'STR9 DB 'The data of smallchar is null!$'NUM2 DB 'The number of integer is:$'NUM3 DB 'The number of bigchar is:$'NUM4 DB 'The number of smallchar is:$'NUM5 DB 'The number of otherchar is:$' NUM6 DB 'Do you want t
10、o input a string again?(Y/N):$'NUM7 DB 'You do not input any string!$'BUF DB 100 ;定義緩沖區(qū)用來存放輸入的字符串 DB ? DB 100 DUP (24H)CRLF DB 0AH,0DH,'$'NUM DB 4 DUP(?)BIGCHAR DB 100 DUP(24H),0AH,0DH,'$'SMALLCHAR DB 100 DUP(24H),0AH,0DH,'$'OTHERCHAR DB 100 DUP(24H),0AH,0DH,'
11、$'TAIL DB ? ;用來存放其它字符的個數(shù)DATAS ENDSSTACKS SEGMENT STACK1 DW 100 DUP(24H) TOP LABEL WORDSTACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: AGAIN1: MOV AX,STACKS MOV SS,AX MOV SP,OFFSET TOP MOV AX,DATAS MOV DS,AX dismsg STR1 ;顯示輸入提示信息 MOV AH,10 ;輸入字符串 LEA DX,BUF INT 21H dismsg CRLF ;
12、回車換行 CMP BUF+1,0 JZ NEXTLAP dismsg STR ;提示輸入字符串 MOV CL,BUF+1 LEA SI,BUF+2ABC: MOV DL,SI ;用于輸出緩沖區(qū)里的輸入字符串 MOV AH,2 INT 21H INC SI LOOP ABC dismsg CRLF ;回車換行 MOV CL,BUF+1 ;將字符串的個數(shù)放入CL LEA SI,BUF+2 ;取字符串的首地址 MOV DX,0 ;DX統(tǒng)計數(shù)字個數(shù) MOV BX,0 ;BX統(tǒng)計小寫字母個數(shù) MOV DI,0 ;DI統(tǒng)計大寫字母個數(shù) MOV BP,0 ;BP統(tǒng)計其他字符的個數(shù) MOV AH,0L1: M
13、OV AL,SI CMP AL,30H JL NEXT1 CMP AL,39H JG L2 PUSH AX INC DX ;統(tǒng)計數(shù)字字符的個數(shù) JMP NEXT L2: CMP AL,41H ;統(tǒng)計大寫字符的個數(shù) JL NEXT1 CMP AL,5AH JG L3 MOV BIGCHARDI,AL INC DI JMP NEXT L3: CMP AL,61H ;統(tǒng)計小寫字符的個數(shù) JL NEXT1 CMP AL,7AH JG NEXT1 MOV SMALLCHARBX,AL INC BX JMP NEXT NEXT1: MOV OTHERCHARBP,AL INC BP ;統(tǒng)計其它字符的個數(shù)N
14、EXT: INC SI DEC CL JNZ L1 MOV NUM,DL ;將統(tǒng)計的個數(shù)存放在NUM的存儲區(qū) MOV AX,DI ;數(shù)字個數(shù)放在NUM,大寫字符個數(shù)放在NUM+1 MOV NUM+1,AL ;小寫字符個數(shù)放在NUM+2,其他字符的個數(shù)放在NUM+3 MOV NUM+2,BL MOV AX,BP MOV TAIL,AL ;將其它字符的個數(shù)送入TAIL保存,以便后來輸出(否則9號功能輸出遇$則退出) MOV NUM+3,AL CMP NUM,0 ;判斷數(shù)字個數(shù)如果為0則輸出提示符,否則循環(huán)輸出 JZ NNULL dismsg STR2 ;輸出數(shù)字字符的提示符 MOV CL,NUM
15、MOV BP,OFFSET TOP SUB BP,2OK: MOV DX,STACK1BP MOV AH,2 INT 21H SUB BP,2 LOOP OK dismsg CRLF dismsg NUM2 ;輸出數(shù)字字符數(shù)字的提示符 MOV AL,NUM ;輸出數(shù)字字符的個數(shù) shuchu JMP NNULL1NNULL: dismsg STR6 NNULL1: dismsg CRLF CMP NUM+1,0 ;判斷大寫字符的個數(shù)如果為0則輸出提示符,否則以字符串形式輸出 JZ BNULL dismsg STR3 ;輸出大寫字符的提示符 dismsg BIGCHAR dismsg CRLF
16、dismsg NUM3 ;輸出大寫字符數(shù)字個數(shù)提示符 MOV AL,NUM+1 ;輸出大寫字符的個數(shù) shuchu JMP BNULL1 BNULL: dismsg STR8BNULL1: dismsg CRLF CMP NUM+2,0 ;判斷小寫個數(shù),如果為0則輸出提示符,否則以字符串形式輸出 JZ SNULL dismsg STR4 ;輸出小寫字符的提示符 dismsg SMALLCHAR dismsg CRLF dismsg NUM4 ;輸出小寫字符數(shù)字個數(shù)的提示符 MOV AL,NUM+2 ;輸出小寫字符的個數(shù) shuchu JMP SNULL1SNULL: dismsg STR9SN
17、ULL1: dismsg CRLF CMP TAIL,0 ;判斷其他字符的個數(shù)如果為0則輸出提示符,否則循環(huán)輸出 JZ ONULL dismsg STR5 ;輸出其它字符的提示符 MOV CL,TAIL MOV SI,OFFSET OTHERCHARL4: ;輸出其它字符 MOV DL,SI MOV AH,2 INT 21H INC SI LOOP L4 dismsg CRLF dismsg NUM5 ;輸出其它字符個數(shù)的提示符 MOV AL,NUM+3 ;輸出其它字符的個數(shù) shuchu JMP AGAINONULL: dismsg STR7 JMP AGAINNEXTLAP: dismsg
18、 NUM7AGAIN: dismsg CRLF dismsg NUM6 MOV AH,01H INT 21H MOV BL,AL dismsg CRLF CMP BL,'Y' JZ AGAIN1 CMP BL,'y' JZ AGAIN1ONULL2: MOV AH,4CH INT 21HCODES ENDSEND START 七、總結(jié)微機原理與接口技術(shù)是一門很有趣的課程,任何一個計算機系統(tǒng)都是一個復(fù)雜的整體,學(xué)習(xí)計算機原理是要涉及到整體的每一部分。討論某一部分原理時又要涉及到其它部分的工作原理。這樣一來,不僅不能在短時間內(nèi)較深入理解計算機的工作原理,而且也很難孤
19、立地理解某一部分的工作原理。所以,在循序漸進(jìn)的課堂教學(xué)過程中,我總是處于“學(xué)會了一些新知識,弄清了一些原來保留的問題,又出現(xiàn)了一些新問題”的循環(huán)中,直到課程結(jié)束時,才把保留的問題基本搞清楚。學(xué)習(xí)該門課程知識時,其思維方法也和其它課程不同,該課程偏重于工程思維,具體地說,在了解了微處理器各種芯片的功能和外部特性以后,剩下額是如何將它們用于實際系統(tǒng)中,其創(chuàng)造性勞動在于如何用計算機的有關(guān)技術(shù)和廠家提供的各種芯片,設(shè)計實用的電路和系統(tǒng),再配上相應(yīng)的應(yīng)用程序,完成各種實際應(yīng)用項目。這次實驗并不是很難,主要的困難來自對程序的理解。功夫不負(fù)有心人,經(jīng)過四個人的合作和努力,我們最后對實驗的原理有了清晰的認(rèn)識。雖然實驗臺上的很多模塊單元沒有用到,但是就系統(tǒng)功能來說,我覺得我們做的還是不錯的。這次課設(shè)卻讓我們對實驗臺有了足夠的了解,讓我們知道了實驗臺上各個模塊的用法;而且它還讓我們對自己動手寫程序來控制實驗臺的運作有了一定的基礎(chǔ)。雖然實
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)班主任2022年度個人工作計劃(5篇)
- 叉車出租行業(yè)供需趨勢及投資風(fēng)險研究報告
- 中國汽車半導(dǎo)體行業(yè)市場前瞻與投資戰(zhàn)略規(guī)劃分析報告
- 《魯濱遜漂流記》學(xué)生讀后感
- 寫給女朋友的道歉信(匯編15篇)
- 關(guān)于試用期工作總結(jié)模板匯編七篇
- 環(huán)境演講稿范文集合6篇
- 高中教師個人工作計劃3篇集錦
- 房屋中介買賣合同
- 高中語文教學(xué)反思15篇
- 湖南2025年湖南機電職業(yè)技術(shù)學(xué)院合同制教師招聘31人歷年參考題庫(頻考版)含答案解析
- 2024年電子交易:電腦買賣合同
- 中國文化概論知識試題與答案版
- 期末復(fù)習(xí)提升測試(試題)(含答案)2024-2025學(xué)年四年級上冊數(shù)學(xué)人教版
- 生和碼頭港口設(shè)施維護(hù)管理制度(3篇)
- 黑龍江省哈爾濱市第六中學(xué)2025屆高考數(shù)學(xué)三模試卷含解析
- 【MOOC】數(shù)字邏輯設(shè)計及應(yīng)用-電子科技大學(xué) 中國大學(xué)慕課MOOC答案
- 傷口治療師進(jìn)修匯報
- 研學(xué)活動協(xié)議書合同范本
- ISBAR輔助工具在交班中應(yīng)用
- AIGC行業(yè)報告:國內(nèi)外大模型和AI應(yīng)用梳理
評論
0/150
提交評論