(最新整理)微機(jī)原理課程設(shè)計--字符串分類統(tǒng)計_第1頁
(最新整理)微機(jī)原理課程設(shè)計--字符串分類統(tǒng)計_第2頁
(最新整理)微機(jī)原理課程設(shè)計--字符串分類統(tǒng)計_第3頁
(最新整理)微機(jī)原理課程設(shè)計--字符串分類統(tǒng)計_第4頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、(完整)微機(jī)原理課程設(shè)計-字符串分類統(tǒng)計(完整)微機(jī)原理課程設(shè)計-字符串分類統(tǒng)計 編輯整理:尊敬的讀者朋友們:這里是精品文檔編輯中心,本文檔內(nèi)容是由我和我的同事精心編輯整理后發(fā)布的,發(fā)布之前我們對文中內(nèi)容進(jìn)行仔細(xì)校對,但是難免會有疏漏的地方,但是任然希望((完整)微機(jī)原理課程設(shè)計-字符串分類統(tǒng)計)的內(nèi)容能夠給您的工作和學(xué)習(xí)帶來便利。同時也真誠的希望收到您的建議和反饋,這將是我們進(jìn)步的源泉,前進(jìn)的動力。本文可編輯可修改,如果覺得對您有幫助請收藏以便隨時查閱,最后祝您生活愉快 業(yè)績進(jìn)步,以下為(完整)微機(jī)原理課程設(shè)計-字符串分類統(tǒng)計的全部內(nèi)容。21 微機(jī)原理 課程設(shè)計報告題 目: 字符串分類統(tǒng)計

2、學(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五、實(shí)驗(yàn)結(jié)果6六、程序設(shè)計7七、總結(jié)13八、參考文獻(xiàn)14一、需求分析 本程序主要用于,把輸入的一串字符分類統(tǒng)計,分別統(tǒng)計出數(shù)字、大寫字符、小寫字符和其他字符的個數(shù).本程序采用匯編語言編程,定義了宏、比較判斷、循環(huán)調(diào)用、統(tǒng)計等等,非常人性化的把統(tǒng)計的結(jié)果顯示出來。比如你輸入一串?dāng)?shù)字“12345”,它會顯示出你輸入的這串?dāng)?shù)

3、字,并顯示數(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).首先定義兩個宏,一個用于輸出統(tǒng)計各字符的個數(shù),另一個用于輸出字符串

4、。(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!),然后顯示字符串(do you want to input

5、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存其它字符個數(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)總體框圖四、調(diào)試分析本程序主要用于,把輸入的一串字符分類

7、統(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ù).五、實(shí)驗(yàn)結(jié)果1)所有字符都有的時候:2)其中有字符類型缺少的時候:3)什么字符都不輸入的時候:六、程序設(shè)計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 七、總結(jié)微機(jī)原理與接口技術(shù)是一門很有趣的課程,任何一個計算機(jī)系統(tǒng)都是一個復(fù)雜的整體,學(xué)習(xí)計算機(jī)原理是要涉及到整體的每一部分。討論某一部分原理時又要涉及到其它部分的工作原理.

19、這樣一來,不僅不能在短時間內(nèi)較深入理解計算機(jī)的工作原理,而且也很難孤立地理解某一部分的工作原理。所以,在循序漸進(jìn)的課堂教學(xué)過程中,我總是處于“學(xué)會了一些新知識,弄清了一些原來保留的問題,又出現(xiàn)了一些新問題”的循環(huán)中,直到課程結(jié)束時,才把保留的問題基本搞清楚。學(xué)習(xí)該門課程知識時,其思維方法也和其它課程不同,該課程偏重于工程思維,具體地說,在了解了微處理器各種芯片的功能和外部特性以后,剩下額是如何將它們用于實(shí)際系統(tǒng)中,其創(chuàng)造性勞動在于如何用計算機(jī)的有關(guān)技術(shù)和廠家提供的各種芯片,設(shè)計實(shí)用的電路和系統(tǒng),再配上相應(yīng)的應(yīng)用程序,完成各種實(shí)際應(yīng)用項(xiàng)目。這次實(shí)驗(yàn)并不是很難,主要的困難來自對程序的理解.功夫不負(fù)有心人,經(jīng)過四個人的合作和努力,我們最后對實(shí)驗(yàn)的原理有了清晰的認(rèn)識。雖然實(shí)驗(yàn)臺上的很多模塊單元沒有用到,但是就系統(tǒng)功能來說,我覺得我們做的還是不錯的。這次課設(shè)卻讓我們對實(shí)驗(yàn)臺有了足夠的了解,讓我們知道了實(shí)驗(yàn)臺上各個模塊的用法;而且它還讓我們對自己動手寫程序來控制實(shí)驗(yàn)臺的運(yùn)作有了一定的基礎(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論