1、湖南工程学院课程设计报告一、设计内容与设计要求1.课程设计目的:汇编语言程序设计是计算机专业的重要的专业基础课,通过本课程设计使学生进一步巩固课堂所学,全面熟悉、掌握8088宏汇编语言程序设计的基本方法和技巧,进一步提高编写程序、阅读分析程序及上机操作、调试程序的能力。2.课题题目1)用“*”画菱形框2)读入一个文本文件并以DEBUG中的D命令格式显示。3)文件加密程序4)编写一个时钟程序5)画网格线6)画脉冲波图形7)测量任意程序的运行时间8)计算比赛成绩3设计要求:1)在一周内学生须上机16小时以上,程序调试完后,须由指导老师在机器上检查运行结果,经教师认可后的源程序可通过打印机输出。2)
2、分组及安排A.每组同学必须完成所指定的题目,每个同学须自己完成设计,应有不同的思路。B.按学号分组,第一组为1、9、17、25、33号同学,第二组为2、10、18、26、34号,第三组为3、11、19、27、35号,依次类推,其中第一组做第一题,第二组做第二题,依次类推。3)按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。4)不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计,成绩的考核按上机表现、答辩成绩及课程设计说明书来综合评定。成绩分为优、良、中、及格、不及格五级分评定。二、进度安排第2 周 星期一 8时:00分12时:00分 星期二 8时:00分12时:00分星
3、期三 8时:00分12时:00分星期四 8时:00分12时:00分课题1用“*”画菱形框要求:A、背景为蓝色、“*”为红色,菱形框画在屏幕中间,菱形中间为空格。B、用户以十进制数形式输入菱形宽度和高度(格式同上)。课题2读入一个文本文件并以DEBUG中的D命令格式显示。 要求:A、以DEBUG中的D命令格式显示一个文本文件。 B、文件名从键盘键入。 思路:A、打开相应文件,读内容至程序缓冲区。 B、按要求显示。课题3文件加密程序 要求:A、文件名从键盘输入。 B、加密密钥从键盘输入。 思路:从原文件读取内容至缓冲区,对其加密后,重新写回文件原来的地方。 提示要点:A、加密可使用“异或”操作。
4、B、相关中断为3DH,3EH,3FH,40H,42H号系统功能调用(INT 21H)课题4编写一个时钟程序 要求:A、驻留内存。B、不影响其它程序运行。C、把时钟信号显示在屏幕固定位置(最好为右上角)。 思路:先从系统实时钟取得当前时间,每隔约0.05秒定时器向发出一次号中断请求,是一个硬中断。窃取 INT 1CH中断服务程序。课题5画网格线要求:A、背景为蓝色、横线为红色、直线为黄色。B、按用户输入的起点和终点坐标、列距和行距的大小画出任意条横竖线。C、参数以十进制数形式输入,格式如下: Please enter starting point (x1,y1):XX, XX Please en
5、ter ending point (x2,y2):XX, XX Please enter distance (row,col):XX, XX课题6画脉冲波图形 要求:用户以十进制数形式从键盘输入脉冲高度、脉冲宽度和颜色参数(格式同上)后,以屏幕中间行为脉冲中间行,从左到右、满屏画出相应的脉冲波图形。课题7测量任意程序的运行时间 要求:该程序驻留内存 思路:DOS操作系统中,程序的调入运行及程序的终止均是通过相应的软中断来实现的。若窃取相应软中断,记录下程序开始调入运行的时间及程序终止的时间,则可测量出该程序运行的时间。 提示要点:与之相关的软中断分别为: 程序开始执行:4BH号系统功能调用(I
6、NT 21H) 程序结束: INT 20H INT 27H 00H、3lH、4CH号系统功能调用(INT 21H)课题8计算比赛成绩要求:A、7个评委,每个评委给分范围为010分(整数)。B、7个评委的给分中,去掉一个最高分和一个最低分,余下5位评委的平均分即为参加者的得分(精确到小数点后一位)。C、将分数在屏幕中间位置处用红色显示出来。3目 录1.题目52.程序总体设计方案、思路53.程序设计框图54.源程序清单65.程序调试结果及分析126.设计总结147.课程设计评分表151. 题目课题3画脉冲波图形要求:用户以十进制数形式从键盘输入脉冲高度、脉冲宽度和颜色参数后,以屏幕中间行为脉冲中间
7、行,从左到右、满屏画出相应的脉冲波图形。参数以十进制数形式输入,格式如下:Please enter heigth :XX Please enter width:XXPlease enter color:XX2. 程序总体设计方案、思路设计方案:整个题目的过程可以分成参数的输入和利用输入的参数显示方波的过程,所以可以把题目分成输入过程和显示两个过程。输入阶段,设置三个字符串来显示输入提示语句,再设置三个变量来存放输入进来的值的二进制数,也就是要显示的方波的三个参数,因这三个参数输入的时候是用十进制的数制输入的,还必须用一个子程序将输入的十进制数转换成二进制数。显示过程,在屏幕中央画一根线,然后利
8、用640x480,16色图形显示方式,屏幕显示的方波高度范围为0到320,宽度范围为0到240,颜色选择为0到15。然后再根据输入的方波参数显示方波图形。思路:因整个过程要调用图形显示,所以把代码段、数据段、堆栈段都放在同一个段内。先提示输入的方波参数,再把输入的参数转换成二进制存储,最后通过输入的参数显示方波。3. 程序设计框图开始提示输入参数,高度,宽度和颜色将输入的十进制数转换成二进制设置640x320,16色文本显示方式,读入输入的参数,显示脉冲波形结束并驻留图3.14. 源程序清单; 操作说明:运行开始,首先要输入3个参数:脉冲高度、脉冲宽度和波线颜色。; 各项取值范围:; 脉冲高度
9、:0240; 脉冲宽度:0320; 波线颜色:015(参见下方的颜色参数表); 数值位数满3位的,自动结束当前项输入,不必回车;不足3位数的,; 需按回车键结束当前输入。Code Segment Assume CS:Code,DS:CodeCR EQU 000DHLF EQU 000AHKBBack EQU 0008H; ; Dark Colors (Foreground & Background); Constant ValueBlack EQU 0Blue EQU 1Green EQU 2Cyan EQU 3Red EQU 4Magenta EQU 5Brown EQU 6LightGra
10、y 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)的字符串; 入口:; Str_Addr字符串地址(要求在数据段); 用法: Output Str_Addr; 用法举例:Output PromptStrOutput MACRO St
11、r_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=列号GetCursor Proc Near PUSH AX PUSH BX PUSH CX XOR BX,BX MOV AH,3 INT 10H MOV Cursor_Row,DH M
12、OV 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 BX,BX MOV AH,2 INT 10H POP AX POP BX POP CX RETSetCursor EndP; 功能:键盘输入一个N位的十进制数字,将
13、其转换成二进制数并保存在指定的内存单元。; 入口: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 21h cmp al,CR jz ASC_Dec cmp al,KBBack jz KB_Back cmp al,0 jb KBBack cmp al,9 ja KBBack jmp Save_Di
14、gKB_Back: dec Cursor_Col inc cx dec diKBBack: call SetCursor jmp InputSave_Dig: and 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 dec cx jcxz One_Digit mov bx,10Mul_Ten: lodsb cbw add ax,bp mul bx mov bp,ax loop Mul_TenOne_Digit:lo
15、dsb 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 line colour: $ N equ 3Hight_Pulse dw ? Width_Pulse dw ?Colou_Pulse dw ? Start: push
16、 cs pop ds push cs pop es Output Prompt_Str1 lea di,Hight_Pulse call Input_Digit call Enter_CTLF Output 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 int 10h mov bp,640 xor bh,bh xor cx,cx mov dx,480 shr dx,1 mov ah,
17、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 shr dx,1 L1: int 10h dec dx dec bp test bp,bp jnz L1Pulse_Wave: 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 10
18、h inc dx dec bp test bp,bp jnz L3 mov bp,Width_PulseL4: 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 Pause: mov ah,1 int 21h mov ah,3 int 10hExit_Proc: mov ah,4ch int 21hCode ENDS END Start 5. 程序调试结果
19、及分析图5.1 调试执行窗口1图5.2 调试执行窗口2当程序运行时,执行窗口提示输入参数,如图5.1所示。当输入上述参数时,如图5.2,满屏显示的是高度为20,宽度为20,以蓝绿色显示的脉冲图案。图中包含了多个完整的方波图形。是参数合理状况下的脉冲图形。当输入参数超过范围时,屏幕显示不出一个完整的图案,因为使用的是640x480的显示,当输入的参数过大,屏幕无法准确的显示。这时只要把参数适当的调下,就可以看到完整的图案。图5.3 脉冲波形图图5.3为输入参数按回车键后得到的满屏脉冲波图形。6. 设计总结通过这次课程设计学到的不仅是知识,而是解决困难的能力。在这次的课程设计中,遇到了以前实验时没
20、有碰到过的很多困难,因为之前没有做过汇编课设,在刚开始的时候,遇到了很多困难,感觉到自己根本无从下手。但通过老师的讲解以及同学的帮助,终于完成了任务。通过这次课程设计,让我对汇编语言的基本语法和常用的中断有了更加深入的了解。总的来说,课程设计就是培养我们综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节。当今计算机应用在生活中可以说是无处不在,因此掌握一些编程语言对我们来说是基本的要求,也让我感觉到要掌握好一门语言,必须通过长时间的积累、运用和思考,这样才能学到真正的知识。不管怎么说,我觉得最重要的是能有这样的一次课设经历让我在遇到困难的时候学会了怎么解决问题。14湖南工程学院课程设计报告计算机与通信学院课程设计评分表课程名称: 汇编语言程序设计 项 目评 价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩 教师签名: 日 期: 15.忽略此处.16