匯編課程設(shè)計(jì)報(bào)告顯示系統(tǒng)時(shí)間_第1頁(yè)
匯編課程設(shè)計(jì)報(bào)告顯示系統(tǒng)時(shí)間_第2頁(yè)
匯編課程設(shè)計(jì)報(bào)告顯示系統(tǒng)時(shí)間_第3頁(yè)
匯編課程設(shè)計(jì)報(bào)告顯示系統(tǒng)時(shí)間_第4頁(yè)
匯編課程設(shè)計(jì)報(bào)告顯示系統(tǒng)時(shí)間_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 課程設(shè)計(jì)報(bào)告課程名稱:微機(jī)原理與匯編語(yǔ)言設(shè)計(jì)題目: 顯示時(shí)間 院 系: 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 專 業(yè): 網(wǎng)絡(luò)工程 班 級(jí): 網(wǎng)絡(luò)工程200801 姓名(學(xué)號(hào)): 日 期: 指導(dǎo)教師: 成 績(jī): 目 錄 需求分析11.本課程設(shè)計(jì)題目12.本課程設(shè)計(jì)要求及任務(wù)13.課 程設(shè)計(jì)思想24.軟硬件開發(fā)環(huán)境25.開發(fā)工具2 概要設(shè)計(jì)31.分析32.設(shè)計(jì)3 詳細(xì)設(shè)計(jì)4程序流程圖41.軟件設(shè)計(jì)程序6 調(diào)試與操作說(shuō)明11 課程設(shè)計(jì)總結(jié)與體會(huì)14 致謝14 參考文獻(xiàn)14微機(jī)原理與匯編語(yǔ)言 需求分析1. 本課程設(shè)計(jì)題目顯示系統(tǒng)時(shí)間2. 本課程設(shè)計(jì)要求及任務(wù) 要求:1.了解并掌握軟件設(shè)計(jì)的方法,具備較強(qiáng)的獨(dú)立分析和

2、設(shè)計(jì)能力 2.用戶在出現(xiàn)的提示信息中輸入大寫字母“d ”,馬上顯示系統(tǒng)當(dāng)前日期;輸入大寫字母“t ”,馬上顯示系統(tǒng)當(dāng)前時(shí)間;輸入大寫字母“q ”,則退出程序。此程序涉及到宏和i/o中斷的調(diào)用,要求學(xué)生掌握對(duì)宏的定義和使用,使用匯編語(yǔ)言對(duì)i/o中斷的使用。 任務(wù)包括:設(shè)計(jì)題目;系統(tǒng)的主要功能、作用以及主要技術(shù)性能指標(biāo);總體設(shè)計(jì)方案、工作或設(shè)計(jì)說(shuō)明、采用的技術(shù)路線等;系統(tǒng)設(shè)計(jì):程序設(shè)計(jì)(程序框圖和程序清單及注釋)其他有關(guān)的理論分析和計(jì)算;設(shè)計(jì)總結(jié):對(duì)整個(gè)設(shè)計(jì)工作過(guò)程進(jìn)行歸納和綜合,對(duì)設(shè)計(jì)中所存在的問(wèn)題和不足進(jìn)行分析和總結(jié),提出解決的方法、措施、建議和對(duì)這次設(shè)計(jì)實(shí)踐的認(rèn)識(shí)、收獲和提高。3. 課 程設(shè)

3、計(jì)思想 此動(dòng)畫程序要求結(jié)構(gòu)化的顯示系統(tǒng)時(shí)間和日期。程序要求能多次執(zhí)行以上兩種操作并有退出選項(xiàng)。則我們可以設(shè)計(jì)三個(gè)選項(xiàng)以供用戶選擇:d-date、t-time和q-退出程序。三個(gè)選項(xiàng)分別可以用三個(gè)過(guò)程實(shí)現(xiàn)其功能。用戶在出現(xiàn)的提示信息中輸入小寫字母“d”,馬上顯示系統(tǒng)當(dāng)前日期;輸入小寫字母“t”,馬上顯示系統(tǒng)當(dāng)前時(shí)間;輸入小寫字母“ q”,則退出程序。4. 軟硬件開發(fā)環(huán)境windows操作系統(tǒng),虛擬的dos環(huán)境,masm for windows 集成實(shí)驗(yàn)環(huán)境2007.3。用戶程序的編輯、編譯、連接、運(yùn)行和修改的全過(guò)程都在一個(gè)集成的環(huán)境中完成,大大提高了編程的效率,并以全屏幕窗口環(huán)境的形式供用戶使用

4、。5. 開發(fā)工具實(shí)驗(yàn)程序的開發(fā)工具包括編輯器、編譯系統(tǒng)、連接程序和調(diào)試程序。(1)編輯器采用全屏幕多窗口編輯器,復(fù)制,粘貼,裁減十分方便。(2)編譯系統(tǒng) masm for windows軟件包括匯編語(yǔ)言的編譯系統(tǒng),在集成環(huán)境中進(jìn)行程序的編譯(匯編)、連接、運(yùn)行與調(diào)試。(3)連接程序 采用link。(4)調(diào)試程序 全屏幕調(diào)試程序,直觀全面,使用方便。以上應(yīng)用程序(實(shí)驗(yàn)程序)開發(fā)工具,集成在集成開發(fā)環(huán)境(中,用戶只需在集成開發(fā)環(huán)境全屏幕窗口中,點(diǎn)擊主菜單的相應(yīng)菜單項(xiàng),即可隨時(shí)啟用。 概要設(shè)計(jì)1. 分析主程序主要實(shí)現(xiàn)與用戶的交互,首先程序會(huì)提示用戶想要進(jìn)行什么操作。是顯示date,time還是退出。

5、這里對(duì)應(yīng)的給用戶提供的選項(xiàng)是“d”、“t”和“q”。當(dāng)用戶輸入他們的選項(xiàng)之后,主程序要判斷用戶的輸入調(diào)用相應(yīng)的功能模塊來(lái)滿足用戶的要求。我們假設(shè)用戶輸入字符為x,那么首先我們將x與“d”比較。如果相同則程序調(diào)用date_display模塊為用戶顯示日期。若不為“d”則要繼續(xù)與“t”想比較。相等則調(diào)用time_display模塊,不等則繼續(xù)與“q”相比較。相等則正常退出,不等則說(shuō)明用戶輸入非法字符主程序返回到選擇界面用戶可以繼續(xù)選擇。2. 設(shè)計(jì)1.在dos環(huán)境下完成,先利用bios功能調(diào)用中顯示器驅(qū)動(dòng)程序的00h類型調(diào)用,設(shè)置顯示器的顯示模式為80*25彩色。2.在屏幕中央顯示提示信息(提示用戶

6、輸入“d”或“t”或“q”)。3.然后對(duì)用戶輸入的字母進(jìn)行判斷,利用分支程序分別調(diào)用不同的子程序。兩個(gè)子程序的功能分別是顯示當(dāng)前日期(用2ah的dos功能調(diào)用來(lái)取日期),顯示當(dāng)前時(shí)間(用2ch的dos功能調(diào)用來(lái)取時(shí)間)。 必須用到的dos功能調(diào)用:取當(dāng)前系統(tǒng)日期:功能號(hào)為2ah,返回值送入cx,dx寄存器中。取當(dāng)前系統(tǒng)時(shí)間:功能號(hào)為2ch,返回值送入cx,dx寄存器中。例如:2010年7月14日運(yùn)行的程序中,(1)使用2ah的dos功能調(diào)用后,得到cx=07d9h, dx=051fh其中,cx中的數(shù)據(jù)為2010d,即年份。dx中的數(shù)據(jù)中可分析得:dh=07h=07d,即月份。 dl=1fh=1

7、4d,即日期號(hào)。最后應(yīng)將數(shù)據(jù)轉(zhuǎn)換為其字符對(duì)應(yīng)的ascii碼,即32h,30h,30h,39h, 2dh,30h,35h,2dh,33h,31h 再顯示在屏幕上。 詳細(xì)設(shè)計(jì) date子程序流程圖 開 始獲取原中斷類型1ch 保存原中斷類型 設(shè)置新的中斷類型 執(zhí)行中斷處理程序 保護(hù)現(xiàn)場(chǎng) 中斷返回 讀取系統(tǒng)時(shí)間 保存原中斷類型分別將時(shí)間的bcd碼轉(zhuǎn)換為字符在指定位置寫顯存以顯示日期 恢復(fù)現(xiàn)場(chǎng)3. time子程序流程圖 開 始獲取原中斷類型1ch 保存原中斷類型 設(shè)置新的中斷類型 執(zhí)行中斷處理程序 保護(hù)現(xiàn)場(chǎng) 中斷返回 讀取系統(tǒng)時(shí)間 保存原中斷類型分別將時(shí)間的bcd碼轉(zhuǎn)換為字符在指定位置寫顯存以顯示時(shí)間

8、 恢復(fù)現(xiàn)場(chǎng) 1. 軟件設(shè)計(jì)程序 匯編語(yǔ)言: ;*清屏宏定義*clear_screen macro op1,op2,op3,op4 ;1 mov ah,06h ;2mov al,00h ;3mov bh,79h ;4mov ch,op1 ;5mov cl,op2 ;6mov dh,op3 ;7mov dl,op4 ;8int 10h ;9mov ah,02h ;10mov bh,00h ;11mov dh,00h ;12mov dl,00h ;13int 10h ;14endm ;15stack segment stack ;16定義堆棧段db 200 dup(0) ;17stack ends;

9、18 data segment ;19定義數(shù)據(jù)段welcome db welcome you to come here!$ ;20提示界面inf01 db 0dh,0ah,this is a display progame!$ ;21inf02 db 0dh,0ah,please input d t or q to show data time or exit!$inf03 db 0dh,0ah,d:display system date;$ ;22inf04 db 0dh,0ah,t:display system time;$ ;23inf05 db 0dh,0ah,q:quit.$ ;24

10、inf06 db 0dh,0ah,please input the char:$ ;25inputer db 0dh,0ah,input error!$ ;26datedis db 00 - 00 - 0000,0ah,$ ;27顯示datetimedis db 00 ,3ah, 00 ,3ah, 00 ,0ah,$ ;28顯示timedata ends ;29code segment ;30代碼段assume cs:code,ds:data,ss:stack ;31;*主程序*main proc far ;32begin: ;33mov ah,0 ;34設(shè)置40*25圖形顯示mov al,3

11、 ;35int 10h ;36clear_screen 00h,00h,19h,50h ;37mov ax,data ;38mov ds,ax ;39mov ax,stack ;40mov ss,ax ;41;*顯示宏定義*show macro b ;42lea dx,b ;43mov ah,9 ;44int 21h ;45endm ;46show welcome ;47顯示數(shù)據(jù)段的內(nèi)容show inf01 ;48show inf02 ;49show inf03 ;50show inf04 ;51show inf05 ;52show inf06input: mov ah,01 ;53鍵盤輸入并

12、回寫int 21h ;54cmp al,44h ;55與d比較jne l1 ;56不相等轉(zhuǎn)l1call datedisplay ;57相等調(diào)用datadisplayjmp exit1 ;58l1: cmp al,54h ;59與t比較jne l2 ;60不相等轉(zhuǎn)l2call timedisplay ;61相等調(diào)用timedisplayjmp exit1 ;62l2: cmp al,51h ;63與q比較je exit ;64相等轉(zhuǎn)exitshow inputer ;65顯示輸入錯(cuò)誤show inf05 ;66顯示輸入提示jmp input ;67exit1: show inf05 ;68顯示輸

13、入提示jmp input ;69exit: mov ah,4ch ;70結(jié)束int 21h ;71main endp ;72;*日期顯示子程序*datedisplay proc near ;73mov ah,2ah ;74取當(dāng)前系統(tǒng)日期int 21h ;75mov ax, cx ;76送年份入axmov bx, 10 ;77 (bx)=10lea si, datedis + 14 ;78使si指向年的最后一位mov cx, 4 ;79(cx)=4push dx ;80保存月日tab: xor dx, dx ;81dx清零div bx ;82(dx,ax)/bx,商送ax,余數(shù)送dxadd dl

14、, 30h ;83余數(shù)與30h相加變?yōu)樽址腶scii碼mov si, dl ;84余數(shù)送入si所指向的字節(jié)區(qū)dec si ;85si減一loop tab ;86循環(huán)pop dx ;87dx還原mov al, dl ;88日送alxor ah, ah ;89ah清零div bl ;90ax/bl,商送ah,余數(shù)送aladd ax, 3030h ;91轉(zhuǎn)變?yōu)閿?shù)字字符的ascii碼sub si, 4 ;92使si指向日的第一位mov si, ax ;93(ax)送si所指向的字節(jié)區(qū)mov al, dh ;94月送alxor ah, ah ;95ah清零div bl ;96ax/bl, 商送ah,余

15、數(shù)送aladd ax, 3030h ;97轉(zhuǎn)變?yōu)閿?shù)字字符的ascii碼sub si, 5 ;98使si指向月的第一位mov si, ax ;99(ax)送si所指向的字節(jié)區(qū)show datedis ;100顯示日期ret ;101調(diào)用后返回;*時(shí)間顯示子程序*timedisplay proc near ;102mov ah,2ch ;103int 21h ;104mov bx,10 ;105lea di,timedis ;106mov al,ch ;107xor ah,ah ;108div bl ;109add ax,3030h ;110mov di+1,ax ;111mov al,cl ;1

16、12xor ah,ah ;113div bl ;114add ax,3030h ;115mov di+6,ax ;116mov al,dh ;117xor ah,ah ;118div bl ;119add ax,3030h ;120mov di+11,ax ;121show timedis ;122ret ;123時(shí)間調(diào)用返回code ends ;124end begin ;125 調(diào)試與操作說(shuō)明程序界面:1.提示界面 如圖6-12.顯示日期如圖6-2 3. 顯示時(shí)間如圖6-34.錯(cuò)誤輸入如圖6-45.退出程序6.調(diào)試程序1)編譯源文件,命名為clock.asm ;2)采用命令格式。masm clock.asm將生成一個(gè)obj文件,檢查源程序中的錯(cuò)誤,并改正。3)鍵入連接命令:link clock.obj,再次鍵入clock回車,即可顯示結(jié)果。4)時(shí)間在運(yùn)行中出現(xiàn)了不準(zhǔn)確性,對(duì)程序的循環(huán)次調(diào)整后,時(shí)間能正常運(yùn)行。 課程設(shè)計(jì)總結(jié)與體會(huì)通過(guò)該課程設(shè)計(jì),我進(jìn)一步了解了數(shù)據(jù)采集程序設(shè)計(jì)原理和方法,了解了一些電子元件的特性和用法,更重要的是了解了在實(shí)際應(yīng)用中解決一些

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論