版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
..課程設計任務書學生__專業(yè)__指導工作單位:XX理工大學題目:數制轉換3任務內容:通過鍵盤輸入一個8進制數,通過屏幕提示菜單選擇轉換成2進制,10進制或者16進制數并顯示。要求完成的主要任務:設計方案的選擇與確定:根據題目要求,參考相關文獻資料,選擇合適的軟硬件設計方案。圖紙繪制:確定硬件方案,完成完整硬件系統(tǒng)連線圖的繪制。程序確定軟件方案,繪制系統(tǒng)軟件流程圖,完成匯編程序的編制。說明書撰寫:完成課程設計說明書的撰寫,字數不少于3000字。時間安排:資料檢索與收集2天系統(tǒng)方案設計與確定1天系統(tǒng)設計與程序編寫3天說明書撰寫3天答辯1天指導教師簽名:年月日系主任〔或責任教師簽名:年月日目錄摘要I1原理分析12分析任務及要求32.1數制轉換算法32.1.1八進制轉換成二進制3八進制轉換成十進制3八進制轉換成十六進制33程序設計流程43.1繪制程序流程圖43.2設計思路54匯編語言源程序設計64.1堆棧段和數據段程序設計64.2主程序設計64.3輸入八進制數程序84.4輸出二進制數程序84.5輸出十進制數程序94.6輸出十六進制數程序104.7回車鍵確定程序115結果分析126小結與體會15參考文獻16附錄17..摘要本次程序設計主要是利用匯編語言中的DOS調用和各種進制間的轉換來實現(xiàn)通過鍵盤輸入一個8進制數,在屏幕上提示菜單選擇轉換成2進制,10進制或者16進制數并顯示。匯編語言是面向機器的程序設計語言。匯編語言比機器語言易于讀寫、調試和修改,同時也具有執(zhí)行速度快,占用內存空間少等優(yōu)點,但在編寫復雜程序時具有明顯的局限性,匯編語言依賴于具體的機型,不能通用,也不能在不同機型之間移植,本次設計主要是利用8086匯編語言進行設計。常說匯編語言過時,是低級語言,并不是說匯編語言要被棄之,相反,匯編語言仍然是程序員必須了解的語言,在某些行業(yè)與領域,匯編是必不可少的,非它不可適用。只是,現(xiàn)在計算機最大的領域為IT軟件,也是我們常說的Windows編程,在熟練的程序員手里,使用匯編語言編寫的程序,運行效率與性能比其它語言寫的程序時成倍的優(yōu)秀,但是代價是需要更長的時間來優(yōu)化,假如是對計算機原理及編程基礎不扎實,實在是得不償失,對比現(xiàn)在的軟件開發(fā),已經是市場化的軟件行業(yè),加上高級語言的優(yōu)秀與跨平臺,一個公司不可以讓一個團隊使用匯編語言來編寫所有的東西,花幾倍甚至是幾十倍的時間,不如使用其它語言來完成只要最終結果不比匯編語言編寫的差太多,就能搶先一步完成,這是市場經濟下得必然結果。但是,這也并不代表匯編語言是沒有用的、不需要學的,相反,只有在理解和掌握匯編語言的基礎上,才能更好的使用其它高級語言。關鍵詞:匯編,匯編語言,機器語言,DOS調用..數制轉換課程設計1原理分析進位計數制是人們利用符號來計數的方法。一種進位計數制包含一組數碼符號和兩個基本因素。數碼是用不同的數字符號來表示一種數制的數值,這些數字符號稱為"數碼"。基是數制所使用的數碼個數稱為"基"。權是某數制每一位所具有的值稱為"權"。十六進制<Hexadecimal>0.1.2.3.4.5.6.7.8.9.A.B.C.D.E.F十進制<Decimal>0.1.2.3.4.5.6.7.8.9八進制<Octal>0.1.2.3.4.5.6.7二進制<Binary>0.1在計算機內部采用二進制計數制,但在實際應用中,需要計算機處理的信息是多種多樣的,如各種進位制的數據,不同語種的文字符號和各種圖像信息等。但在計算機中采用的是二進制計數制。本次課程設計通過所學的微機原理,用匯編語言編寫程序,實現(xiàn)二進制轉換成十進制或十六進制,十進制轉換成二進制或十六進制,十六進制轉換成二進制或十進制。十進制轉換為二進制整數部分的方法叫做除2取余法,每次將整數部分除以2,余數為該位權上的數,而商繼續(xù)除以2,余數又為上一個位權上的數,這個步驟一直持續(xù)下去,直到商為0為止,最后讀數時候,從最后一個余數讀起,一直到最前面的一個余數。小數部分的方法叫乘2取整法,就是將小數部分乘以2,然后取整數部分,剩下的小數部分繼續(xù)乘以2,然后取整數部分,剩下的小數部分又乘以2,一直取到小數部分為零為止。如果永遠不能為零,就同十進制數的四舍五入一樣,按照要求保留多少位小數時,就根據后面一位是0還是1,取舍,如果是零,舍掉,如果是1,向入一位。換句話說就是0舍1入。讀數要從前面的整數讀到后面的整數。二進制轉換為十進制不分整數和小數部分,方法〔按權相加法是將二進制每位上的數乘以權,然后相加之和即是十進制數。二進制轉換為十六進制用取四合一法,即從二進制的小數點為分界點,向左〔向右每四位取成一位,接著將這四位二進制按權相加,得到的數就是一位十六位二進制數,然后,按順序進行排列,小數點的位置不變,得到的數字就是我們所求的十六進制數。如果向左〔向右取四位后,取到最高〔最低位時候,如果無法湊足四位,可以在小數點最左邊〔最右邊,即整數的最高位〔最低位添0,湊足四位。將十六進制轉換為二進制,取一分四法,即將一位十六進制數分解成四位二進制數,用四位二進制按權相加去湊這位十六進制數,小數點位置照舊。十進制轉換成十六進制的方法與十進制轉換成二進制的方法相同,但不同的是每次除以16。2分析任務及要求題目內容:通過鍵盤輸入一個8進制數,通過屏幕提示菜單選擇轉換成2進制,10進制或者16進制數并顯示。設計要求:根據題目要求,參考相關文獻資料,選擇合適的軟硬件設計方案。圖紙繪制:確定硬件方案,完成完整硬件系統(tǒng)連線圖的繪制。程序確定軟件方案,繪制系統(tǒng)軟件流程圖,完成匯編程序的編制。通過對題目進行分析,容易看出本次設計可分為3個部分:輸入、進制轉換、輸出顯示。輸入可通過DOS調用——0AH,輸入一個八進制數;進行數值轉換;輸出也通過DOS調用——09H,實現(xiàn)輸出并顯示。2.1數制轉換算法2.1.1八進制轉換成二進制由八進制向二進制轉換可將每一位八進制數對應于三位二進制數,依次進行替換,轉換方式如下所示〔左邊是一位八進制數,右邊是該八進制數所對應的二進制數:0——000;1——001;2——010;3——011;4——100;5——101;6——110;7——111;2.1.2八進制轉換成十進制八進制向十進制的轉換可通過按基數位權的展開方式來實現(xiàn),方法是將八進制每位上的數乘以權,然后相加之和即是十進制數。2.1.3八進制轉換成十六進制若將八進制直接向十六進制轉換,則比較復雜,故可以將八進制先轉換為二進制再轉換為十六進制。將八進制轉換為二進制的算法在第一節(jié)已經說明,這里不再贅述,故下面只說明二進制轉換為十六進制的算法〔左邊為二進制數,4個一組,右邊為16進制:0000——0;0001——1;0010——2;0011——3;0100——4;0101——5;0110——6;0111——7;1000——8;1001——9;1010——A;1011——B;1100——C;1101——D;1110——E;1111——F;3程序設計流程3.1繪制程序流程圖開始開始顯示MENU從鍵盤輸入數字顯示ERROR重新顯示MENU輸入數字是否小于4?DONEYNN圖3-1程序流程圖DONEDONE數字為1,轉向L1輸入一個八進制數轉換為二進制數并輸出顯示返回主程序數字為1,轉向L1輸入一個八進制數轉換為十進制數并輸出顯示返回主程序數字為1,轉向L1輸入一個八進制數轉換為十六進制數并輸出顯示返回主程序3.2設計思路首先對原理進行分析,了解不同進制數之間是如何進行轉換的,充分認識匯編語言的指令系統(tǒng),掌握各個匯編語言的指令系統(tǒng),掌握各個匯編指令的功能及用法,了解各種程序結構〔順序、分支、循環(huán)和子程序的特點。首先定義堆棧段,再定義數據段,在數據段中輸入MENU中要顯示的內容,再建一個表TABLE,TABLE中的內容為L1,L2,L3。然后根據題目要求設計簡單的程序流程圖,再根據流程圖設計出每一個模塊的匯編語言程序,然后再通過調用、跳轉、轉移等方法將各個子程序連接在一起。這樣依據題目要求的匯編程序就初步完成了。本次利用的軟件是MF2KP,首先在MF2KP環(huán)境下輸入設計的匯編程序,然后編譯、連接、運行。4匯編語言源程序設計4.1堆棧段和數據段程序設計首先定義堆棧段和數據段的程序,程序設計如下所示:DATASEGMENTMENUDB'PleaseInputYourChoice:1:Bin2,2:Dec10,3:Hex16',0dh,0ah,'$'Mess1db'PleaseinputaOct8number:',0dh,0ah,'$'Mess2db'OutputBin2is:',0dh,0ah,'$'Mess3db'OutputDec10is:',0dh,0ah,'$'Mess4db'OutputHex16is:',0dh,0ah,'$'ERRORDB'ERROR!PLEASEINPUTYOURCHOICEAGAIN,$'TABLEDWAA1,L1,L2,L3DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA4.2主程序設計MAINPROCFARASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXAA1:LEADX,MENUMOVAH,09HINT21HMOVAH,01HINT21HSUBAL,30HCMPAL,04HDONELEADX,ERRORMOVAH,09HINT21HJMPAA1DONE:CMPAL,01HJZL1CMPAL,02HJZL2CMPAL,03HJZL3L1:CALLINOCTCALLFARCRLFCALLFAROUTBINCALLFARCRLFJMPAA1L2:CALLINOCTCALLCRLFCALLOUTDECCALLCRLFJMPAA1L3:CALLFARINOCTCALLFARCRLFCALLFAROUTHEXCALLFARCRLFJMPAA1MAINENDPMOVAH,4CHINT21HCODEENDSENDSTART4.3輸入八進制數程序INOCTPROCNEARLEADX,MESS1MOVAH,09HINT21HMOVBX,0INOL1:MOVAH,01HINT21HCMPAL,0DHJZINOEXITSUBAL,30HCMPAL,9EINOL2SUBAL,7INOL2:MOVCL,3SHLBX,CLORBL,ALJMPINOL1INOEXIT:RETINOCTENDP4.4輸出二進制數程序OUTBINPROCNEARLEADX,MESS2MOVAH,09HINT21HMOVCX,16OBL1:ROLBX,1MOVDL,BLANDDL,01HORDL,30HMOVAH,02HINT21HLOOPOBL1RETOUTBINENDP4.5輸出十進制數程序OUTDECPROCLEADX,MESS3MOVAH,09HINT21HMOVCX,10000CALLDECL1MOVCX,1000CALLDECL1MOVCX,100CALLDECL1MOVCX,10CALLDECL1MOVCX,1CALLDECL1RETOUTDECENDPDECL1PROCNEARMOVAX,BXMOVDX,0DIVCXMOVBX,DXMOVDL,ALADDDL,30HMOVAH,2INT21HRETDECL1ENDP4.6輸出十六進制數程序OUTHEXPROCLEADX,MESS4MOVAH,09HINT21HMOVCX,4OHL1:ROLBX,1ROLBX,1ROLBX,1ROLBX,1MOVDL,BLANDDL,0FHADDDL,30HCMPDL,39HEOHL2ADDDL,7OHL2:MOVAH,02HINT21HLOOPOHL1RETOUTHEXENDPCODEENDSENDSTART4.7回車鍵確定程序CRLFPROCMOVAH,02HMOVDL,0DHINT21HMOVDL,0AHINT21HRETCRLFENDP5結果分析調試運行后首先出現(xiàn)的界面是:請輸入您的選擇:轉換為二進制輸出則輸入1;轉換為十進制輸出則輸入2;轉換為十六進制輸出則輸入3;;結果如下圖4-1所示:圖5-1請輸入您的選擇上述選擇輸入后,就顯示:請輸入一個八進制數,結果如下圖4-2所示:圖5-2請求輸入一個八進制數此后輸入按照界面提示輸入相應的數字即可完成各數制間的轉換,其算法已在前面詳細說明,這里不再贅述。圖5-3將八進制轉換成二進制數輸出圖5-4將八進制轉換成十進制數輸出圖5-5將八進制轉換成十六進制數輸出6小結與體會"微機原理與系統(tǒng)設計"作為電子信息類本科生教學的主要基礎課之一,課程緊密結合電子信息類的專業(yè)特點,圍繞微型計算機原理和應用主題,以emeu8086CPU為主線,系統(tǒng)介紹微型計算機的基本知識,基本組成,體系結構和工作模式,從而使學生能較清楚地了解微機的結構與工作流程,建立起系統(tǒng)的概念。這次微機原理課程設計,在設計的這些日子里,可以說得是甘苦與共,甘的是可以學到很多很多的的東西,不僅鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。深刻了解了老師生科經常強調的東西,比如畫流程圖的習慣。起先我并不十分在意。但是,這次課程設計完全顛覆了我以前的認識,在這次課程設計中,畫程序方框圖顯得尤為重要。通過流程圖,在做設計的過程中,我清楚的知道每一步要做什么,每一步要完成什么任務,而且在程序調試的過程中也有利于查錯。相比之前錯誤的做法,究其原因還是因為課本上用到的基本都是一些基礎性質的程序,思路已經相當清晰再畫流程圖顯得多余。其次,以前對于編程工具的使用還處于一知半解的狀態(tài)上,但是經過一段編程的實踐,對于怎么去排錯、查錯,怎么去看每一步的運行結果,怎么去了解每個寄存器的內容以確保程序的正確性上都有了很大程度的提高。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在實際設計的過程中遇到問題,可以說是難以預測的,各種各樣的問題都會出現(xiàn),同時也會在設計的過程中發(fā)現(xiàn)自己的不足之處,例如對以前所學的知識掌握不夠牢固、理解的不夠深刻。通過這次課設我掌握了怎么去處理實際編程中出現(xiàn)的各類問題,其次在編程中發(fā)現(xiàn)了自己的弱點,最后鞏固了理論知識,提高了自己的動手能力。這次微原課設圓滿完成,個中滋味確是只有自己親身經歷才明白。這次的設計,讓我對微機原理的理解又更深了一層,提高了我將理論與實際相結合和解決問題的能力。同時,我要感謝幫助我的小伙伴們,他們的建議,指導,幫我分析讓我順利完成課設。通過這次課設,作為工科生的我應該謹記:程序只有在經常的讀和寫中才可提高,在以后學習編程語言的時候,應該要多動手實踐編程,實踐出真知是亙古不變的真理。參考文獻[1]潘峰主編.《微型計算機原理與匯編語言》.第三版.XX:電子工業(yè)出版社,2003[2]韓志軍.《微機原理》課程的教學改革與實踐[J].XX工程學院學報〔社會科學版.2003.12[3]楊素行《微型計算機系統(tǒng)原理及應用》,北京,清華大學出版社,20XX[4]《微機實驗及課程設計教程》〔試用版2.0,東南大學《微機系統(tǒng)與接口》課程組,20XX2月[5]周佩玲.《微型計算機原理與接口技術》.電子工業(yè)出版社,2005[6]譚浩強.《微型計算機原理及應用》.清華大學出版社,2001附錄以下為實際完整程序段DATASEGMENTMENUDB'PleaseInputYourChoice:1:Bin2,2:Dec10,3:Hex16',0dh,0ah,'$'Mess1db'PleaseinputaOct8number:',0dh,0ah,'$'Mess2db'OutputBin2is:',0dh,0ah,'$'Mess3db'OutputDec10is:',0dh,0ah,'$'Mess4db'OutputHex16is:',0dh,0ah,'$'ERRORDB'ERROR!PLEASEINPUTYOURCHOICEAGAIN,$'TABLEDWAA1,L1,L2,L3DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXAA1:LEADX,MENUMOVAH,09HINT21HMOVAH,01HINT21HSUBAL,30HCMPAL,08HEDONELEADX,ERRORMOVAH,09HINT21HJMPAA1DONE:CMPAL,01HJZL1CMPAL,02HJZL2CMPAL,03HJZL3L1:CALLINOCTCALLCRLFCALLOUTBINCALLCRLFJMPAA1L2:CALLINOCTCALLCRLFCALLOUTDECCALLCRLFJMPAA1L3:CALLINOCTCALLCRLFCALLOUTHEXCALLCRLFJMPAA1CRLFPROCMOVAH,02HMOVDL,0DHINT21HMOVDL,0AHINT21HRETCRLFENDPINOCTPROCNEARLEADX,MESS1MOVAH,09HINT21HMOVBX,0INOL1:MOVAH,01HINT21HCMPAL,0DHJZIN
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高考物理總復習專題十電磁感應第2講法拉第電磁感應定律、自感、渦流練習含答案
- 廣東省陽東廣雅學校高二信息技術 三維動畫制作教案
- 2024年學年七年級語文下冊 第二單元 告別抒懷 第4課《告別昨天的我》教案2 新疆教育版
- 2024-2025學年高中化學 第3章 第2節(jié) 課時3 鐵的重要化合物教案 新人教版必修1
- 2024年屆九年級歷史上冊 第5課 為爭取“民主”“共和”而戰(zhàn)教案2 北師大版
- 2023六年級數學上冊 二 比和比例 測量旗桿高度教案 冀教版
- 2023六年級數學下冊 三 解決問題的策略第三課時 解決問題的策略(練習課)教案 蘇教版
- 文書模板-中醫(yī)師承關系合同書
- 高考地理一輪復習第十二章環(huán)境與發(fā)展第一節(jié)環(huán)境問題與可持續(xù)發(fā)展課件
- 生活水泵房管理制度
- 中國苯酐(PA)行業(yè)前景動態(tài)及投資盈利預測研究報告(2024-2030版)
- 專題13.6 等腰三角形(精練)(專項練習)(培優(yōu)練)(學生版) 2024-2025學年八年級數學上冊基礎知識專項突破講與練(人教版)
- 文書模板-《電力工程驗收與評價表》
- 非新生兒破傷風診療規(guī)范(2024年版)解讀
- 2024至2030年中國硅灰數據監(jiān)測研究報告
- 2024-2025學年第一學期初二物理期中考試卷
- 微測網題庫完整版行測
- 多圖中華民族共同體概論課件第十一講 中華一家與中華民族格局底定(清前中期)根據高等教育出版社教材制作
- 生涯發(fā)展報告 (修改版)
- 求職能力展示
評論
0/150
提交評論