微機課程方案字符串分類統(tǒng)計_第1頁
微機課程方案字符串分類統(tǒng)計_第2頁
微機課程方案字符串分類統(tǒng)計_第3頁
微機課程方案字符串分類統(tǒng)計_第4頁
微機課程方案字符串分類統(tǒng)計_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、個人資料整理 僅限學(xué)習(xí)使用微機原理課程設(shè)計報告題 目:字符串分類統(tǒng)計學(xué)生姓名:周喜民學(xué)號:32專業(yè)班級:計0601同組姓名:趙晏龍陳順指導(dǎo)教師:范軼彥設(shè)計時間:2018.1.4-2018.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é)果顯示出來。比如你輸入一串?dāng)?shù)

2、字“12345”,它會顯示出你輸入的這串?dāng)?shù)字,并顯示數(shù)字的個數(shù)為5,同時顯示其他相應(yīng)類字符為空。程序接收用戶鍵入的一行字符 字符長度不大于80個,以回車結(jié)束),并把字 符,數(shù)字,其它字符分類計數(shù),然后將結(jié)果存入以Letter , Digit , Other為名的存儲單元中。程序可采用 0AH斷將鍵入的字符直接送至鍵盤緩沖區(qū),然后逐 個取出分類計數(shù)。也可采用 01H在接收字符后進行分類奇數(shù)在存入緩沖區(qū)。程 序需要進入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:用于存放統(tǒng)計的 大寫字符、小寫字符、數(shù)字以及其它字符的個數(shù)。定義 OTHERCHAFBIGCHAR SMALLCHAR及堆棧用于存放統(tǒng)計的相應(yīng)字符保存,以便后來輸出。< 4).首先調(diào)用DOS 10號功能用DX指定BUF區(qū),將輸入的字符串保存到 BUF區(qū)中。< 5).將BUF+1的內(nèi)容取出來,判斷是否為0,如果為0表示沒有輸入任何 字符,則程序跳到 NEXTLA酶出提示信息 You

4、do not input any string! ), 然后顯示字符用 <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).取字符出來進行比較統(tǒng)計,如果它比 30H大且比39H小則為數(shù)字,如 果比41H大且比5AH小則為大寫字符,如果比 61H大且比7AH小則為小

5、寫字 符,如果不是這三種情況則為其它字符。注:DX存數(shù)字個數(shù),BX存小寫字母個數(shù),DI存大寫字母個數(shù),BP存其它 字符個數(shù)。< 8).將數(shù)字個數(shù)、大寫字母個數(shù)、小寫字母個數(shù)、其它字符個數(shù)依次放入 NUMK。< 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則輸出提

6、示沒有此類數(shù)據(jù),否則 輸出其它字符的個數(shù)以及輸入的哪些其它字符。<10).然后將程序跳到NEXTLA雄續(xù)執(zhí)行,依次下去。三、系統(tǒng)總體框圖開始 挺不輸入字行中回顯的入的中府字件班行判斷任上屯并DX十I字筋個系葭1A寫4:年學(xué)入曰I 并口】十1存入 口丁 H E RCHA 1<井 BP I 1矍一123 霸 入入入 望 人港簽 I. 結(jié)束 提鑫校有"婁羲露沒有比美Input:Ni n=12 34dfadffdGEGERERG*TlieTheT>mTheTltesmAllchai' n uiTilie r1 ofTlieT>ieo 七 lie rc lieu

7、* nLunber1' ofiszo the r-char-is : 5四、調(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)所有字符都有的時候:±npuit s tring

8、 Is = 1234df ddodGGEBERG*Ai.nteEre>* is =1234mjimLtsA o£ jLr電后get ±s s4Tlie IjjLscIiai* *導(dǎo):GEGERERGThe numbei* of bigchai* ±s : 8is : df adordsmAllchair is : GDo |/ou want to input a stzi'ingr asralni? <V/N>2)其中有字符類型缺少的時候:c: C: WINDOTSXsseMSZYcKd. exePie in put a string-:

9、 123124#$?The ±nputi*ing is =123124#$ *x$The integ-ei' is : 123124The muLnth靜臥 of iotegreir- Is : 6The data of bigrcTian' is nmll?The data o£ sfna.llch-ai'" is null ITThe ot herdiai* ±s :tt5The nuLmliei of of;lier'dia.i' is : 7Do 011 uaint o input a sti?ingf a

10、cfaLin?<V/N>Please input a string:dfkliritADGHCBHJThe input string is:dfkhri9tADGHCBHJThe date of integer is null,The bigchar 15:ADGHCBHJThe numhei* of blgchar is :8The smalic 11 ar is:dfkhriytThe number of snallchar is:8I he date nf otherchar is null,Do you v/ant to input a str-insr mg旦in?Y/N

11、3)什么字符都不輸入的時候:Please inpu a stpingf :Vou do not input any stpinytDo y want to Input a string again? ?/N:VPlease inpu.'t a strin?-Vou do not input any strinsfTDo you uant to input a string again?C¥/H:NPre零& any key tocontinue六、程序設(shè)計shuchu MACRO 。定義宏,用來輸出統(tǒng)計其它字符、數(shù)字、大小寫 個數(shù)LOCAL NEXTMOAH,0MOB

12、L,10DIV BLMODL,ALMOBH,AH。將余數(shù)暫時存放在 BHCMPAL,0JZ NEXTORDL,30hMOAH,2INT 21HNEXT:MODL,BHOR DL, '0' 。輸出余數(shù)MOAH,2INT 21Hdismsg CRLF。回車換行ENDMdismsg MACRO message 。輸出字符串LEADX,messageMOAH,9INT 21HENDMDATASSEGMENTSTR DBThe input string is:$'STR1 DBPlease input a string:$'STR2 DBThe integer is:$&

13、#39;STR3 DBThe bigchar is:$'STR4 DBThe smallchar is:$'STR5 DBThe otherchar is:$'STR6 DBThe date of integer is null!$'STR7 DBThe date of otherchar is null!$'STR8 DBThe data of bigchar is null!$'STR9 DBThe data of smallchar is null!$'NUM2 DBThe number of integer is:$'NU

14、M3 DBThe number of bigchar is:$'NUM4 DBThe number of smallchar is:$'NUM5 DBThe number of otherchar is:$'NUM6 DBDo you want to input a string again? (Y/N>:$NUM7 DBYou do not input any string!$'BUF DB100。定義緩沖區(qū)用來存放輸入的字符串DB?DB100 DUR24HCRLF DB0AH,0DH, '$'NUM DB4 DUP?>BIGCHA

15、RDB100 DUP24H>,0AH,0DH, '$'SMALLCHAfDB100 DUP24H>,0AH,0DH,'$'OTHERCHARB100 DUP24H>,0AH,0DH,'$'TAILDB?O用來存放其它字符的個數(shù)DATASENDSSTACKSSEGMENTSTACK1 DW100 DUP24H>TOP LABELWORDSTACKSENDSCODES SEGMENTASSUMCS:CODES,DS:DATAS,SS:STACKSSTARTAGAIN1:MOVX,STACKSMOSS,AXMOXSP, OFFS

16、ETTOPMOVX,DATASMODS,AXdismsg STR1。顯示輸入提示信息MOAH,10。輸入字符串LEADX,BUFINT 21Hdismsg CRLF?;剀嚀Q行CMPBUF+1,0JZ NEXTLAPdismsg STR。提示輸入字符串MOVCL,BUF + 1LEASI,BUF +2ABC:MODL,SI。用于輸出緩沖區(qū)里的輸入字符串MOAH,2INT 21HLOOP ABC dismsg CRLFMOVCL,BUF + 1 LEASI,BUF +2 MODX,0 MOBX,0 MODI,0 MOBP,0INC SI?;剀嚀Q行。將字符串的個數(shù)放入 CLO取字符串的首地址。D炊計

17、數(shù)字個數(shù)。BX計小寫字母個數(shù)。DI統(tǒng)計大寫字母個數(shù)。B呦計其他字符的個數(shù)MOAH,0L1:MOAL,SICMPAL,30HJL NEXT1CMPAL,39HJG L2PUSHAXINC DX。統(tǒng)計數(shù)字字符的個數(shù)JMP NEXTL2:CMPAL,41HJL NEXT1 CMPAL,5AHJG L3O統(tǒng)計大寫字符的個數(shù)MOBIGCHARDI,ALINC DIJMP NEXTL3:CMPAL,61H。統(tǒng)計小寫字符的個數(shù)JL NEXT1CMPAL,7AHJG NEXT1MOSMALLCHARBX,ALINC BXJMP NEXTNEXT1: MOVOTHERCHARBP,ALINC BP。統(tǒng)計其它字符

18、的個數(shù)NEXT: INC SIDECCLJNZ L1MOVNUM,DL。將統(tǒng)計的個數(shù)存放在 NUM)存儲區(qū)MOVAX,DI。數(shù)字個數(shù)放在NUM大寫字符個數(shù)放在NUM+1MOVNUM+1,AL 。小寫字符個數(shù)放在 NUM+2其他字符的個數(shù)放在 NUM+3MOVNUM+2,BLMOVAX,BPMOVTAIL,AL。將其它字符的個數(shù)送入 TAIL保存,以便后來輸出(否則9號功能輸出遇$則退出MOVNUM+3,ALCMFNUMQ。判斷數(shù)字個數(shù)如果為 0則輸出提示符,否則循環(huán)輸出JZ NNULLdismsg STR2。輸出數(shù)字字符的提示符MOVCL,NUMMOXBP, OFFSETTOPSUBBP,2O

19、K:MODX,STACK1BPMOVAH,2INT 21HSUBBP,2LOOP OKdismsg CRLFdismsg NUM2。輸出數(shù)字字符數(shù)字的提示符MOVAL,NUM 。輸出數(shù)字字符的個數(shù)shuchuJMP NNULL1NNULL:dismsg STR6NNULL1:dismsg CRLFCMPNUM+1,0。判斷大寫字符的個數(shù)如果為 0則輸出提示符,否則以字符串形式輸出JZ BNULLdismsg STR3。輸出大寫字符的提示符dismsg BIGCHARdismsg CRLFdismsg NUM3。輸出大寫字符數(shù)字個數(shù)提示符MOAL,NUM+1。輸出大寫字符的個數(shù)shuchu JM

20、P BNULL1BNULL: dismsg STR8BNULL1: dismsg CRLFCMPNUM+2,0。判斷小寫個數(shù),如果為0則輸出提示符,否則以字符串形式輸出JZ SNULL dismsg STR4。輸出小寫字符的提示符dismsg SMALLCHARdismsg CRLFdismsg NUM4。輸出小寫字符數(shù)字個數(shù)的提示符MOAL,NUM+2。輸出小寫字符的個數(shù)shuchuJMP SNULL1SNULL:dismsg STR9SNULL1:dismsg CRLFCMPTAIL,0。判斷其他字符的個數(shù)如果為 0則輸出提示符,否則循環(huán)輸出JZ ONULLdismsg STR5。輸出其它

21、字符的提示符MOVCLTAILMOV5I, OFFSETOTHERCHARL4:。輸出其它字符MODL,SIMOAH,2INT 21HINC SILOOP L4dismsg CRLFdismsg NUM5。輸出其它字符個數(shù)的提示符MOAL,NUM+3。輸出其它字符的個數(shù)shuchuJMP AGAINONULL:dismsg STR7JMP AGAINNEXTLAP:dismsg NUM7AGAIN:dismsg CRLFdismsg NUM6MOAH,01HINT 21HMOBL,ALdismsg CRLFCMFBL, 'Y'JZ AGAIN1CMFBL, 'y'

22、;JZ AGAIN1ONULL2:MOAH,4CHINT 21HCODES ENDSENDSTART七、總結(jié)微機原理與接口技術(shù)是一門很有趣的課程,任何一個計算機系統(tǒng)都是一個復(fù)雜的整體,學(xué)習(xí)計算機原理是要涉及到整體的每一部分。討論某一部分原理時又要涉及到其它部 分的工作原理。這樣一來,不僅不能在短時間內(nèi)較深入理解計算機的工作原理,而且也很難孤立地理解某一部分的工作原理。所以,在循序漸進的課堂教案過程中,我總是處于學(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)功能來說,我覺得我們做的還

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論