版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、北 華 航 天 工 業(yè) 學(xué) 院微機原理與匯編語言程序設(shè)計課程設(shè)計報告報告題目: 年.月.日.星期,當(dāng)前時間顯示 作者所在系部: 計算機科學(xué)與工程 作者所在專業(yè): 計算機應(yīng)用 作者所在班級: 作 者 姓 名 : 指導(dǎo)教師姓名: 完 成 時 間 : 12月31日 北華航天工業(yè)學(xué)院教務(wù)處制前 言匯編語言是一門程序設(shè)計語言,學(xué)習(xí)程序設(shè)計的思想與方法既是學(xué)習(xí)的重點也是難點,課設(shè)的目標(biāo)就是要幫助讀者提高程序設(shè)計的能力,較深入地掌握匯編語言程序設(shè)計的思想與方法。學(xué)習(xí)匯編語言時,有些同學(xué)已經(jīng)學(xué)習(xí)過例如c語言等高級語言,將為我們理解程序設(shè)計的思想打下良好基礎(chǔ);但也可能從未學(xué)習(xí)過其他語言,雖然框框較少,但建立計算
2、機語言與程序設(shè)計的概念將是一大難題。匯編語言是多類知識交叉的學(xué)科,一部分知識往往還連帶著其他的相關(guān)內(nèi)容,如果處理不好這些連帶的內(nèi)容,將影響學(xué)習(xí)者對當(dāng)前知識點的理解。但是如果先掃清外圍,例如先介紹cpu與存儲器的內(nèi)部結(jié)構(gòu)、數(shù)據(jù)形式,再介紹指令與指令系統(tǒng)、程序設(shè)計方法,雖然可以做到內(nèi)容單一,也容易接受,但教學(xué)未以程序設(shè)計為線索展開,可能在開始學(xué)習(xí)后相當(dāng)長一段時間里不接觸匯編語言程序設(shè)計的內(nèi)容,將令學(xué)習(xí)過程抽象無趣。本書考慮到這些情況,采用了實踐先行的方法,以一個完整的程序?qū)嵗龑?dǎo),首先通過演示與動手,對程序設(shè)計及一些基本概念、基本方法建立感性認識,從而屏蔽了一些相關(guān)知識帶來的干擾,在此基礎(chǔ)上再逐一
3、展開。學(xué)習(xí)的過程除了理解還有記憶與模仿,人們往往都是從死記、模仿走向創(chuàng)新的,實踐引導(dǎo)的過程將為模仿創(chuàng)造條件,也提供了記憶的線索與內(nèi)容。以程序為線索展開,將使我們在整個學(xué)習(xí)過程中的每一步都目標(biāo)明確,主題清晰,基礎(chǔ)扎實,在不知不覺中登上程序設(shè)計的顛峰。 匯編語言的主要用途之一是涉及硬件的開發(fā),目前社會對具有一定硬件基礎(chǔ)的計算機 人才需求較旺,本書圍繞輸入、輸出程序設(shè)計介紹了若干常用芯片的結(jié)構(gòu)與程序設(shè)計方法,即加強了涉及硬件的程序設(shè)計技術(shù)的教學(xué),也有助于提高設(shè)計實際應(yīng)用系統(tǒng)的能力。目 錄第章 緒論1.1 引言.61. 選題的背景 .62設(shè)計思路和預(yù)期目標(biāo).61.2 課程設(shè)計目的與意義.61.3 課程
4、設(shè)計內(nèi)容與要求.61.4 課程設(shè)計地點及設(shè)計環(huán)境.6第章 系統(tǒng)設(shè)計2.1 系統(tǒng)框架設(shè)計72.1.1 主程序流程圖.72.2 系統(tǒng)模塊功能說明.72.2.1主程序說明.72.2.2 子程序及宏指令說明.8第3章 源程序代碼設(shè)計.8第4章 程序的調(diào)試和運行18 結(jié) 論.21參考文獻.21內(nèi)容摘要在用匯編語言編程時,常常需要將結(jié)果數(shù)據(jù)按不同的數(shù)制形式顯示出來,而計算機中的機器數(shù)是按二進制形式進行處理和存儲的,如何將它們進行轉(zhuǎn)換,分別按二進制形式顯示在crt顯示器上。調(diào)用dos中斷,得到系統(tǒng)當(dāng)前時間,并將其二進制轉(zhuǎn)換成ascii碼。本文給出具體的實現(xiàn)方法。關(guān)鍵詞 匯編 調(diào)用 子程序 二進制 中斷 循環(huán)
5、 延遲第章緒論1.1 引言1. 選題的背景日常生活中我會遇到許多時間和日期,時間和日期對我們的生活是十分重要的。平時只是知道看時間,而不知道那時鐘的原理。通過這次的課程設(shè)計讓我知道了其中的奧妙。對匯編中的一些語言認識更加一層。特別是中斷指令,循環(huán)程序、延遲等了解深了一點。2設(shè)計思路和預(yù)期目標(biāo) 設(shè)計思路利用dos的2ah和2ch號系統(tǒng)功能調(diào)用,將計算機系統(tǒng)的時間日期參數(shù)(bcd碼)送入寄存器。其中ch 和cl中保存的是小時數(shù)和分鐘數(shù);dh中保存的是秒鐘數(shù),cx中保存的是年,dl中保存的是日,將bcd碼表示的時,分,秒,日,年轉(zhuǎn)換成asc i i碼并送入屏幕顯示。此程序完成顯示系統(tǒng)的當(dāng)前日期和時間
6、的功能。1.2 課程設(shè)計目的與意義 課程設(shè)計目的與意義在于綜合運用所學(xué)知識解決實際問題,培養(yǎng)獨立開發(fā)、設(shè)計、調(diào)試、運行匯編語言程序的能力;鞏固課上的內(nèi)容,深化程序的設(shè)計開發(fā)能力;體現(xiàn)出自身的學(xué)習(xí)效果和特長。1.3 課程設(shè)計內(nèi)容與要求 設(shè)計要求:模塊設(shè)計、代碼編制,程序調(diào)試與運行,功能完善。設(shè)計內(nèi)容:顯示當(dāng)前的年.月.日.星期及時間。1.4 課程設(shè)計地點及設(shè)計環(huán)境 課程設(shè)計地點:圖書館五樓二號機房。 設(shè) 計 環(huán) 境 :軟件:masm5.0邏輯 ,windows或dos操作系統(tǒng),editplus或其他編輯程序。 硬件:8086及以上機型。第章 系統(tǒng)設(shè)計2.1 系統(tǒng)框架設(shè)計2.1.1 主程序流程圖
7、屏幕出始化讀取時間將“小時值”壓縮bcd數(shù)的高位和低位分別轉(zhuǎn)換為acsii碼。開始顯示時間顯示日期顯示星期顯示月份顯示年份恢復(fù)現(xiàn)場中斷返回2.2 系統(tǒng)模塊功能說明2.2.1主程序說明利用dos的2ah和2ch號系統(tǒng)功能調(diào)用,將計算機系統(tǒng)的時間日期參數(shù)(bcd碼)送入寄存器。其中ch 和cl中保存的是小時數(shù)和分鐘數(shù);dh中保存的是秒鐘數(shù),cx中保存的是年,dl中保存的是日,將bcd碼表示的時,分,秒,日,年轉(zhuǎn)換成asc i i碼并送入屏幕顯示。2.2.2 子程序及宏指令說明 disp macro char ;顯示字符 getnum macro char ;顯示數(shù)字 getweek macro c
8、har ;顯示星期getmonth macro char ;顯示月份第章源程序代碼設(shè)計showyear macro char push ax push si push cx push dx push bx push di mov ax,char mov si, offset divisors mov di, offset results mov cx,5 aa: mov dx,0 div word ptr si ;除法指令的被除數(shù)是隱含操作數(shù),此處為dx:ax,商ax,余數(shù)dx add al,48 ;商加上48即可得到相應(yīng)數(shù)字的ascii碼 mov byte ptr di,al inc di
9、add si,2 mov ax,dx loop aa mov cx,4 mov di, offset results bb: cmp byte ptr di,0 ;不輸出前面的0字符 jne print inc di loop bbprint: mov dx,di mov ah,9 int 21h pop di pop bx pop dx pop cx pop si pop axendmdisp macro char ;顯示字符 push ax push dx mov dl,char mov ah,2 int 21h pop dx pop axendmgetnum macro char ;顯示
10、數(shù)字 push ax push dx push cx mov al,char aam mov dh,al mov dl,ah or dl,30h mov ah,2 int 21h mov dl,dh or dl,30h mov ah,2 int 21h pop cx pop dx pop ax endmgetweek macro char ;顯示星期 push ax push dx push si push cx lea si,d_tab mov al,char xor ah,ah mov cx,axloop1:inc si inc si loop loop1 mov dx,si mov ah
11、,9 int 21h pop cx pop si pop dx pop axendmgetmonth macro char ;顯示月份 push ax push dx push si push cx lea si,m_tab mov al,char dec al xor ah,ah mov cx,ax loop2:inc si inc si loop loop2 mov dx,si mov ah,9 int 21h pop cx pop si pop dx pop axendmdatas segment divisors dw 10000, 1000, 100, 10, 1 results d
12、b 0,0,0,0,0,$ ;存放五位數(shù)ascii碼 buf db a$ buf1 db yue$ d_tab dw sun,mon,tue,wed,thu,fri,sat m_tab dw jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dce,tim sun db sunday$ mon db monday$ tue db tuesday$ wed db wednesday$ thu db thursday$ fri db friday$ sat db saturday$ jan db january$ feb db february$ mar db
13、 march$ apr db april$ may db may$ jun db june$ jul db july$ aug db august$ sep db september$ oct db october$ nov db november$ dce db december$ tim db .m. $datas endsstacks segment ;此處輸入堆棧段代碼stacks endscodes segment assume cs:codes,ds:datas,ss:stacksstart: mov ax,datas mov ds,ax lll: mov ah,2 mov bh,
14、0 mov dh,0 mov dl,0 int 10h mov ah,2ch int 21h getnum ch disp 3ah getnum cl disp 3ah getnum dh disp 00h cmp ch,12 ja p disp 41h jmp ap: disp 50ha: mov dx,m_tab+24 mov ah,9 int 21h mov ah,2ah int 21h getweek al disp 2ch getmonth dh disp 00h getnum dl disp 2ch showyear cx mov ah,06h mov dl,0ffh int 21
15、h je lll mov ah,4ch int 21hcodes ends end start第章程序的調(diào)試和運行該匯編編譯環(huán)境是masmedit,是一個集成開發(fā)環(huán)境,編譯,鏈接,運行全部集成在一起。程序編好后,直接點匯編按鈕,就會提示你有無錯誤,剛剛編好第一次匯編時,出現(xiàn)了好多錯誤,其中很大一部分是編寫代碼時不小心,打字出現(xiàn)的錯,其中,分號的錯誤是致命的,它讓匯編無法進行。參考網(wǎng)上的匯編程序,在改了n次的代碼后界面終于出現(xiàn)。達到了預(yù)期的效果。結(jié) 論本文的主要內(nèi)容是介紹用匯編語言(8086/dos)實現(xiàn)一個顯示系統(tǒng)時間的程序,在界顯示系統(tǒng)時間,在設(shè)計過程中,首先是按照題目所給的具體要求,根據(jù)自
16、己的設(shè)計思路,畫出流程圖,然后查閱相關(guān)資料,寫出流程圖中的各段子程序,把子程序放在masmforwindows集成環(huán)境中進行調(diào)試,找出程序中的錯誤,并進行修改和不斷完善,以得到符合要求的程序。有了這些子程序后,我們就可以根據(jù)要求寫出源程序,但在寫源程序的過程中遇到了很多困難,經(jīng)過反復(fù)調(diào)試跟修改,最終得到了符合要求的源程序。一周的匯編語言課程設(shè)計結(jié)束了,我的收獲很大。通過課程設(shè)計的編程和對編程過程中遇到的問題的思考,有效的提高了我對匯編的認識和理解,切實的提高了我的編程能力,補全了我的不足。通過這次課程設(shè)計,我鞏固所了學(xué)過的知識,能用匯編語言熟練地運用順序、選擇、循環(huán)三大結(jié)構(gòu),進一步掌握了各個指令的功能,特別是轉(zhuǎn)向指令,掌握了子程序的定義及調(diào)用,以及正確地運用debug指令。在整個程序的編寫中,調(diào)試占了很大部分的時間。要想寫好匯編語言的程序,必須認真對待代碼的每一個細節(jié),還必須熟練的掌握debug命令,這對程序的調(diào)試是非常重要的。通過這次實際動手能力的培養(yǎng),我進一步熟悉了匯編語言的結(jié)構(gòu)和使用方法,基本達到了能獨立閱讀、編制和調(diào)試一定規(guī)模的匯編語言程序的水平。另外,就是我對這門課內(nèi)容的學(xué)習(xí)感受。要學(xué)好這門課,以我愚見無非有以下三點:1) 課本上應(yī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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧省撫順市新?lián)釁^(qū)2024-2025學(xué)年九年級上學(xué)期第一次教學(xué)質(zhì)量檢測化學(xué)試卷含答案
- 湖北省隨州市廣水市第二高級中學(xué)2024-2025學(xué)年高三上學(xué)期10月月考數(shù)學(xué)試題(含答案)
- 2024年度上海市高校教師資格證之高等教育法規(guī)題庫檢測試卷A卷附答案
- 贛南師范大學(xué)《計量地理學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- 阜陽師范大學(xué)《裝飾繪畫》2021-2022學(xué)年第一學(xué)期期末試卷
- 阜陽師范大學(xué)《小學(xué)生心理健康教育》2023-2024學(xué)年第一學(xué)期期末試卷
- 阜陽師范大學(xué)《創(chuàng)新創(chuàng)業(yè)教育專題》2021-2022學(xué)年第一學(xué)期期末試卷
- 粵教版四年級下冊全書科學(xué)教案
- 無錫市2024-2025學(xué)年三年級上學(xué)期11月期中調(diào)研數(shù)學(xué)試卷二(有答案)
- 福建師范大學(xué)《化工原理實驗》2023-2024學(xué)年第一學(xué)期期末試卷
- 期中測試卷(1-5單元)(試題)-2024-2025學(xué)年人教版數(shù)學(xué)三年級上冊
- 化學(xué)丨四川省南充市高2025屆高考適應(yīng)性考試(南充一診)高三10月聯(lián)考化學(xué)試卷及答案
- 君主立憲制的英國 統(tǒng)編版九年級歷史上冊
- 2024年供應(yīng)鏈管理師技能競賽理論考試題庫(含答案)
- 2024-2030年中國富含蛋白質(zhì)的營養(yǎng)棒行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 前程無憂行測題庫
- 2024年公需課新質(zhì)生產(chǎn)力與高質(zhì)量發(fā)展題庫及答案
- T-CPA 006-2024 造紙用濕強劑 聚酰胺環(huán)氧氯丙烷PAE
- 新質(zhì)生產(chǎn)力-講解課件
- 人工智能智慧樹知到答案章節(jié)測試2023年復(fù)旦大學(xué)
- 心血管介入考試器械植入模擬試題卷
評論
0/150
提交評論