匯編語言程序設(shè)計課程設(shè)計編寫一個時鐘程序_第1頁
匯編語言程序設(shè)計課程設(shè)計編寫一個時鐘程序_第2頁
匯編語言程序設(shè)計課程設(shè)計編寫一個時鐘程序_第3頁
匯編語言程序設(shè)計課程設(shè)計編寫一個時鐘程序_第4頁
匯編語言程序設(shè)計課程設(shè)計編寫一個時鐘程序_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課 程 設(shè) 計 報 告課程名稱 匯編語言程序設(shè)計 課題名稱 編寫一個時鐘程序 專 業(yè) 班 級 學(xué) 號 姓 名 指導(dǎo)教師 2011年 3 月 6 日課 程 設(shè) 計 任 務(wù) 書課程名稱 匯編語言程序設(shè)計 課 題 編寫一個時鐘程序 專業(yè)班級 學(xué)生姓名 學(xué) 號 指導(dǎo)老師 審 批 任務(wù)書下達日期 2011年 2 月 28 日任務(wù)完成日期 2011年 3 月6 日一、設(shè)計內(nèi)容與設(shè)計要求1.課程設(shè)計目的:匯編語言程序設(shè)計是計算機專業(yè)的重要的專業(yè)基礎(chǔ)課,通過本課程設(shè)計使學(xué)生進一步鞏固課堂所學(xué),全面熟悉、掌握8088宏匯編語言程序設(shè)計的基本方法和技巧,進一步提高編寫程序、閱讀分析程序及上機操作、調(diào)試程序的能力。

2、2.課題題目1)用“*”畫菱形框2)讀入一個文本文件并以debug中的d命令格式顯示。3)文件加密程序4)編寫一個時鐘程序5)畫網(wǎng)格線6)畫脈沖波圖形7)測量任意程序的運行時間8)計算比賽成績3設(shè)計要求:1)在一周內(nèi)學(xué)生須上機16小時以上,程序調(diào)試完后,須由指導(dǎo)老師在機器上檢查運行結(jié)果,經(jīng)教師認(rèn)可后的源程序可通過打印機輸出。2)分組及安排a.每組同學(xué)必須完成所指定的題目,每個同學(xué)須自己完成設(shè)計,應(yīng)有不同的思路。b.按學(xué)號分組,第一組為1、9、17、25、33號同學(xué),第二組為2、10、18、26、34號,第三組為3、11、19、27、35號,依次類推,其中第一組做第一題,第二組做第二題,依次類推

3、。3)按規(guī)定格式完成課程設(shè)計報告,將其打印稿(a4紙)上交給老師存檔。4)不得抄襲他人程序、課程設(shè)計報告,每個人應(yīng)體現(xiàn)自己的個性設(shè)計,成績的考核按上機表現(xiàn)、答辯成績及課程設(shè)計說明書來綜合評定。成績分為優(yōu)、良、中、及格、不及格五級分評定。二、進度安排第2 周 星期一 8時:00分12時:00分 星期二 8時:00分12時:00分星期三 8時:00分12時:00分星期四 8時:00分12時:00分課題1用“*”畫菱形框要求:a、背景為藍(lán)色、“*”為紅色,菱形框畫在屏幕中間,菱形中間為空格。b、用戶以十進制數(shù)形式輸入菱形寬度和高度(格式同上)。課題2讀入一個文本文件并以debug中的d命令格式顯示。

4、 要求:a、以debug中的d命令格式顯示一個文本文件。 b、文件名從鍵盤鍵入。 思路:a、打開相應(yīng)文件,讀內(nèi)容至程序緩沖區(qū)。 b、按要求顯示。課題3文件加密程序 要求:a、文件名從鍵盤輸入。 b、加密密鑰從鍵盤輸入。 思路:從原文件讀取內(nèi)容至緩沖區(qū),對其加密后,重新寫回文件原來的地方。 提示要點:a、加密可使用“異或”操作。 b、相關(guān)中斷為3dh,3eh,3fh,40h,42h號系統(tǒng)功能調(diào)用(int 21h)課題4編寫一個時鐘程序 要求:a、駐留內(nèi)存。b、不影響其它程序運行。c、把時鐘信號顯示在屏幕固定位置(最好為右上角)。 思路:先從系統(tǒng)實時鐘取得當(dāng)前時間,每隔約0.05秒定時器向發(fā)出一次

5、號中斷請求,是一個硬中斷。竊取 int 1ch中斷服務(wù)程序。課題5畫網(wǎng)格線要求:a、背景為藍(lán)色、橫線為紅色、直線為黃色。b、按用戶輸入的起點和終點坐標(biāo)、列距和行距的大小畫出任意條橫豎線。c、參數(shù)以十進制數(shù)形式輸入,格式如下: please enter starting point (x1,y1):xx, xx please enter ending point (x2,y2):xx, xx please enter distance (row,col):xx, xx課題6畫脈沖波圖形 要求:用戶以十進制數(shù)形式從鍵盤輸入脈沖高度、脈沖寬度和顏色參數(shù)(格式同上)后,以屏幕中間行為脈沖中間行,從左到

6、右、滿屏畫出相應(yīng)的脈沖波圖形。課題7測量任意程序的運行時間 要求:該程序駐留內(nèi)存 思路:dos操作系統(tǒng)中,程序的調(diào)入運行及程序的終止均是通過相應(yīng)的軟中斷來實現(xiàn)的。若竊取相應(yīng)軟中斷,記錄下程序開始調(diào)入運行的時間及程序終止的時間,則可測量出該程序運行的時間。 提示要點:與之相關(guān)的軟中斷分別為: 程序開始執(zhí)行:4bh號系統(tǒng)功能調(diào)用(int 21h) 程序結(jié)束: int 20h int 27h 00h、3lh、4ch號系統(tǒng)功能調(diào)用(int 21h)課題8計算比賽成績要求:a、7個評委,每個評委給分范圍為010分(整數(shù))。b、7個評委的給分中,去掉一個最高分和一個最低分,余下5位評委的平均分即為參加者的

7、得分(精確到小數(shù)點后一位)。c、將分?jǐn)?shù)在屏幕中間位置處用紅色顯示出來。目 錄1.題目12.程序總體設(shè)計方案、思路13.程序設(shè)計框圖14.源程序清單35.程序調(diào)試結(jié)果及分析66.設(shè)計總結(jié)87.課程設(shè)計評分表91. 題目用int 1ch中斷編寫一個時鐘程序,完成以下要求:匯編語言編寫一個時鐘程序。a、駐留內(nèi)存。b、不影響其它程序運行。c、把時鐘信號顯示在屏幕固定位置(最好為右上角)。2. 程序總體設(shè)計方案、思路總體思路:如果要將一個程序駐留內(nèi)存,且不允許被其他程序執(zhí)行時覆蓋,用dos中斷int 27h來完成,事先將駐留程序的長度放入dx中,程序只有一段,程序段的段基址放入cs中,程序從100h單元

8、開始,sp則指向當(dāng)前段的尾部。先從系統(tǒng)實時鐘取得當(dāng)前時間,每隔約0.05秒定時器向發(fā)出一次號中斷請求,是一個硬中斷。竊取 int 1ch中斷服務(wù)程序。本程序主要采取直接寫屏的方式。把系統(tǒng)時鐘取出來后,分別將時、分、秒存入定義的變量當(dāng)中,移至寄存器ax中進行直接寫屏。由于獲取的都是系統(tǒng)的瞬時時刻,所以要將要求的時鐘信號進行屏幕顯示,還要進行加1操作。并判斷當(dāng)秒數(shù)加到等于60時,秒鐘數(shù)清零,分鐘數(shù)加1;同理,當(dāng)分鐘數(shù)加到等于60時,分鐘數(shù)清零,秒鐘數(shù)加1。注意,由于計算機默認(rèn)寄存器存入的數(shù)據(jù)時二進制,所以要先將其轉(zhuǎn)化為ascii碼字符才能正確顯示。3. 程序設(shè)計框圖本課題主程序設(shè)計框圖如下圖一:中

9、斷程序入口直接寫屏,顯示分?jǐn)?shù)開 始調(diào)用系統(tǒng)時間mov ah,2ch int 21h ch 小時cl 分鐘dh 秒數(shù)直接寫屏,顯示秒數(shù)調(diào)用將時鐘數(shù)字轉(zhuǎn)換成相應(yīng)的ascii碼字符的子程序結(jié)束駐留內(nèi)存調(diào)用將時鐘數(shù)字轉(zhuǎn)換成相應(yīng)的ascii碼字符的子程序直接寫屏,顯示時數(shù)調(diào)用將時鐘數(shù)字轉(zhuǎn)換成相應(yīng)的ascii碼字符的子程序 圖一 程序設(shè)計框圖4. 源程序清單code segment org 100h assume cs:code,ds:codestart: lea dx,intic mov ax,seg intic mov ds,ax mov ax,251ch int 21hmov ah,2ch ;取時間

10、 int 21h mov char,dh mov char1,cl mov char2,ch mov ax,3100h mov dx,(prog_len+5)/16+16 int 21hintic proc far push ax push ds mov ax,cs mov ds,ax dec count jne exit mov count,18 push bx push cx push dx push es mov ax,0b800h ;直接寫屏 mov es,ax mov al,char call bcdasc mov ah,save1 mov es:158,ah mov al,save

11、 mov es:156,al mov bl,':' mov es:154,bl mov al,char1 call bcdasc mov ah,save1 mov es:152,ah mov al,save mov es:150,al mov byte ptr es:148,':' mov al,char2 call bcdasc mov ah,save1 mov al,save mov es:146,ah mov es:144,al inc char cmp char,3ch jb disp mov char,0 inc char1 cmp char1,3ch

12、 jb disp mov char1,0 inc char2 cmp char2,18h jb disp mov char2,0 disp: pop es pop dx pop cx pop bxexit: pop ds pop ax iretintic endpcount db 18save db ?save1 db ?char db ?char1 db ?char2 db ?bcdasc proc near ;時間數(shù)值轉(zhuǎn)換成ascii碼字符子程序 push bx push ax xor ah,ah cbw mov bl,10 div bl add al,'0' mov save,al add ah,'0' mov save1,ah pop ax pop bx retbcdasc endpprog_len equ $-startcode ends end start5. 程序調(diào)試結(jié)果及分析由于本程序是中端駐留,不能直接運行。將程序保存好,再進行如下操作,方可得到理想的結(jié)果: 點擊桌面的“開始”,然后“運行”,輸入“cmd”,出現(xiàn)如下圖二界面: 圖二 操作界面顯示在光標(biāo)位置輸入:”cd c:cmasmw”,回車,再輸入:”noname1.exe”,再回車,就可出現(xiàn)希望中的時

溫馨提示

  • 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

提交評論