版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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江苏省车辐中等专业学校工作人员招聘考试试题
- 大学校区做电气预防性试验的施工组织设计
- 初中历史教学中数字博物馆虚拟游览课程设计课题报告教学研究课题报告
- 高中生借助话语分析考察20世纪诗歌批评话语的演变特征课题报告教学研究课题报告
- 2026年5G通信网络切片技术报告及未来五至十年应用拓展报告
- 危大工程施工方案-土方开挖工程
- 2025年微生物降解行业竞争分析报告
- G网络下高中智慧校园智能学习环境中的学生自主学习策略研究教学研究课题报告
- 2026年物流业智能仓储系统分析报告
- 2026年少先队考核模拟试题及答案详解(全优)
- 中国金谷国际信托有限责任公司招聘笔试备考试题及答案解析
- 小学一年级语文下册《荷叶圆圆》跨学科融合教学设计(导学案)
- 湖南 2026 政府采购评审专家续聘考试(3) 真题
- 2026天津富凯建设集团有限公司招聘工作人员招聘4人考试参考题库及答案解析
- 2025年芯片测试岗笔试题目及答案
- 预应力混凝土空心方桩08SG360
- 安宁疗护病区工作制度
- 2026年上海市杨浦区中考数学二模试卷(含解析)
- 电梯施工临时用电安全方案
- 亚克力生产车间安全讲解
评论
0/150
提交评论