版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課程設計任務書學生姓名:蔣宏專業(yè)班級:自動化0708班指導教師:石云張蔚工作單位:自動化學院題目: 鍵盤錄入數(shù)據(jù)的轉換與顯示初始條件:從鍵盤讀入二個五位十進制數(shù)(1位符號位+4位數(shù)值位,并將這二個十進制數(shù),分別轉換為二進制數(shù),然后求其和,再將和以十進制形式進行顯示。按Q 退出程序。要求完成的主要任務:(包括課程設計工作量及其技術要求,以及說明書撰寫等具體要求(1設計任務及要求分析(2方案比較及認證說明(3系統(tǒng)原理闡述(4硬件設計課題需要說明:硬件原理,電路圖,采用器件的功能說明(5軟件設計課題需要說明:軟件思想,流程圖,源程序及程序注釋(6調試記錄及結果分析(7總結(8參考資料(9附錄:芯片資
2、料或程序清單,軟件演示屏幕拷貝圖或硬件實物圖時間安排:1月18日1月20日:收集資料,方案選擇1月21日1月23日:整體流程,程序細節(jié)1月25日1月27日;調試程序,報告撰寫1月28:交設計報告,程序演示,答辯指導教師簽名:年月日系主任(或責任教師簽名:年月日摘要:本文所設計的程序是運行于硬件和DOS操作系統(tǒng)下的,本程序通過調用DOS下的基本輸入輸出中斷,實現(xiàn)數(shù)據(jù)的輸入和輸出。程序中有兩個子程序,輸入的兩個五位的十進制數(shù)通過調用一個叫ASC_TO_BIN的子程序可以將其轉換成二進制數(shù),然后求兩個二進制數(shù)的和,求和完成后,再調用一個叫BIN_TO_ASCII的子程序將二進制和轉換成相應的ASCI
3、I碼,調用DOS輸出中斷顯示在屏幕上,最后看用戶是否輸入的是Q或者q,若是則程序結束,若不是則程序循環(huán)。關鍵字:8086;DOS系統(tǒng);ASCII碼;中斷目錄1設計任務及要求分析 (11.1設計任務 (11.2要求分析 (12方案比較及認證說明 (23系統(tǒng)原理闡述 (33.1統(tǒng)設計的軟硬件環(huán)境 (33.2統(tǒng)設計中用到的DOS調用 (34軟件設計說明 (54.1 ASCII碼轉換成二進制算法實現(xiàn) (54.2二進制轉換成ASCII碼算法實現(xiàn) (54.3主程序結構分析 (54.4子程序結構分析 (64.5中斷程序的結構分析 (85調試記錄及結果分析 (95.1調試記錄 (95.2調試結果分析 (9總結
4、和心得體會 (10參考文獻 (11附錄一源程序和程序注釋 (12附錄二程序運行結果截圖 (16附錄三本科生課程設計成績評定表 (17附錄四評定項目表 (19鍵盤錄入數(shù)據(jù)的轉換與顯示1設計任務及要求分析從鍵盤讀入二個五位十進制數(shù)(1位符號位+4位數(shù)值位,并將這二個十進制數(shù),分別轉換為二進制數(shù),然后求其和,再將和以十進制形式進行顯示。按Q退出程序。從設計任務中可以看出此次課設要求是:從鍵盤中輸入兩個五位十進制數(shù)(格式如-8888、+9999等,顯然通過鍵盤輸入的此類十進制數(shù)實際上輸入的是對應字符的ASCII 碼,若想求兩個數(shù)的和必須先將這兩個數(shù)對應的二進制數(shù)求出,然后再求其和,求和完成后將二進制數(shù)
5、再轉換成對應的十進制數(shù)用顯示器輸出,完成兩個五位十進制數(shù)的求和然后以十進制的形式顯示。2方案比較及認證說明輸入輸出方式的比較。方案一:BIOS功能調用方式輸入輸出數(shù)據(jù)。此方案使用相對復雜一些,而其我們對BIOS 功能調用不是很熟悉。方案二:MSDOS功能調用的方式輸入輸出數(shù)據(jù)。此方案簡單實用、由于我們對MSDOS 比較熟悉,所以用起來十分方便。綜上,我們選用方案二的輸入輸出方式,輸入數(shù)據(jù)和輸出數(shù)據(jù)。3系統(tǒng)原理闡述DOS是美國Microsoft公司為IBM-PC研制的磁盤操作系統(tǒng)(Disk Operating System,也稱為IBM-DOS或MS-DOS。DOS不僅為用戶提供了許多使用的指令
6、,而其還有用戶可以直接調用的上百個常用子程序。對這些子程序的調用,稱為系統(tǒng)功能調用。這些子程序的功能主要是進行磁盤的讀寫、控制管理、內存管理、基本輸入輸出管理等。在使用時,用戶不需要關心和了解各種IO接口硬件的詳細情況就能直接完成對IO接口的控制和管理。為了使用方便,將所有子程序從1開始循序編號,這些編號稱為DOS功能調用號。其調用過程為:DOS功能調用號送AH寄存器。如果需要,按要求給定輸入?yún)?shù)(有的不需要輸入?yún)?shù)。寫入中斷指令“INT 21H”。下面介紹一些在本程序中用到的一些DOS輸入輸出功能。功能:從鍵盤輸入一個字符。輸入?yún)?shù):無。輸出參數(shù):AL=ASCII碼。功能:在屏幕上顯示1個字
7、符(ASCII碼。輸入?yún)?shù):DL=ASCII碼。輸出參數(shù):無。3.多字符輸入0AH功能:多個字符輸入到緩沖區(qū)。輸入?yún)?shù):DS:DX=輸入緩沖區(qū)首地址。輸出參數(shù):DS: DX=輸入字符串所在緩沖區(qū)地址。設置緩沖區(qū)要注意以下幾點:緩沖區(qū)第1個字節(jié)存放預定字符個數(shù),最多255個。緩沖區(qū)第2個字節(jié)保留,用于調用返回時存放實際輸入的字符個數(shù)。緩沖區(qū)第3個字節(jié)開始,存放輸入的字符。緩沖區(qū)要考慮留一個字節(jié)作為回車符。4多字符輸出9號功能:多個字符輸出到屏幕顯示。輸入?yún)?shù):DS:DX=輸出字符緩沖區(qū)首地址。輸出參數(shù):無。該功能對輸出字符的個數(shù)沒有要求,但是輸出字符串要以$結束。5過程終止4CH號該調用的功能是
8、結束當前程序,并且返回調用它的程序。如果在DEBUG狀態(tài)下運行則返回DEBUG;如果在DOS下運行,則返回DOS。在匯編語言程序結束處加上“MOV A X,4C00H”和“INT 21H”兩條指令,以利于程序執(zhí)行完畢,返回操作系統(tǒng)控制。4軟件設計說明4.1 ASCII碼轉換成二進制算法實現(xiàn)首先將其轉換成十進制數(shù)字,再用累加和乘10加X的方法變成二進制數(shù),如將1358轉換為二進制數(shù),可先將累加和賦0,再計算(1*10+3*10+5*10+8,結果為二進制數(shù),再由符號位決定是否需要求補。程序執(zhí)行一次一共用了9次21H號中斷。第1、3、5、6、7次調用前AH寫入的是9,所以這幾次調用INT21是在屏
9、幕上顯示DX為首地址的字符串,也就是顯示的是響應的提示信息和兩個數(shù)之和的結果;第2、4次INT21H中斷調用前AH寫入了10,所以這兩次調用的作用是輸入兩個五位十進制數(shù),且在沒個五位的十進制數(shù)輸入后,立即調用ASCII_TO_BIN函數(shù)轉換成相應的二進制數(shù);第八次INT21H調用之前AH中寫入了1,該次輸入一個字符,在把輸入的該字符和Q和q比較,看是否是其中的一個,若是則程序結束,此時在AH中寫入4CH中,再調用INT21H,顯然是把CPU交給操作系統(tǒng);若不是則程序回到開始處,程序循環(huán)。主程序的流程圖如圖4-1所示。 圖4-1 主程序流程圖ASC_TO_BIN(ASCII碼字符轉化成二進制子函
10、數(shù),該函數(shù)的功能是五位ASCII碼十進制數(shù)轉換成二進制數(shù);在主程序中一共調用了兩次該函數(shù),分別是在輸入完成兩個五位十進制數(shù)后。算法實現(xiàn)已在前面分析,這里不再重述,ASC_TO_BIN子程序的流程圖如圖4-2圖所示。 圖4-2 ASC_TO_BIN子程序流程圖BIN_TO_ASCII(將二進制數(shù)轉換成相應ASCII碼形式十進制數(shù)函數(shù),該函數(shù)的功能是將一個二進制數(shù)轉化成對應ASCII碼形式的十進制數(shù),以便屏幕輸出。該子程序的算法實現(xiàn)已在前面說明,程序流程圖如圖4-3所示。 圖4-3 BIN_TO_ASCII子程序流程圖INT21H號中斷是一個系統(tǒng)中斷,中斷程序根據(jù)中斷前寫入AH中的值決定中斷的功能
11、,前面已說明中斷程序的功能,中斷程序執(zhí)行的流程圖如圖4-4所示。 圖4-4 中斷程序流程圖5調試記錄及結果分析剛寫完程序第一次調試時,程序老是出錯,錯誤提示如圖5-1所示。 圖5-1 調試出錯提示經(jīng)過反復認真檢查和修改,最后終于找到了程序出錯的原因,原來是子程序調用出錯了,后面修改了子程序和子程序的調用方式,程序就可以正常運行了。運行結果如圖5-2所示。 圖5-2 正確運行的結果從圖5-2和附錄二中可以看出,程序運行結果完全滿足預期要求。程序能夠完成兩個五位十進制數(shù)的求和,并顯示結果。并能實現(xiàn)按Q或q推出程序??偨Y和心得體會通過這次微機原理與接口技術課程設計,加強了我們動手、思考和解決問題的能
12、力。通過參加這次的課程設計,我學到了很多無法在課堂上學到的知識。在課堂上我們學習的都是理論知識,而課程設計是鍛煉我們把那些理論運用到我們實際的生活中。現(xiàn)在,我對課設做以下幾點總結:(1通過微機原理與接口技術的課程設計,使我認識到計算機技術廣泛應用于現(xiàn)代眾多的領域中,起著越來越重要的作用。隨著電子技術和計算機技術的發(fā)展和應用,計算機應用越來越廣泛,計算機應用分為數(shù)值計算和非數(shù)值應用兩大領域。非數(shù)值應用又包括數(shù)據(jù)處理、知識處理,例如信息系統(tǒng)、工廠自動化、辦公室自動化、家庭自動化、專家系統(tǒng)、模式識別、機器翻譯等領域。我們學習的微機原理與接口技術是現(xiàn)在計算機技術的基礎,現(xiàn)在學好微機原理與接口技術,好好
13、的理論聯(lián)系實際,將來才能為我國的計算機技術發(fā)展做出貢獻。(2通過微機原理與接口技術的課程設計,使我學以致用,理論聯(lián)系實際,真正學到了實用的知識。上微機原理與接口技術的時候,我們學了8086CPU的內部結構、匯編語言、基本輸入輸出設備、定時器芯片、中斷控制、串行并行通信、AD、DA等是一些理論知識,很難、很經(jīng)典,雖然我們看上去懂了,也會做題了。通過課程設計時我們才知道,原來我們只是對理論略知一二,要是談到實際應用我們真是無從下手。不過,還好我們有課程設計,使我們剛學完理論知識,馬上又學以致用,使我們的知識掌握的更加的牢固,同時也激發(fā)了我們創(chuàng)新的思想,真是一舉兩得,收獲不小啊。所以我們感謝課程設計
14、,感謝老師們認真耐心的輔導我們的課程設計,我希望以后我們可以多做一些類似的課程設計。(3通過微機原理與接口技術的課程設計,本人搞懂了一直來沒有搞清楚的幾個問題。我們在學習微機原理與接口技術以前,我們學過C、VB等高級語言,一直以來我們都用高級語言編程的,一直以來我不明白高級語言是如何在CPU中執(zhí)行和計算的通過學習匯編語言我明白了指令時如何執(zhí)行的。還有我很早就開始學習單片機,當然用的是高級語言C,一直以來我有都沒有明白堆棧的概念,不明白堆棧具體有什么用,該怎么用?通過匯編語言的學習我也明白堆棧的作用和堆棧具體應該怎么用。總之,通過微機原理與接口技術的課計,我獲益匪淺我,希望以后可以多做一些課設。
15、參考文獻1 周佩玲彭虎傅忠謙.微機原理與接口技術.北京:電子工業(yè)出版社,20052 馮繼超.微機原理實驗指導書.武漢:武漢理工大學教材中心,20083 索梅.匯編語言程序設計.北京:清華大學出版社,19944 朱冰.軟件工程.北京:北京大學出版社,20035 李昭原.數(shù)據(jù)庫原理及應用.北京:科學技術出版社,20006 周佩玲彭虎傅忠謙. 微機原理與接口技術學習指導.北京:電子工業(yè)出版社,2008附錄一源程序和程序注釋DATA SEGMENT COMMONINPUT_MESSAGE DB0AH , 'PLEASE INPUT A NUMBER(LESS THAN 5 FIGURES:$&
16、#39;QUIT_MESSAGE DB0AH, 'ENTER Q OR q TO QUIT ANY OTHER TO CONTINUE:$'IN_ASC_BUF DB6;十進制數(shù)的輸入緩沖區(qū),共可接收6個字符DB ? ;保留,用于10號調用時DOS填入實際輸入字符個數(shù)DB6DUP(? ;一個符號位,四位數(shù)字ASCII碼,加上一個回車符,共計6字符BIN_BUF1 DW ? ;一個數(shù)轉換為二進制后,放于此處OUTPUT_MESSAGE DB0AH , 'THE SUM IS:' , '$'OUT_ASC_SUM DB6DUP(? , '$&
17、#39; ;將二個數(shù)的和轉換為ASCII碼后,放于此處,;以供9號調用顯示DATA ENDSCODE SEGMENTASSUME CS:CODE , DS:DATAsl PROC FARSTART:MOV AX , DATAMOV DS , AXMOV DX , OFFSET INPUT_MESSAGEMOV AH , 9INT21H;提示輸入一個數(shù)MOV DX , OFFSET IN_ASC_BUFMOV AH , 10INT21H;讀取第一個數(shù)CALL ASC_TO_BIN ;轉換第一個數(shù)為二進制MOV BIN_BUF1 , AX;保存第一個數(shù)MOV DX , OFFSET INPUT_M
18、ESSAGEMOV AH , 9INT21H;提示輸入一個數(shù)MOV DX , OFFSET IN_ASC_BUFMOV AH , 10INT21H;讀取第二個數(shù)CALL ASC_TO_BIN ; 轉換第二個數(shù)為二進制ADD AX , BIN_BUF1 ;計算這二個數(shù)之和CALL BIN_TO_ASCII ;將和轉換為ASCII碼,以供顯示用MOV DX , OFFSET OUTPUT_MESSAGEMOV AH , 9INT21HMOV DX , OFFSET OUT_ASC_SUMMOV AH , 9INT21HMOV DX,OFFSET QUIT_MESSAGEMOV AH , 9INT2
19、1HMOV AH , 1INT21HCMP AL,'Q'JZ OVERCMP AL,'q'JZ OVERJMP STARTOVER: MOV AH , 4CHINT21Hsl ENDPASC_TO_BIN PROC;ASCII碼轉換為二進制數(shù);入口:十進制數(shù)的ASCII碼在IN_ASC_BUF內;出口:轉換后的二進制數(shù)在AX內;算法:先將其轉換成十進制數(shù)字,再用累加和乘10加X的方法變成二進制數(shù),如將;358轉換為二進制數(shù),可先將累加和賦0,再計算(0*10+3*10+5*10+8,結果為二;進制數(shù),再由符號位決定是否需要求補。MOV CL , IN_ASC_B
20、UF+1;取字符個數(shù)MOV CH , 0DEC CL;扣除符號位MOV BX , OFFSET IN_ASC_BUF+3;調整BX指向十進制數(shù)的最高位PUSH BXPUSH CXL1:MOV AL , BXAND AL , 0FHMOV BX , ALINC BXLOOP L1 ;將所有數(shù)字字符的高四位清0,使之變?yōu)閿?shù)字值POP CXPOP BXMOV AX , 0;累加和賦初值MOV SI , 10L2:MUL SIADD AL , BXADC AH , 0INC BXLOOP L2 ;累加乘10CMP IN_ASC_BUF+2 , '+'JZ L3 ;符號是正號,轉移NEG
21、 AX;符號是負號,求補L3:RETASC_TO_BIN ENDPBIN_TO_ASCII PROC;將二進制數(shù)轉換為對應十進制數(shù)數(shù)字的ASCII碼;入口:二進制數(shù)在AX內;出口:轉換后的ASCII碼在OUT_ASC_SUM變量內;算法:AX中的數(shù)范圍在+32767到-32768之間,先檢查AX中的符號位,以決定輸出“+”;還是“-”,若是負數(shù),應先求補,得到原碼后即可與正數(shù)作統(tǒng)一處理。轉換方法為將被轉換的;二進制數(shù)先除以10000,商;即為萬位數(shù),再將余數(shù)除以1000,商為千位數(shù),以此類推,求出;百、十位數(shù),剩下的為個位數(shù)。最后,將各個數(shù)加上30H,即成為對應字符。MOV OUT_ASC_SUM , '+'CMP AX , 0JGE L4 ;不是負數(shù),轉移NEG AXMOV OUT_ASC_SUM , '-'L4:CWDMOV BX , 10000DIV BXADD AL , 30H;將萬位轉換為數(shù)字(商應在AX內,但因為商不大于3,;所以有效部分在AL內MOV OUT_ASC_SUM+1 , AL;保存萬位數(shù)字
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 44869-2024玩具及兒童用品綠色包裝技術規(guī)范
- 廣東省廣州市海珠區(qū)2023-2024學年二年級上學期數(shù)學期末試卷
- 信陽師范大學《服裝與服飾》2023-2024學年第一學期期末試卷
- 信陽涉外職業(yè)技術學院《病原生物與人類健康》2023-2024學年第一學期期末試卷
- 信陽農(nóng)林學院《創(chuàng)新管理選修》2023-2024學年第一學期期末試卷
- 新余學院《液壓傳動與控制實驗》2023-2024學年第一學期期末試卷
- 信陽涉外職業(yè)技術學院《分子生物學韓》2023-2024學年第一學期期末試卷
- 2024年度抵押借款合同錦集:個人教育貸款抵押合同范本3篇
- 酒店客房水電維修合同3篇
- 進口貿(mào)易合同模板3篇
- 《稻草人》整本書導讀課(教學設計)2023-2024學年統(tǒng)編版語文三年級上冊
- 園區(qū)改造合同范本
- 情緒管理國內外研究現(xiàn)狀
- 成人流行性感冒抗病毒治療專家共識(2022年)解讀
- 走進民航智慧樹知到期末考試答案2024年
- 51天津市河北區(qū)2023-2024學年七年級上學期期末歷史試題
- MOOC 電工技術與實訓-深圳職業(yè)技術學院 中國大學慕課答案
- 福建省莆田市2023-2024學年八年級上學期期末質量監(jiān)測數(shù)學試卷(含解析)
- 國家集采藥品培訓課件
- 鳥類的遷徙與繁殖方式教學教案
- 公司轉讓債權股東會決議
評論
0/150
提交評論