




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉理工大学华夏学院课 程 设 计课程名称 汇编语言课程设计 题 目 在显示器上显示九九表 专 业 软件技术 班 级 软件2073班 姓 名 成 绩 _指导教师 _2009年6 月29 日课程设计任务书设计题目:在显示器上显示九九表设计目的:1. 巩固和加深课堂所学知识;2. 将课本上的理论知识和实际应用有机的结合起来,培养同学们分析和解决实际问题的能力;3. 通过对汇编语言程序代码的阅读、修改、设计,理解和掌握复杂的汇编语言应用程序的编程,提高实践编程能力。设计任务:(在规定的时间内完成下列任务)功能与要求:1. 九九表三角形边框用彩色(颜色自定)其它黑白色2. 在九九表下方显示自己的学号和
2、姓名(汉语拼音)时间安排:6月29日布置题目,确定任务、查找相关资料6月30日7月2日功能分析,模块设计,编写程序,调试程序7月3日答辩后撰写设计报告。具体要求:设计报告撰写格式要求(按提供的设计报告统一格式撰写),具体内容如下:1、 题目:2、设计目的:2、设计内容:写出简要的程序功能描述、程序运行条件-所需工具软件、输入/输出描述等。3、程序结构: 主要的段定义说明; 用到的子程序(宏)的功能说明、调用关系说明、参数传送方式说明等; 主要算法描述等(各模块功能实现及典型指令的应用)。4、设计步骤(注明时间安排)5、程序流程图、源程序(程序必须有简单注释,源程序若太长,可作为附录)6、实验结
3、果(输出)7、其他值得说明的内容(1)程序结构设计特点;(2)设计、调试程序心得、体会或不足。附录:源程序代码(必须有简单注释) 参考文献指 导 教 师 签 名: 09年 6月 29 日教研室主任(或责任教师)签名: 09 年6 月 29 日目录第1章 概述1.1课程设计任务1 九九表三角形边框用彩色(颜色自定)其它黑白色2. 在九九表下方显示自己的学号和姓名(汉语拼音)1.2 开发环境为了运行汇编语言程序,必须保证所用磁盘上有以下编辑程序:masm.exe link.exedebug.exemasm为宏汇编程序,负责对源文件进行汇编;link为连接程序,把汇编后产生的目标模块连接在一起,产生
4、可执行文件;debug是调试程序,它是调试汇编语言程序必不可少的工具。1.3 开发目的本次课程设计的目的主要是将课堂上所学的知识学以致用,并同过程序的制作过程学习课外的新知识,加强加深对知识的理解与掌握,并通过小组团结合作,发挥每个人的力量使任务更加生动有趣。第2章需求分析 2 问题陈述能够在屏幕上输出九九乘法表,在对角线、第一列、最后一行的数用彩色的数显示,其它的为黑白色,最后在九九乘法表的下面输出自己的学号和姓名。第3章详细设计3.1程序总体设计输出九九乘法表,然后在要求的地方输出彩色字。如图一所示:调用writecc输出彩色字符开始定义内外层变量,将bh,bl送1判断bh * bl &g
5、t; 9 ?将数字变成ascii值将双位数拆分后分别转asciitruefalse判断bh = = bl ?判断bl = = 1 ?判断bh = = 9 ?输出普通字符falsefalsefalsetruetruetrue图1 系统流程图3.2 程序结构 主要段定义num db 0ah,0dh,'10225607305 zhou cheng',0ah,0dh,'$'data ends 子程序的功能调用display子程序用来输出双位数,outx输出个位数,crlf用来输出回车换行,writecc是彩色字符的调用。3.3 源程序代码data segmentnum
6、db 0ah,0dh,'10225607305 zhou cheng',0ah,0dh,'$'data endsstack segment stack dw 100h dup(?)stack endscode segment assume cs:code,ss:stack,ds:datastart: mov ax,data mov ds,ax;=main()= ;mov dh,1 mov bh,01h 外层循环变量赋初值 lop1: mov bl,01h 内层循环变量赋初值 lop2: mov al,bh mul bl 将bl与bh相乘 call display
7、 调用输出 inc bl 将bl自增一次 cmp bl,bh 判断bl、bh是否相等 jbe lop2 当bl<=bh时跳转 call crlf 当bl>bh时回车换行 inc bh cmp bh,9 jbe lop1 -输出学号和姓名- mov dx,offset num 将num的偏移值传给dx mov ah,9 int 21h mov ah,1 int 21h;= mov ax,4c00h int 21h;-回车换行-crlf proc near push ax push dx mov ah,2 mov dl,0ah int 21h mov dl,0dh int 21h po
8、p dx pop ax retcrlf endp-outx proc near push ax push dx mov ah,2 int 21h pop dx pop ax retoutx endp;-输出-display proc near push dx cmp al,10 判断输出的数是否为双位数 jae disp1 是双位数就跳转到disp1 mov dl,' ' call outx 是个位数就跳转到outx jmp disp2disp1: mov dl,10 将10传给dl mov ah,0 div dl 把双位数除10,商送给al,余数送给ah mov dl,al
9、add dl,'0' 将数字变成ascii值;-彩色字符的判断- cmp bl,bh 判断bl、bh是否相等 jne show5 不等则跳转到show5 call writecc 相等则调用彩色字符输出 jmp show1 show5: cmp bl,1 判断输出地数是否为第一列的数 jne show6 不是则跳转到show6 call writecc jmp show1show6: cmp bh,9 判断输出地数是否为最后一行的数 jne show 不是则跳转 call writecc jmp show1;- show: call outxshow1: mov al,ahdi
10、sp2: mov dl,al add dl,'0'-彩色字符判断- cmp bl,bh jne show4 call writecc jmp show3 show4: cmp bl,1 jne show7 call writecc jmp show3show7: cmp bh,9 jne show2 call writecc jmp show3;-show2: call outxshow3: mov dl,' ' call outx call outx pop dx retdisplay endp;色彩字符;程序名称:writecc;程序功能:色彩字符输出子程序
11、;入口条件:dl=输出字符的ascll,dh=颜色值(0-9); 出口:无;影响寄存器:无col db 00001000b,00000011b,00000100b,00000111b,00000001b db 00000110b,00001111b,00000000b,00000010b,00000101bwritecc proc near push ax push bx push cx push dx push si xor ah,ah 将ah清0 mov dh,9 将0到9任意数送给dh显示不同的颜色 mov al,dh mov si,ax mov ah,9 mov al,dl mov b
12、h,0 mov bl,colsi mov cx,1 int 10h mov ah,3 int 10h mov ah,2 inc dl int 10h pop si pop dx pop cx pop bx pop ax retwritecc endpcode ends end start 第4章程序调试与操作说明4.1 系统调试及截图图2 先用masm 编译程序图3 第二步用link来编译程序图4 最后结果第5章课程设计总结与体会这次汇编语言课程设计将课本上所学的知识能够很好的运用到,包括子程序的调用,一些判断跳转指令,特别是在判断彩色字符的地方,很容易就会跳转错误,汇编语言是一门严谨的学科,
13、需要仔细小心,不然很容易就出错。在这次课程设计中我学到了彩色字符的输出是怎么样实现的,让我感到其实底层语言也是有其独特魅力的,我想在今后的学习中也会加入一些汇编语言的编程特点。附录 参考文献1 张晓明等编著.汇编语言程序设计.北京.国防工业出版社.2008年2 徐建民等编著.汇编语言程序设计.北京.电子工业出版社.2005年3 沈美明等编著.80x86汇编语言程序设计.北京.清华大学出版社.2001年设计过程中质疑(或答辩)记载:1 简单介绍课设中,程序由几个模块构成?答:程序由4个模块组成的,有双位数字输出模块display,有单位数输出地模块outx,有回车换行模块crlf,有彩色字符的输出函数writecc。2 课程设计中,有多少模块是你独立完成的?答:关于彩色字符的判断是我自己完成的,我的程序要求在九九乘法表的第一列、最后一行和斜线的地方用彩色字符输出,于是我用三条判断语句完成,首先判断数字是否在斜线上,不是则判断是否在第一列,最后判断是否在最后一行,在相应的地方跳转到彩色和普通字符模块进行输出。代码见源程序中的彩色字符的判断。3 你是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省楚雄州2022-2023学年高二下学期语文期末试卷(含答案)
- 2025农田地承包合同样本
- 2025各类加工合同范本
- 2025标准汽车买卖合同范本
- 2025如何认定农村土地承包合同的效力
- 2025建筑施工设备租赁合同范本
- 2025广州房屋租赁合同范本2
- 2025简约农业合作合同范本
- 《慢性便秘解析与自我管理》课件
- 《探索人生意义》课件
- 辛弃疾词《青玉案·元夕》
- 公路桥梁塔柱施工平台及通道安全技术要求
- 糖尿病临床诊疗指南:基层实践
- 抖音房产直播敏感词汇表
- (高清版)JTGT 3383-01-2020 公路通信及电力管道设计规范
- 国际公法学马工程全套教学课件
- 微专题地质地貌的形成过程(解析)
- YY/T 0655-2024干式化学分析仪
- 中华民族共同体概论课件专家版2第二讲 树立正确的中华民族历史观
- 四年级四年级下册阅读理解100篇及答案经典
- 中职对口升学复习资料:《汽车机械基础》试题库+答案
评论
0/150
提交评论