版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课 程 设 计 报 告课程名称 汇编语言程序设计 课题名称 计算比赛成绩 专 业 通信工程 班 级 计算机1 1班 学 号 2010130301 姓 名 指导教师 唐 北 平 2013年 1 月 13日湖南工程学院课 程 设 计 任 务 书课程名称 汇编语言程序设计 课 题 计算比赛成绩 专业班级 计算机1 1班 学生姓名 学 号 201013030 指导老师 唐 北 平 审 批 任务书下达日期 2013年 1 月 5 日任务完成日期 2013年 1 月 13日一、设计内容与设计要求1.课程设计目的:汇编语言程序设计是计算机专业的重要的专业基础课,通过本课程设计使学生进一步巩固课堂所学,全面熟
2、悉、掌握8088宏汇编语言程序设计的基本方法和技巧,进一步提高编写程序、阅读分析程序及上机操作、调试程序的能力。2.课题题目1)测量任意程序的运行时间2)读入一个文本文件并以DEBUG中的D命令格式显示。3)文件加密程序4)编写一个时钟程序5)画网格线6)画脉冲波图形7)用“*”画菱形框8)计算比赛成绩3设计要求:1)在一周内学生须上机16小时以上,程序调试完后,须由指导老师在机器上检查运行结果,经教师认可后的源程序可通过打印机输出。2)分组及安排A.每组同学必须完成所指定的题目,每个同学须自己完成设计,应有不同的思路。B.按学号分组,第一组为1、9、17、25、33号同学,第二组为2、10、
3、18、26、34号,第三组为3、11、19、27、35号,依次类推,其中第一组做第一题,第二组做第二题,依次类推。3)按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。4)不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计,成绩的考核按上机表现、答辩成绩及课程设计说明书来综合评定。成绩分为优、良、中、及格、不及格五级分评定。二、进度安排第 周 星期三 14时:00分18时:00分 星期日 8时:00分12时:00分星期五 8时:00分12时:00分课题1测量任意程序的运行时间 要求:该程序驻留内存 思路:DOS操作系统中,程序的调入运行及程序的终止均是通过相应的软中断来实
4、现的。若窃取相应软中断,记录下程序开始调入运行的时间及程序终止的时间,则可测量出该程序运行的时间。 提示要点:与之相关的软中断分别为: 程序开始执行:4BH号系统功能调用(INT 21H) 程序结束: INT 20H INT 27H 00H、3lH、4CH号系统功能调用(INT 21H)课题2读入一个文本文件并以DEBUG中的D命令格式显示。 要求:A、以DEBUG中的D命令格式显示一个文本文件。 B、文件名从键盘键入。 思路:A、打开相应文件,读内容至程序缓冲区。 B、按要求显示。课题3文件加密程序 要求:A、文件名从键盘输入。 B、加密密钥从键盘输入。 思路:从原文件读取内容至缓冲区,对其
5、加密后,重新写回文件原来的地方。 提示要点:A、加密可使用“异或”操作。 B、相关中断为3DH,3EH,3FH,40H,42H号系统功能调用(INT 21H)课题4编写一个时钟程序 要求:A、驻留内存。B、不影响其它程序运行。C、把时钟信号显示在屏幕固定位置(最好为右上角)。 思路:先从系统实时钟取得当前时间,每隔约0.05秒定时器向发出一次号中断请求,是一个硬中断。窃取 INT 1CH中断服务程序。课题5画网格线要求:A、背景为蓝色、横线为红色、直线为黄色。B、按用户输入的起点和终点坐标、列距和行距的大小画出任意条横竖线。C、参数以十进制数形式输入,格式如下: Please enter st
6、arting point (x1,y1):XX, XX Please enter ending point (x2,y2):XX, XX Please enter distance (row,col):XX, XX课题6画脉冲波图形 要求:用户以十进制数形式从键盘输入脉冲高度、脉冲宽度和颜色参数(格式同上)后,以屏幕中间行为脉冲中间行,从左到右、满屏画出相应的脉冲波图形。课题7用“*”画菱形框要求:A、背景为蓝色、“*”为红色,菱形框画在屏幕中间,菱形中间为空格。B、用户以十进制数形式输入菱形宽度和高度(格式同上)。课题8计算比赛成绩要求:A、7个评委,每个评委给分范围为010分(整数)。B、
7、7个评委的给分中,去掉一个最高分和一个最低分,余下5位评委的平均分即为参加者的得分(精确到小数点后一位)。C、将分数在屏幕中间位置处用红色显示出来。目 录1. 题目12. 程序总体设计方案、思路11.1. 程序总体设计方案11.2. 设计思路13. 程序设计框图24. 源程序清单65. 程序调试结果及分析126. 设计总结12 6.1遇到的问题12 6.2心得体会131. 题目 计算比赛成绩:要求:A、7个评委,每个评委给分范围为010分(整数)。 B、7个评委的给分中,去掉一个最高分和一个最低分,余下5位评委的平均分即为参加者的得分(精确到小数点后一位)。 C、将分数在屏幕中间位置处用红色显
8、示出来。2. 程序总体设计方案、思路 2.1程序总体设计方案 依次读取通过键盘输入(不需要回车确认)的七个十进制数并将得分保存在字符数组中,然后,再将7个数累加起来减去最小和最大的两个数,之后除以5,即得到去掉最高分和最低分之后的平均分,最后设置光标位置到中间处并用红色显示出来。 2.1设计思路 先定义一段7个字节的内存空间ARRY存放7个评委给出的分数,定义两个2字节存放最大和最小分数、2个字节存放平均分数以及一些信息字符串 。 主要是运用子函数的方法,实现的主要函数有输入函数、查找函数、计算并显示函数。首先使用输入函数,使用一个循环结构,循环读入七个输入的十进制得分数据并将对应的ASCII
9、码转换成二进制数存入长度为8的字符串中。若输入数为1,则要判断下次输入的是否为0,不是0则直接是当输入的是1,若输入的数是非09中其他数,就是它本身,其他就重新输入。 接下来是查找部分,使用比较法将字符串中的数据的最大和最小依次查找出来,并存入定义的变量中,并在屏幕上输出。 计算和显示部分,设计一个循环结构依次读入第一到第七个数,累加求和。判断最大和最小数值是否为10,如果是则用上面的求和总数减去10,如果不是则将总分减去最大值和最小值,就实现了去掉一个最高和最低分。将减去之后的总分除以5,将最后将得到的商输出作为平均分的个位数存入二个字节的数组中,并在之后输出一个小数点。然后将刚才所得的余数
10、判断是否为0,不是0就乘以10再除以5并将商跟在小数点后输出,如果是0就直接存入数组。此时屏幕上输出的即为去掉一个最高分和最低分之后得到的平均分,使用INT 10H功能设置屏幕显示光标的位置、设置背景和前景的颜色,最后将平均分显示用红色显示在屏幕中间位置。3. 程序设计框图(1)汇编程序流程图 开始初始化数据段显示输入提示信息 调用DIB子程序调用FIND子程序调用DISP子程序结束图1 主函数程序流程图(2)DIB子程序流程图 开始初始化(CX)=7,SI指向数组ARRY用INT 21H功能输入一个字符到(AL)将(AL)的ASCII减去30H,得到数字N(AL)小于等于9和大于等于0YY等
11、于1?输入字符到(AL)N(AL) (AL)-30H(AL)=0?NY(AL) 1显示0(AL) A将(AL)存入数组ARRY,回显一个逗号(SI)加1,(CX)减1RET图2 DIB输入子程序流程图(3)FIND子程序流程图 开始SI指向数组ARRY初始化MAX=0,MIN='A'取ARRY数组的第一个数MAX大于(BL)?NYMAX (BL)MIN大于(BL)?SNMIN (BL)YINC SILOOPRET图3 FIND找最大和最小值子程序流程图(4)DISP子程序流程图 开始将ARRY的7个数累加到(AL)将(AL)中数减去MAX和MINAL扩展到AX(AX)除以5,整
12、数放到score,余数放到score+1INT 10H的0号功能设置屏幕80*25彩色文本模式INT 10H的2号功能调整光标INT 10H的9号功能设置字体颜色显示score、.和score+1RET图4 DISP显示子程序流程图4. 源程序清单DATA SEGMENT ARRY DB 8 DUP(?) MAX DB 0 MIN DB 'A' SCORE DB 2 DUP(?) MESSAGE DB'Please enter the 7 consecutive Score(010):$' MESSAGE_MAX DB 0DH,0AH,'Max scor
13、e:$' MESSAGE_MIN DB 0DH,0AH,'Min score:$' MESSAGE_AVE DB 0DH,0AH,'Average score:$'DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV AH,0 MOV AL,3 INT 10H CALL DIB CALL FIND CALL DISP MOV AH,1 INT 21H MOV AX,4C00H INT 21 DIB PROC NEAR PUSH AX PUSH CX PUSH
14、 SI MOV CX,7 LEA SI,ARRY LEA DX,MESSAGE ;显示提示信息 MOV AH,9 INT 21H;从键盘输入7个010的数字到arry REP1: MOV AH,1 INT 21H SUB AL,30H CMP AL,0 ;是0吗? JL REP1 CMP AL,9 JG REP1 CMP AL,1 JE REP_10 ;输入10,用'A'代替输入 JMP PUTREP_10: MOV AH,8 ;如果是第二次输入,调用int21h的8h功能输入,不用回显出来 INT 21H SUB AL,30H CMP AL,0 JE INPUT_A INPU
15、T_1: MOV AL,1 JMP PUTINPUT_A: MOV AH,2 MOV DL,'0' INT 21H MOV AL,41H PUT: MOV SI,AL CMP CX,1 JE SHI MOV DL,2CH MOV AH,2 INT 21HSHI: INC SI DEC CX CMP CX,0 JNZ REP1 EXIT1: MOV BYTE PTR SI,'$' POP SI POP CX POP AX RETDIB ENDP;查找最大和最小score的函数FIND PROC NEAR PUSH BX PUSH CX PUSH SI MOV CX
16、,7 LEA SI,ARRYREP2: MOV BL,SI CMP MAX,BL JG NEXT MOV MAX,BLNEXT: CMP MIN,BL JL NEXT2 MOV MIN,BLNEXT2:INC SI LOOP REP2 LEA DX,MESSAGE_MAX ;显示提示信息 MOV AH,9 INT 21H MOV DL,MAX CMP DL,41H JNZ NEXT_0 JMP OUT1_00 ;输出A时,用'1'&'0'代替 NEXT_0: ADD DL,30H MOV AH,2 INT 21H JMP TO_MINOUT1_00: M
17、OV AH,2 MOV DL,'1' INT 21H MOV DL,'0' INT 21H TO_MIN: LEA DX,MESSAGE_MIN MOV AH,9 INT 21H MOV DL,MIN CMP DL,41H JNZ NEXT_N0 JMP OUT1_000NEXT_N0: ADD DL,30H MOV AH,2 INT 21H JMP TO_WAITOUT1_000: MOV AH,2 MOV DL,'1' INT 21H MOV DL,'0' INT 21HTO_WAIT: MOV AH,2 MOV DL,0DH
18、 INT 21 MOV AH,2 MOV DL,0AH INT 21H MOV AH,1 INT 21H EXIT2:POP SI POP CX POP BX RETFIND ENDP;计算平均值得分并输出来,精确一位小数,注意,5个数字的平均值,一定最多是1位小数位DISP PROC NEAR PUSH AX PUSH CX PUSH DX PUSH SI MOV CX,7 LEA SI,ARRY MOV AL,0REP3: MOV BL,SI ;将7个数都加起来到AX,最后减去MAXscore和MIN score CMP BL,41H JE NEXT33 ADD AL,BL JMP NEX
19、T3NEXT33: ADD AL,10NEXT3:INC SI LOOP REP3 CMP MAX,41H JE SUB_10 SUB AL,MAX JMP SUB_MINSUB_10: SUB AL,10SUB_MIN: CMP MIN,41H JE SUB_N10 SUB AL,MIN JMP NEXT44SUB_N10: SUB AL,10NEXT44: CBW MOV BL,5 DIV BL MOV SCORE,AL ;score放商 CMP AH,0 ;AH里是余数 JNZ NEXT4 ;余数不为0就再除一次即可 MOV SCORE+1,AH JMP PRINTNEXT4:MOV B
20、L,AH MOV AL,BL CBW MOV BL,10 MUL BL ;(ax)(al)*(src) MOV BL,5 DIV BL ;此处又是(al)(ax)/(src)商,(ah)(ax)/(src)余数一定是0了 MOV SCORE+1,ALPRINT: LEA DX,MESSAGE_AVE MOV AH,9 INT 21H MOV AH,2 MOV DX,0B26H INT 10H MOV AH,9 MOV BH,0 MOV BL,0CH ;前一个控制背景颜色,后一个控制字体颜色,0为黑,C为红,0CH就是红字黑底 MOV CX,3 INT 10H MOV DL,SCORE ;ave
21、rage score的整数部分 ADD DL,30H CMP DL,3AH JNZ NNN2 MOV DL,'1' ;输出'1'&'0' MOV AH,2 INT 21H MOV DL,'0' INT 21H JMP XSDNNN2: MOV AH,2 INT 21HXSD: MOV DL,'.' ;小数点 MOV AH,2 INT 21H MOV DL,SCORE+1 ;average score小数部分,只有1位 ADD DL,30H MOV AH,2 INT 21HEXIT5:POP SI POP DX POP CX POP AX RETC_DISP ENDPCODE ENDS END START5. 程序调试结果及分析 如果输入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业并购居间服务简明合同
- 二零二五年度太阳能热水器维保与市场拓展服务合同
- 宠物店装修监理合同协议
- 云计算应用软件技术授权合同
- 文化娱乐行业演唱会门票购买合同协议
- 汽车租赁行业事故责任免除协议
- 教育培训合作框架协议
- 家电维修中的客户关系管理考核试卷
- 固体废物处理与固废处理技术创新案例考核试卷
- 农业防灾减灾体系建设考核试卷
- 2022年中国电信维护岗位认证动力专业考试题库大全-上(单选、多选题)
- 《电气作业安全培训》课件
- 水平二(四年级第一学期)体育《小足球(18课时)》大单元教学计划
- 《关于时间管理》课件
- 医药高等数学智慧树知到课后章节答案2023年下浙江中医药大学
- 城市道路智慧路灯项目 投标方案(技术标)
- 水泥采购投标方案(技术标)
- 医院招标采购管理办法及实施细则(试行)
- 初中英语-Unit2 My dream job(writing)教学设计学情分析教材分析课后反思
- 广州市劳动仲裁申请书
- 江西省上饶市高三一模理综化学试题附参考答案
评论
0/150
提交评论