畫脈沖波圖形_第1頁(yè)
畫脈沖波圖形_第2頁(yè)
畫脈沖波圖形_第3頁(yè)
畫脈沖波圖形_第4頁(yè)
畫脈沖波圖形_第5頁(yè)
已閱讀5頁(yè),還剩10頁(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) 告課程名稱匯編語(yǔ)言程序設(shè)計(jì)課題名稱畫脈沖波圖形專 業(yè)通信工程 班 級(jí)學(xué) 號(hào)姓 名指導(dǎo)教師廖智2012年 6 月30日湖南工程學(xué)院課 程 設(shè) 計(jì) 任 務(wù) 書課程名稱 匯編語(yǔ)言程序設(shè)計(jì)課 題 畫脈沖波圖形專業(yè)班級(jí) 通信工程 學(xué)生姓名 學(xué) 號(hào) 指導(dǎo)老師 廖智、羅敬 審 批 任務(wù)書下達(dá)日期 2012年 5月 26 日任務(wù)完成日期 2012年 6 月30 日一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求1.課程設(shè)計(jì)目的:匯編語(yǔ)言程序設(shè)計(jì)是計(jì)算機(jī)專業(yè)的重要的專業(yè)基礎(chǔ)課,通過(guò)本課程設(shè)計(jì)使學(xué)生進(jìn)一步鞏固課堂所學(xué),全面熟悉、掌握8088宏匯編語(yǔ)言程序設(shè)計(jì)的基本方法和技巧,進(jìn)一步提高編寫程序、閱讀分析程序及上機(jī)操作、

2、調(diào)試程序的能力。2.課題題目1)編寫一個(gè)時(shí)鐘程序2)畫網(wǎng)格線3)畫脈沖波圖形4)用“*”畫菱形框5)計(jì)算比賽成績(jī)6)文件加密程序3設(shè)計(jì)要求:1)在一周內(nèi)學(xué)生須上機(jī)16小時(shí)以上,程序調(diào)試完后,須由指導(dǎo)老師在機(jī)器上檢查運(yùn)行結(jié)果,經(jīng)教師認(rèn)可后的源程序可通過(guò)打印機(jī)輸出。2)分組及安排A.每組同學(xué)必須完成所指定的題目,每個(gè)同學(xué)須自己完成設(shè)計(jì),應(yīng)有不同的思路。B.按學(xué)號(hào)分組,第一組為1、7、13、19、25號(hào)同學(xué),第二組為2、8、14、20、26號(hào),第三組為3、9、15、21、27號(hào),依次類推,其中第一組做第一題,第二組做第二題,依次類推。3)按規(guī)定格式完成課程設(shè)計(jì)報(bào)告,將其打印稿(A4紙)上交給老師存檔

3、。4)不得抄襲他人程序、課程設(shè)計(jì)報(bào)告,每個(gè)人應(yīng)體現(xiàn)自己的個(gè)性設(shè)計(jì),成績(jī)的考核按上機(jī)表現(xiàn)、答辯成績(jī)及課程設(shè)計(jì)說(shuō)明書來(lái)綜合評(píng)定。成績(jī)分為優(yōu)、良、中、及格、不及格五級(jí)分評(píng)定。二、進(jìn)度安排第周 星期一8時(shí):00分12時(shí):00分 星期五8時(shí):00分12時(shí):00分星期五14時(shí):00分18時(shí):00分課題1編寫一個(gè)時(shí)鐘程序 要求:A、駐留內(nèi)存。B、不影響其它程序運(yùn)行。C、把時(shí)鐘信號(hào)顯示在屏幕固定位置(最好為右上角)。思路:先從系統(tǒng)實(shí)時(shí)鐘取得當(dāng)前時(shí)間,每隔約0.05秒定時(shí)器向發(fā)出一次號(hào)中斷請(qǐng)求,是一個(gè)硬中斷。竊取 INT 1CH中斷服務(wù)程序。課題2畫網(wǎng)格線要求:A、背景為藍(lán)色、橫線為紅色、直線為黃色。B、按用戶

4、輸入的起點(diǎn)和終點(diǎn)坐標(biāo)、列距和行距的大小畫出任意條橫豎線。C、參數(shù)以十進(jìn)制數(shù)形式輸入,格式如下:Please enter starting point (x1,y1):XX, XX Please enter ending point (x2,y2):XX, XX Please enter distance (row,col):XX, XX課題3畫脈沖波圖形要求:用戶以十進(jìn)制數(shù)形式從鍵盤輸入脈沖高度、脈沖寬度和顏色參數(shù)(格式同上)后,以屏幕中間行為脈沖中間行,從左到右、滿屏畫出相應(yīng)的脈沖波圖形。課題4用“*”畫菱形框要求:A、背景為藍(lán)色、“*”為紅色,菱形框畫在屏幕中間,菱形中間為空格。B、用戶以

5、十進(jìn)制數(shù)形式輸入菱形寬度和高度(格式同上)。課題5計(jì)算比賽成績(jī)要求:A、7個(gè)評(píng)委,每個(gè)評(píng)委給分范圍為010分(整數(shù))。B、7個(gè)評(píng)委的給分中,去掉一個(gè)最高分和一個(gè)最低分,余下5位評(píng)委的平均分即為參加者的得分(精確到小數(shù)點(diǎn)后一位)。C、將分?jǐn)?shù)在屏幕中間位置處用紅色顯示出來(lái)。課題6文件加密程序要求:A、文件名從鍵盤輸入。 B、加密密鑰從鍵盤輸入。 思路:從原文件讀取內(nèi)容至緩沖區(qū),對(duì)其加密后,重新寫回文件原來(lái)的地方。 提示要點(diǎn):A、加密可使用“異或”操作。B、相關(guān)中斷為3DH,3EH,3FH,40H,42H號(hào)系統(tǒng)功能調(diào)用(INT21H)目 錄1.題目12.程序總體設(shè)計(jì)方案、思路13.程序設(shè)計(jì)框圖14.

6、源程序清單25.程序調(diào)試結(jié)果及分析76.設(shè)計(jì)總結(jié)81. 題目課題3畫脈沖波圖形要求:用戶以十進(jìn)制數(shù)形式從鍵盤輸入脈沖高度、脈沖寬度和顏色參數(shù)后,以屏幕中間行為脈沖中間行,從左到右、滿屏畫出相應(yīng)的脈沖波圖形。參數(shù)以十進(jìn)制數(shù)形式輸入,格式如下:Please enter heigth :XXPlease enter width:XXPlease enter color:XX2. 程序總體設(shè)計(jì)方案、思路設(shè)計(jì)方案:整個(gè)題目的過(guò)程可以分成參數(shù)的輸入和利用輸入的參數(shù)顯示方波的過(guò)程,所以可以把題目分成輸入過(guò)程和顯示兩個(gè)過(guò)程。輸入階段,設(shè)置三個(gè)字符串來(lái)顯示輸入提示語(yǔ)句,再設(shè)置三個(gè)變量來(lái)存放輸入進(jìn)來(lái)的值的二進(jìn)制數(shù)

7、,也就是要顯示的方波的三個(gè)參數(shù),因這三個(gè)參數(shù)輸入的時(shí)候是用十進(jìn)制的數(shù)制輸入的,還必須用一個(gè)子程序?qū)⑤斎氲氖M(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)。顯示過(guò)程,在屏幕中央畫一根線,然后利用640x480,16色圖形顯示方式,屏幕顯示的方波高度范圍為0到320,寬度范圍為0到240,顏色選擇為0到15。然后再根據(jù)輸入的方波參數(shù)顯示方波圖形。思路:因整個(gè)過(guò)程要調(diào)用圖形顯示,所以把代碼段、數(shù)據(jù)段、堆棧段都放在同一個(gè)段內(nèi)。先提示輸入的方波參數(shù),再把輸入的參數(shù)轉(zhuǎn)換成二進(jìn)制存儲(chǔ),最后通過(guò)輸入的參數(shù)顯示方波。3. 程序設(shè)計(jì)框圖開(kāi)始提示輸入?yún)?shù),高度,寬度和顏色將輸入的十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制設(shè)置640x320,16色文本顯示方式,讀

8、入輸入的參數(shù),顯示脈沖波形結(jié)束并駐留4. 源程序清單; 操作說(shuō)明:運(yùn)行開(kāi)始,首先要輸入3個(gè)參數(shù):脈沖高度、脈沖寬度和波線顏色。; 各項(xiàng)取值范圍:; 脈沖高度:0240; 脈沖寬度:0320; 波線顏色:015(參見(jiàn)下方的顏色參數(shù)表); 數(shù)值位數(shù)滿3位的,自動(dòng)結(jié)束當(dāng)前項(xiàng)輸入,不必回車;不足3位數(shù)的,; 需按回車鍵結(jié)束當(dāng)前輸入。Code Segment Assume CS:Code,DS:CodeCR EQU 000DHLF EQU 000AHKBBack EQU 0008H; ; Dark Colors (Foreground & Background); Constant ValueB

9、lack EQU 0Blue EQU 1Green EQU 2Cyan EQU 3Red EQU 4Magenta EQU 5Brown EQU 6LightGray EQU 7; Light Colors(Foreground); Constant ValueDarkGray EQU 8LightBlue EQU 9LightGreen EQU 10LightCyan EQU 11LightRed EQU 12LightMagenta EQU 13Yellow EQU 14White EQU 15Blinking EQU 80H; ; 功能:顯示指定地址(Str_Addr)的字符串; 入口:

10、; Str_Addr字符串地址(要求在數(shù)據(jù)段); 用法: Output Str_Addr; 用法舉例:Output PromptStrOutput MACRO Str_Addr lea dx,Str_Addr mov ah,9 int 21h EndM; ; 功能:輸出回車換行Enter_CTLF proc Near push ax push dx mov ah,02h mov dl,0dh int 21h mov dl,0ah int 21h pop dx pop ax retEnter_CTLF endp ; ; 功能:取光標(biāo)位置; 入口:無(wú); 出口:DH=行號(hào),DL=列號(hào)GetCurso

11、r Proc Near PUSH AX PUSH BX PUSH CX XOR BX,BX MOV AH,3 INT 10H MOV Cursor_Row,DH MOV Cursor_Col,DL POP CX POP BX POP AX RETCursor_Row DB ?Cursor_Col DB ?GetCursor EndP; ; 功能:置光標(biāo)位置; 入口:Cursor_Row=行坐標(biāo); Cursor_Col: 列坐標(biāo))SetCursor Proc Near PUSH CX PUSH BX PUSH AX MOV DH,Cursor_Row MOV DL,Cursor_Col XOR

12、BX,BX MOV AH,2 INT 10H POP AX POP BX POP CX RETSetCursor EndP; 功能:鍵盤輸入一個(gè)N位的十進(jìn)制數(shù)字,將其轉(zhuǎn)換成二進(jìn)制數(shù)并保存在指定的內(nèi)存單元。; 入口:N=數(shù)字位數(shù);di=保存輸入的數(shù)字首地址; 出口:轉(zhuǎn)換后的二進(jìn)制數(shù)保存在di所指的單元Input_Digit Proc Near push dx push cx push bx push di lea di,Save_Tmp push di cld mov cx,N push cxInput: call GetCursor ;取光標(biāo)位置 mov ah,1 ;從鍵盤接受一個(gè)字符 int

13、 21h cmp al,CR ;若鍵入的是回車,已經(jīng)鍵入的數(shù)字不足N位 jz ASC_Dec ;轉(zhuǎn)去處理已經(jīng)鍵入的數(shù)字 cmp al,KBBack jz KB_Back ;若是回空鍵,重新輸入 cmp al,'0' jb KBBack ;若低于數(shù)字'0',重新輸入 cmp al,'9' ja KBBack ;若低于數(shù)字'9',重新輸入 jmp Save_DigKB_Back: dec Cursor_Col inc cx dec diKBBack: call SetCursor ;置光標(biāo)位置 jmp InputSave_Dig: a

14、nd al,0fh ;轉(zhuǎn)換成二進(jìn)制數(shù) stosb ;保存 loop Input ;接受下一個(gè)數(shù)字ASC_Dec: mov ax,cx pop cx pop si sub cx,ax ;實(shí)際輸入的數(shù)字位數(shù) xor bp,bp xor dx,dx xor ax,ax jcxz Save_Ret ;若直接回車,沒(méi)有輸入任何數(shù)字,按輸入'0'處理 dec cx ;實(shí)際輸入的數(shù)字位數(shù)減1,準(zhǔn)備把輸入的這一串?dāng)?shù)字轉(zhuǎn)換成二進(jìn)制數(shù) jcxz One_Digit ;若輸入的數(shù)字只有一位,轉(zhuǎn)去直接保存這個(gè)二進(jìn)制數(shù) mov bx,10Mul_Ten: lodsb cbw add ax,bp mul

15、bx mov bp,ax loop Mul_TenOne_Digit:lodsb cbw add ax,bpSave_Ret: pop di stosw pop bx pop cx pop dx retSave_Tmp db 16 dup(?)Input_Digit EndP; Prompt_Str1 db 'Please input pulse hight: $' ;提示輸入脈沖高度Prompt_Str2 db 'Please input pulse width: $' ;提示輸入脈沖寬度Prompt_Str3 db 'Please input lin

16、e colour: $' ;提示輸入波線顏色N equ 3 ;輸入十進(jìn)制數(shù)值位數(shù)Hight_Pulse dw ? ;脈沖高度Width_Pulse dw ? ;脈沖寬度Colou_Pulse dw ? ;波線顏色Start: push cs pop ds push cs pop es ;使數(shù)據(jù)段、附加段與代碼段同段 Output Prompt_Str1 ;提示輸入脈沖高度 lea di,Hight_Pulse ;脈沖高度 call Input_Digit ;鍵盤輸入一個(gè)3位的十進(jìn)制數(shù)字,將其轉(zhuǎn)換成二進(jìn)制數(shù)并保存在指定的內(nèi)存單元 call Enter_CTLF ;輸出一個(gè)回車、換行 Ou

17、tput Prompt_Str2 ;提示輸入脈沖寬度 lea di,Width_Pulse ;脈沖寬度 call Input_Digit call Enter_CTLF ;輸出一個(gè)回車、換行 Output Prompt_Str3 ;提示輸入波線顏色 lea di,Colou_Pulse ;波線顏色 call Input_Digit mov ax,12h ;設(shè)置640x480,16色圖形顯示方式 int 10h; 以屏幕中間行為脈沖中間行,畫一條橫線 mov bp,640 ;橫向點(diǎn)數(shù) xor bh,bh xor cx,cx ;橫向起始點(diǎn) mov dx,480 ;圖形顯示方式,一列480點(diǎn) shr

18、 dx,1 ;縱向起始點(diǎn) mov ah,0ch mov al,byte ptr Colou_Pulse ;取像素顏色L0: int 10h ;寫一個(gè)指定顏色的像素 inc cx ;橫向向右增值 dec bp test bp,bp jnz L0; 從左到右、滿屏畫出相應(yīng)的脈沖波圖形。 mov bp,Hight_Pulse ;取脈沖高度 xor cx,cx ;橫向起始點(diǎn) mov dx,480 ;圖形顯示方式,一列480點(diǎn) shr dx,1 ;縱向起始點(diǎn)L1: int 10h ;寫一個(gè)指定顏色的像素 dec dx ;縱向向上減值 dec bp test bp,bp jnz L1Pulse_Wave:

19、 mov bp,Width_Pulse ;取脈沖寬度,一個(gè)脈沖周期L2: int 10h ;寫一個(gè)指定顏色的像素 inc cx ;橫向向右增值 cmp cx,639 ja Pause ;若到達(dá)屏幕最右邊,跳出循環(huán),等待用戶按鍵,結(jié)束程序 dec bp test bp,bp jnz L2 mov bp,Hight_Pulse ;取脈沖高度 shl bp,1L3: int 10h ;寫一個(gè)指定顏色的像素 inc dx ;縱向向下增值 dec bp test bp,bp jnz L3 mov bp,Width_Pulse ;取脈沖間斷寬度L4: int 10h ;寫一個(gè)指定顏色的像素 inc cx ;橫向向右增值 cmp cx,639 ja Pause ;若到達(dá)屏幕最右邊,跳出循環(huán),等待用戶按鍵,結(jié)束程序 dec bp test bp,bp jnz L4 mov bp,Hight_Pulse ;取脈沖高度 shl bp,1L5: int 10h ;寫一個(gè)指定顏色的像素 dec dx ;縱向向上減值 dec bp test bp,bp jnz L5 jmp Pulse_Wave ;一個(gè)脈沖周期結(jié)束,進(jìn)行下一個(gè)脈沖周期Pa

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論