




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課 程 設 計 報 告課程名稱匯編語言程序設計課題名稱畫脈沖波圖形專 業通信工程 班 級學 號姓 名指導教師廖智2012年 6 月30日湖南工程學院課 程 設 計 任 務 書課程名稱 匯編語言程序設計課 題 畫脈沖波圖形專業班級 通信工程 學生姓名 學 號 指導老師 廖智、羅敬 審 批 任務書下達日期 2012年 5月 26 日任務完成日期 2012年 6 月30 日一、設計內容與設計要求1.課程設計目的:匯編語言程序設計是計算機專業的重要的專業基礎課,通過本課程設計使學生進一步鞏固課堂所學,全面熟悉、掌握8088宏匯編語言程序設計的基本方法和技巧,進一步提高編寫程序、閱讀分析程序及上機操作、
2、調試程序的能力。2.課題題目1)編寫一個時鐘程序2)畫網格線3)畫脈沖波圖形4)用“*”畫菱形框5)計算比賽成績6)文件加密程序3設計要求:1)在一周內學生須上機16小時以上,程序調試完后,須由指導老師在機器上檢查運行結果,經教師認可后的源程序可通過打印機輸出。2)分組及安排A.每組同學必須完成所指定的題目,每個同學須自己完成設計,應有不同的思路。B.按學號分組,第一組為1、7、13、19、25號同學,第二組為2、8、14、20、26號,第三組為3、9、15、21、27號,依次類推,其中第一組做第一題,第二組做第二題,依次類推。3)按規定格式完成課程設計報告,將其打印稿(A4紙)上交給老師存檔
3、。4)不得抄襲他人程序、課程設計報告,每個人應體現自己的個性設計,成績的考核按上機表現、答辯成績及課程設計說明書來綜合評定。成績分為優、良、中、及格、不及格五級分評定。二、進度安排第周 星期一8時:00分12時:00分 星期五8時:00分12時:00分星期五14時:00分18時:00分課題1編寫一個時鐘程序 要求:A、駐留內存。B、不影響其它程序運行。C、把時鐘信號顯示在屏幕固定位置(最好為右上角)。思路:先從系統實時鐘取得當前時間,每隔約0.05秒定時器向發出一次號中斷請求,是一個硬中斷。竊取 INT 1CH中斷服務程序。課題2畫網格線要求:A、背景為藍色、橫線為紅色、直線為黃色。B、按用戶
4、輸入的起點和終點坐標、列距和行距的大小畫出任意條橫豎線。C、參數以十進制數形式輸入,格式如下:Please enter starting point (x1,y1):XX, XX Please enter ending point (x2,y2):XX, XX Please enter distance (row,col):XX, XX課題3畫脈沖波圖形要求:用戶以十進制數形式從鍵盤輸入脈沖高度、脈沖寬度和顏色參數(格式同上)后,以屏幕中間行為脈沖中間行,從左到右、滿屏畫出相應的脈沖波圖形。課題4用“*”畫菱形框要求:A、背景為藍色、“*”為紅色,菱形框畫在屏幕中間,菱形中間為空格。B、用戶以
5、十進制數形式輸入菱形寬度和高度(格式同上)。課題5計算比賽成績要求:A、7個評委,每個評委給分范圍為010分(整數)。B、7個評委的給分中,去掉一個最高分和一個最低分,余下5位評委的平均分即為參加者的得分(精確到小數點后一位)。C、將分數在屏幕中間位置處用紅色顯示出來。課題6文件加密程序要求:A、文件名從鍵盤輸入。 B、加密密鑰從鍵盤輸入。 思路:從原文件讀取內容至緩沖區,對其加密后,重新寫回文件原來的地方。 提示要點:A、加密可使用“異或”操作。B、相關中斷為3DH,3EH,3FH,40H,42H號系統功能調用(INT21H)目 錄1.題目12.程序總體設計方案、思路13.程序設計框圖14.
6、源程序清單25.程序調試結果及分析76.設計總結81. 題目課題3畫脈沖波圖形要求:用戶以十進制數形式從鍵盤輸入脈沖高度、脈沖寬度和顏色參數后,以屏幕中間行為脈沖中間行,從左到右、滿屏畫出相應的脈沖波圖形。參數以十進制數形式輸入,格式如下:Please enter heigth :XXPlease enter width:XXPlease enter color:XX2. 程序總體設計方案、思路設計方案:整個題目的過程可以分成參數的輸入和利用輸入的參數顯示方波的過程,所以可以把題目分成輸入過程和顯示兩個過程。輸入階段,設置三個字符串來顯示輸入提示語句,再設置三個變量來存放輸入進來的值的二進制數
7、,也就是要顯示的方波的三個參數,因這三個參數輸入的時候是用十進制的數制輸入的,還必須用一個子程序將輸入的十進制數轉換成二進制數。顯示過程,在屏幕中央畫一根線,然后利用640x480,16色圖形顯示方式,屏幕顯示的方波高度范圍為0到320,寬度范圍為0到240,顏色選擇為0到15。然后再根據輸入的方波參數顯示方波圖形。思路:因整個過程要調用圖形顯示,所以把代碼段、數據段、堆棧段都放在同一個段內。先提示輸入的方波參數,再把輸入的參數轉換成二進制存儲,最后通過輸入的參數顯示方波。3. 程序設計框圖開始提示輸入參數,高度,寬度和顏色將輸入的十進制數轉換成二進制設置640x320,16色文本顯示方式,讀
8、入輸入的參數,顯示脈沖波形結束并駐留4. 源程序清單; 操作說明:運行開始,首先要輸入3個參數:脈沖高度、脈沖寬度和波線顏色。; 各項取值范圍:; 脈沖高度:0240; 脈沖寬度:0320; 波線顏色:015(參見下方的顏色參數表); 數值位數滿3位的,自動結束當前項輸入,不必回車;不足3位數的,; 需按回車鍵結束當前輸入。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字符串地址(要求在數據段); 用法: 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 ; ; 功能:取光標位置; 入口:無; 出口:DH=行號,DL=列號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; ; 功能:置光標位置; 入口:Cursor_Row=行坐標; Cursor_Col: 列坐標)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; 功能:鍵盤輸入一個N位的十進制數字,將其轉換成二進制數并保存在指定的內存單元。; 入口:N=數字位數;di=保存輸入的數字首地址; 出口:轉換后的二進制數保存在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 ;取光標位置 mov ah,1 ;從鍵盤接受一個字符 int
13、 21h cmp al,CR ;若鍵入的是回車,已經鍵入的數字不足N位 jz ASC_Dec ;轉去處理已經鍵入的數字 cmp al,KBBack jz KB_Back ;若是回空鍵,重新輸入 cmp al,'0' jb KBBack ;若低于數字'0',重新輸入 cmp al,'9' ja KBBack ;若低于數字'9',重新輸入 jmp Save_DigKB_Back: dec Cursor_Col inc cx dec diKBBack: call SetCursor ;置光標位置 jmp InputSave_Dig: a
14、nd al,0fh ;轉換成二進制數 stosb ;保存 loop Input ;接受下一個數字ASC_Dec: mov ax,cx pop cx pop si sub cx,ax ;實際輸入的數字位數 xor bp,bp xor dx,dx xor ax,ax jcxz Save_Ret ;若直接回車,沒有輸入任何數字,按輸入'0'處理 dec cx ;實際輸入的數字位數減1,準備把輸入的這一串數字轉換成二進制數 jcxz One_Digit ;若輸入的數字只有一位,轉去直接保存這個二進制數 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 ;輸入十進制數值位數Hight_Pulse dw ? ;脈沖高度Width_Pulse dw ? ;脈沖寬度Colou_Pulse dw ? ;波線顏色Start: push cs pop ds push cs pop es ;使數據段、附加段與代碼段同段 Output Prompt_Str1 ;提示輸入脈沖高度 lea di,Hight_Pulse ;脈沖高度 call Input_Digit ;鍵盤輸入一個3位的十進制數字,將其轉換成二進制數并保存在指定的內存單元 call Enter_CTLF ;輸出一個回車、換行 Ou
17、tput Prompt_Str2 ;提示輸入脈沖寬度 lea di,Width_Pulse ;脈沖寬度 call Input_Digit call Enter_CTLF ;輸出一個回車、換行 Output Prompt_Str3 ;提示輸入波線顏色 lea di,Colou_Pulse ;波線顏色 call Input_Digit mov ax,12h ;設置640x480,16色圖形顯示方式 int 10h; 以屏幕中間行為脈沖中間行,畫一條橫線 mov bp,640 ;橫向點數 xor bh,bh xor cx,cx ;橫向起始點 mov dx,480 ;圖形顯示方式,一列480點 shr
18、 dx,1 ;縱向起始點 mov ah,0ch mov al,byte ptr Colou_Pulse ;取像素顏色L0: int 10h ;寫一個指定顏色的像素 inc cx ;橫向向右增值 dec bp test bp,bp jnz L0; 從左到右、滿屏畫出相應的脈沖波圖形。 mov bp,Hight_Pulse ;取脈沖高度 xor cx,cx ;橫向起始點 mov dx,480 ;圖形顯示方式,一列480點 shr dx,1 ;縱向起始點L1: int 10h ;寫一個指定顏色的像素 dec dx ;縱向向上減值 dec bp test bp,bp jnz L1Pulse_Wave:
19、 mov bp,Width_Pulse ;取脈沖寬度,一個脈沖周期L2: int 10h ;寫一個指定顏色的像素 inc cx ;橫向向右增值 cmp cx,639 ja Pause ;若到達屏幕最右邊,跳出循環,等待用戶按鍵,結束程序 dec bp test bp,bp jnz L2 mov bp,Hight_Pulse ;取脈沖高度 shl bp,1L3: int 10h ;寫一個指定顏色的像素 inc dx ;縱向向下增值 dec bp test bp,bp jnz L3 mov bp,Width_Pulse ;取脈沖間斷寬度L4: int 10h ;寫一個指定顏色的像素 inc cx ;橫向向右增值 cmp cx,639 ja Pause ;若到達屏幕最右邊,跳出循環,等待用戶按鍵,結束程序 dec bp test bp,bp jnz L4 mov bp,Hight_Pulse ;取脈沖高度 shl bp,1L5: int 10h ;寫一個指定顏色的像素 dec dx ;縱向向上減值 dec bp test bp,bp jnz L5 jmp Pulse_Wave ;一個脈沖周期結束,進行下一個脈沖周期Pa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中級會計師考試試卷及答案
- 2025年計算機科學競賽試卷及答案
- 2025年城市規劃專業知識考試題及答案
- 數據分析與處理技術考試試卷及答案2025年
- 民辦學校學生資助與獎學金管理委托合同
- 物流園區設施維護與物業管理一體化合同
- 拆遷安置補償金分配與離婚財產分割及房產分配協議
- 短視頻網紅KOL推廣合作合同
- 高清影視虛擬角色租賃合同及后期特效服務
- 互聯網金融服務用戶隱私權保護與數據安全協議
- 絕緣電阻測試記錄表(范本)
- 棋牌室運營方案策劃書
- 康美藥業審計風險分析
- MOOC 大學攝影-河南理工大學 中國大學慕課答案
- 賽事承辦合同
- (高清版)DZT 0248-2014 巖石地球化學測量技術規程
- 缺血性卒中患者的血壓管理
- 太空艙民宿可行性研究報告
- 2024年上海高職院校學生技能大賽短視頻創作與運營賽項樣題
- 四害消殺報告
- 光伏安裝施工危險源辨識、風險評價及控制措施
評論
0/150
提交評論