



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、(完整)微機原理課程設計-字符串分類統(tǒng)計(完整)微機原理課程設計-字符串分類統(tǒng)計 編輯整理:尊敬的讀者朋友們:這里是精品文檔編輯中心,本文檔內容是由我和我的同事精心編輯整理后發(fā)布的,發(fā)布之前我們對文中內容進行仔細校對,但是難免會有疏漏的地方,但是任然希望((完整)微機原理課程設計-字符串分類統(tǒng)計)的內容能夠給您的工作和學習帶來便利。同時也真誠的希望收到您的建議和反饋,這將是我們進步的源泉,前進的動力。本文可編輯可修改,如果覺得對您有幫助請收藏以便隨時查閱,最后祝您生活愉快 業(yè)績進步,以下為(完整)微機原理課程設計-字符串分類統(tǒng)計的全部內容。21 微機原理 課程設計報告題 目: 字符串分類統(tǒng)計
2、學生姓名: 周喜民 學 號: 32 專業(yè)班級: 計0601 同組姓名: 趙晏龍 陳順 指導教師: 范軼彥 設計時間: 2010。1。4-2010.1。10 指導老師意見:評定成績: 簽名: 日期:目錄一、需求分析2二、系統(tǒng)設計31。 內容32思路3三、系統(tǒng)總體框圖5四、調試分析6五、實驗結果6六、程序設計7七、總結13八、參考文獻14一、需求分析 本程序主要用于,把輸入的一串字符分類統(tǒng)計,分別統(tǒng)計出數(shù)字、大寫字符、小寫字符和其他字符的個數(shù).本程序采用匯編語言編程,定義了宏、比較判斷、循環(huán)調用、統(tǒng)計等等,非常人性化的把統(tǒng)計的結果顯示出來。比如你輸入一串數(shù)字“12345”,它會顯示出你輸入的這串數(shù)
3、字,并顯示數(shù)字的個數(shù)為5,同時顯示其他相應類字符為空。 程序接收用戶鍵入的一行字符(字符長度不大于80個,以回車結束),并把字符,數(shù)字,其它字符分類計數(shù),然后將結果存入以letter,digit,other為名的存儲單元中。 程序可采用0ah斷將鍵入的字符直接送至鍵盤緩沖區(qū),然后逐個取出分類計數(shù)。也可采用01h在接收字符后進行分類奇數(shù)在存入緩沖區(qū)。程序需要進入debug看計數(shù)結果二、系統(tǒng)設計1。內容從鍵盤輸入任意一個字符串,以回車作為結束符并顯示,分別統(tǒng)計并顯示出其中數(shù)字字符、大寫字符、小寫字符以及其它字符的個數(shù)。2思路(1).首先定義兩個宏,一個用于輸出統(tǒng)計各字符的個數(shù),另一個用于輸出字符串
4、。(2).在數(shù)據(jù)段中定義各種字符提示信息以便程序清晰明白。(3)。定義數(shù)據(jù)緩沖區(qū)用于存放輸入的字符串,定義num區(qū)用于存放統(tǒng)計的大寫字符、小寫字符、數(shù)字以及其它字符的個數(shù)。定義otherchar、bigchar、smallchar以及堆棧用于存放統(tǒng)計的相應字符保存,以便后來輸出。(4)。首先調用dos 10號功能用dx指定buf區(qū),將輸入的字符串保存到buf區(qū)中。(5)。將buf+1的內容取出來,判斷是否為0,如果為0表示沒有輸入任何字符,則程序跳到nextlap(輸出提示信息you do not input any string!),然后顯示字符串(do you want to input
5、a string again(y/n)?)然后調用dos 1號功能獲取您從鍵盤輸入的數(shù),判斷是否為y或y如果是則將程序跳到剛開始處重新執(zhí)行,如果不是這兩個字符則程序結束。(6).如果輸入了字符串,則調用dos 2號功能將buf里的內容輸出來(2號功能可以輸出$符號而9號功能遇到符號就終止).(7)。取字符出來進行比較統(tǒng)計,如果它比30h大且比39h小則為數(shù)字,如果比41h大且比5ah小則為大寫字符,如果比61h大且比7ah小則為小寫字符,如果不是這三種情況則為其它字符。注:dx存數(shù)字個數(shù),bx存小寫字母個數(shù),di存大寫字母個數(shù),bp存其它字符個數(shù)。(8)。將數(shù)字個數(shù)、大寫字母個數(shù)、小寫字母個數(shù)
6、、其它字符個數(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)總體框圖四、調試分析本程序主要用于,把輸入的一串字符分類
7、統(tǒng)計,分別統(tǒng)計出數(shù)字、大寫字符、小寫字符和其他字符的個數(shù).本程序采用匯編語言編程,定義了宏、比較判斷、循環(huán)調用、統(tǒng)計等等,非常人性化的把統(tǒng)計的結果顯示出來。比如你輸入一串數(shù)字“12345”,它會顯示出你輸入的這串數(shù)字,并顯示數(shù)字的個數(shù)為5,同時顯示其他相應類字符為空。從鍵盤輸入任意一個字符串,以回車作為結束符并顯示,分別統(tǒng)計并顯示出其中數(shù)字字符、大寫字符、小寫字符以及其它字符的個數(shù).五、實驗結果1)所有字符都有的時候:2)其中有字符類型缺少的時候:3)什么字符都不輸入的時候:六、程序設計shuchu macro ;定義宏,用來輸出統(tǒng)計其它字符、數(shù)字、大小寫 個數(shù) local next mov
8、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 input string is:str1 db please input a strin
9、g:$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!$str8 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 nu
10、mber of bigchar is:num4 db the number of smallchar is:$num5 db the number of otherchar is:$ num6 db do you want to 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
11、db 100 dup(24h),0ah,0dh,$otherchar db 100 dup(24h),0ah,0dh,$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 ;顯示輸入
12、提示信息 mov ah,10 ;輸入字符串 lea dx,buf int 21h dismsg crlf ;回車換行 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ù) mo
13、v di,0 ;di統(tǒng)計大寫字母個數(shù) mov bp,0 ;bp統(tǒng)計其他字符的個數(shù) mov ah,0l1: mov 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
14、 jmp next next1: mov othercharbp,al inc bp ;統(tǒng)計其它字符的個數(shù)next: 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則輸出提
15、示符,否則循環(huán)輸出 jz nnull dismsg str2 ;輸出數(shù)字字符的提示符 mov cl,num 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 bnu
16、ll dismsg str3 ;輸出大寫字符的提示符 dismsg bigchar dismsg crlf 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,
17、num+2 ;輸出小寫字符的個數(shù) shuchu jmp snull1snull: dismsg str9snull1: 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ù) shuch
18、u jmp againonull: dismsg str7 jmp againnextlap: dismsg 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 七、總結微機原理與接口技術是一門很有趣的課程,任何一個計算機系統(tǒng)都是一個復雜的整體,學習計算機原理是要涉及到整體的每一部分。討論某一部分原理時又要涉及到其它部分的工作原理.
19、這樣一來,不僅不能在短時間內較深入理解計算機的工作原理,而且也很難孤立地理解某一部分的工作原理。所以,在循序漸進的課堂教學過程中,我總是處于“學會了一些新知識,弄清了一些原來保留的問題,又出現(xiàn)了一些新問題”的循環(huán)中,直到課程結束時,才把保留的問題基本搞清楚。學習該門課程知識時,其思維方法也和其它課程不同,該課程偏重于工程思維,具體地說,在了解了微處理器各種芯片的功能和外部特性以后,剩下額是如何將它們用于實際系統(tǒng)中,其創(chuàng)造性勞動在于如何用計算機的有關技術和廠家提供的各種芯片,設計實用的電路和系統(tǒng),再配上相應的應用程序,完成各種實際應用項目。這次實驗并不是很難,主要的困難來自對程序的理解.功夫不負有心人,經過四個人的合作和努力,我們最后對實驗的原理有了清晰的認識。雖然實驗臺上的很多模塊單元沒有用到,但是就系統(tǒng)功能來說,我覺得我們做的還是不錯的。這次課設卻讓我們對實驗臺有了足夠的了解,讓我們知道了實驗臺上各個模塊的用法;而且它還讓我們對自己動手寫程序來控制實驗臺的運作有了一定的基礎。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CITS 0006-2023醫(yī)用核酸質譜應用技術通則
- T/CIS 11003-2021紅外額溫計
- T/CHTS 10041-2021瀝青混合料垂直振動成型試驗方法
- T/CHC 115.5-2021 T/CAS 115.5-2021保健紡織品第5部分:遠紅外
- T/CERDS 3-2022企業(yè)ESG評價體系
- T/CECS 10309-2023一體化智能截流井
- T/CECS 10267-2023高模量聚丙烯一體化預制泵站
- T/CECS 10028-2019綠色建材評價鋼結構房屋用鋼構件
- T/CCSAS 047-2023危險化學品編碼與標識技術規(guī)范
- T/CCOA 7-2020低菌小麥粉
- 2025屆天津市蘆臺一中高三一模-化學試卷
- 蘇教版數(shù)學一年級下冊(2024)第七單元觀察物體(一)綜合素養(yǎng)測評 A 卷(含答案)
- 市政道路工程施工組織設計方案
- 活動策劃服務投標方案(技術方案)
- 2024年版豬場員工勞動合同模板3篇
- Unit 6 Section A 1a-2c 說課課件2024-2025學年人教版英語八年級下冊
- 2024年中國養(yǎng)老產業(yè)商學研究報告-銀發(fā)經濟專題
- 保衛(wèi)管理員三級練習題
- DBJ51T033-2014 四川省既有建筑電梯增設及改造技術規(guī)程
- 武昌實驗中學2025屆高三下第一次測試數(shù)學試題含解析
- 養(yǎng)老護理員培訓課程內容(范本)
評論
0/150
提交評論