汇编程序设计显示对称图形.docx
- 文档编号:23653165
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:39
- 大小:85.19KB
汇编程序设计显示对称图形.docx
《汇编程序设计显示对称图形.docx》由会员分享,可在线阅读,更多相关《汇编程序设计显示对称图形.docx(39页珍藏版)》请在冰豆网上搜索。
汇编程序设计显示对称图形
武汉理工大学华夏学院
课程设计报告书
课程名称:
汇编语言程序设计
题目:
显示对称图形一、图形2(第6组)
系名:
信息工程系
专业班级:
运算机1131
姓名:
雷云龙
学号:
指导教师:
李捷
年月日
课程设计任务书
学生姓名:
雷云龙专业班级:
运算机1131
指导教师:
李捷工作单位:
信息工程系
设计题目:
在显示器上显示对称图形一、图形2
初始条件:
PC机上实现课程设计
要求完成的要紧任务:
*
*
*
*
*
*
2
*
*
*
*
*
*
*
*
1
2
3
4
5
*
*
*
*
*
5
4
3
2
1
*
*
*
*
3
2
*
*
*
*
*
*
*
2
3
4
5
6
*
*
*
6
5
4
3
2
*
*
4
3
2
1
2
3
4
5
6
3
4
5
6
7
*
7
6
5
4
3
5
4
3
2
1
2
3
4
5
4
5
6
7
8
7
6
5
4
4
3
2
1
2
3
4
5
6
7
8
7
6
5
3
2
*
*
*
6
7
8
7
6
2
*
*
7
8
7
*
8
第六组
图1
图2
要紧任务:
1.按”Esc”退出程序;
2.能有2种图形显示,2种色彩方案;
3.按“1,2”黑白,大体显示图形1,大体图形2;
4.按“3,4”色彩方案,显示图形1,图形2(颜色自定);
5.按“5,6”色彩缺损方案,显示图形1,图形2(颜色自定);
设计报告撰写格式要求:
题目:
二、设计目的:
二、设计内容:
写出简要的程序功能描述、程序运行条件--所需工具软件、输入/输出描述等。
3、程序结构:
①要紧的段概念说明;
②用到的子程序(宏)的功能说明、挪用关系说明、参数传送方式说明等;
③要紧算法描述等(各模块功能实现及典型指令的应用)。
4、设计步骤(注明时刻安排)
五、程序流程图、源程序(程序必需有简单注释,源程序假设太长,可作为附录)
六、实验结果(输出)
7、其他值得说明的内容
(1)程序结构设计特点;
(2)设计、调试程序心得、体会或不足。
附录:
源程序代码(必需有简单注释)
参考文献
指导教师签字:
2015年9月10日
系主任签字:
年月日
第1章需求分析
1.1课程设计题目
在显示器上显示对称的图1,图2图像
*
*
*
*
*
*
2
*
*
*
*
*
*
*
*
1
2
3
4
5
*
*
*
*
*
5
4
3
2
1
*
*
*
*
3
2
*
*
*
*
*
*
*
2
3
4
5
6
*
*
*
6
5
4
3
2
*
*
4
3
2
1
2
3
4
5
6
3
4
5
6
7
*
7
6
5
4
3
5
4
3
2
1
2
3
4
5
4
5
6
7
8
7
6
5
4
4
3
2
1
2
3
4
5
6
7
8
7
6
5
3
2
*
*
*
6
7
8
7
6
2
*
*
7
8
7
*
8
第六组
图1
图2
1.2课程设计目的
.1巩固和加深课堂所学知识,熟练把握编写汇编语言程序的大体方式和大体框架;将讲义上的理论知识和实际应用有机的结合起来,培育同窗们分析和解决实际问题的能力,学会编写顺序结构,分支结构和循环结构和子程序的汇编程序,把握宏概念与宏挪用的方式。
.2通过对汇编语言程序代码的阅读,修改,设计和明白得,把握复杂的汇编语言能力应用程序的编程,提高实践编程能力。
把握程序中数据的产生与输入输出的方式,使学生能够较为全面的巩固和应用课堂中学到的大体理论和程序设计方式,能够熟练的完成汇编语言的设计和调试。
程序运行环境及开发工具
运行环境:
Windows7/Windows8/Windows10/WindowsXP/DOS系统等;
开发工具:
MasmforWindows集成实验环境/tddebug等。
课程设计任务及要求
.1设计任务
”Esc”退出程序;能有2种图形显示,2种色彩方案(见上图大体图形)
“1,2”黑白------大体显示图形1,大体图形2
“3,4”色彩---显示图形1,图形2(颜色自定)
“5,6”色彩缺损---显示图形1,图形2(颜色自定)
.2设计要求
程序结构中要求至少包括数据段,代码段,有子程序应用,系统功能挪用。
屏幕最终输出如以下图:
*
*
*
*
*
*
2
*
*
*
*
*
*
*
*
1
2
3
4
5
*
*
*
*
*
5
4
3
2
1
*
*
*
*
3
2
*
*
*
*
*
*
*
2
3
4
5
6
*
*
*
6
5
4
3
2
*
*
4
3
2
1
2
3
4
5
6
3
4
5
6
7
*
7
6
5
4
3
5
4
3
2
1
2
3
4
5
4
5
6
7
8
7
6
5
4
4
3
2
1
2
3
4
5
6
7
8
7
6
5
3
2
*
*
*
6
7
8
7
6
2
*
*
7
8
7
*
8
第六组
图1
图2
第2章设计步骤
(1)收到教师步骤的题目,确信小组各个成员的任务,各个成员查找相关资料,并研究图形的规律,与相关程序的编写。
(2)与小组成员们一路讨论题目,并绘制相关的程序运行流程图,写出关键步骤的代码与相关程序的编写。
(3)调试并编译所写的程序代码,并依照题目的要求,一次次的调试程序,直抵达到课程设计的要求。
(4)程序通过教师的检查,并回答教师的答辩问题。
第3章详细设计
3.1要紧段概念说明
(1)数据段概念
字符输出属性col
colDB00000100b,00000110b,00001110b,00000010b,00000011b
DB00000001b,00000101b,00000000b,00001111b,00001100b
学生信息stu
stuDB
提示信息prompt
promptDB'Input<1-7>,Esc$'
程序指针变量outx
outxDW0
光标的坐标
coordxDB0
coordyDB0
按键值
KEYDB'7'
闪烁操纵
TwinDB0
(2)堆栈概念
DW100HDUP(?
)
3.2子程序说明
(1)ShowStu子程序,功能:
显示学号姓名和提示信息。
(2)contorl子程序,功能:
判定按键的值,并执行相应的操作。
(3)kbtest子程序,功能:
监控键盘是不是有操作。
(4)A3PRN子程序,功能:
显示对称图形1。
(5)B3PRN子程序,功能:
显示对称图形2。
(6)WriteCC子程序,功能:
色彩字符输出子程序。
(7)Clrscr子程序,功能:
清标准屏子程序。
(8)CRLF子程序,功能:
输出回车换行。
(9)cursor子程序,功能:
置光标位置。
(10)SPACE子程序,功能:
输出一个空格。
(11)printx子程序,功能:
输出一个*号。
(12)daily1和daily2子程序,功能:
延迟。
模块设计
(1)按键操纵模块。
汇编语言的判定条件相当于C语言中的IF语句,当知足按键条件的时候,程序执行下面功能,不知足条件,跳到下一个判定条件。
Int16h中的1号功能挪用用了监控键盘是不是按下。
Int21h中的7号功能挪用,AH=07H,功能:
键盘输入一个字符到AL中,AL中为该字符的ASCII码。
(屏幕上可不能显示输入的结果)
先比较输入的结果是不是1号键的ASCII码值,相等就往下运行,然后显示1号键的功能模块,显示完以后程序会无条件跳转到等待输入指令那里,等待下一个输入按键;不相等那么跳转到CMPAL,'2'指令,比较输入的结果是不是等于2号键的ASCII码值,然后重复上面的操作,明白比较完为止;当输入的键不是要显示的功能时,可不能有任何反映,仍然等待输入按键;最后确实是程序退出指令,按ESC键程序退出。
(2)大体图形模块。
用来显示大体的图形,判定光标的位置应该输出什么。
其显示要依托于输出颜色和缺损操纵模块。
(3)输出颜色和缺损操纵模块。
先写一个子程序,功能是所有颜色的分派跟挪用,然后再写子程序通过挪用那个着色子程序来对按要求图形进行着色通过判定条件来对一片区域进去着色,不同地址知足条件不一样,着的颜色也就不一样。
21H中的2号功能挪用,AH=02H,功能:
被输出显示的字符或字符ASCII码送到DL寄放器中。
挪用输出颜色和缺损操纵模块子程序,就能够够对图形进行着色,若是改变图形的样式,挪用那个子程序,也能够对其进行着色。
outx是概念的一个程序指针变量,MOVDX,OFFSETAOUT2X指令是获取AOUT2X的位置,然后通知MOVoutx,DX送给那个outx变量,在图形样式里面挪用那个outx变量;如此只需要改变着色子程序AOUT2X就能够够改变不同的着色方案了。
(4)光标定位模块
MasmforWindows集成实验环境的运行结果显示只有25行,而且它只是纵向输出,可不能横向排列,因此要想在一个屏幕上输出全数的等腰三角形,就必需定位光标,讲光标定位到屏幕的右边,使得右边能够显示等腰三角形;光标的定位是一个10H功能里面的挪用,它能够将光标定位到屏幕任何一个位置。
10H中的2号功能挪用,AH=02H,功能:
是设定光标位置,位置用DH、DL表示,DH表示列号,DL表示行号。
由左至右称之为『列』,屏幕最上面一列为第零列,紧靠第零列的下一列称为第一列……;由上而下称之为『行』,屏幕最左侧一行称之为第零行,紧靠第零行右边的一行为第一行。
故最左侧,最上面的位置为DH=0且DL=0;最左侧第二列,DH=1,DL=0。
若是是文字模式时,BH为欲改变光标位置的显示页,若是是图形模式,BH要设为0。
以行列来讲明DH、DL之意义,学生常常弄混,底下以座标方式说明。
在文字模式下,字符的位置类似数学直角座标系的座标,可是Y轴方向相反,Y轴是以屏幕最上面为零,越下面越大,直到24为止,存于DH内。
X轴和直角座标系相同,越右边越大,存于DL内,其最大值视显示模式而变。
第4章程序流程图
第5章实验结果
5.1初始化界面
5.2按6号键界面
5.3按ESC退出界面
第6章心得体会
课程设计是实践教学体系中的重要环节,关于巩固课堂理论知识,培育学生实践能力、应用能力起着超级重要的作用。
通过对讲义知识进行综合运用,编写应用程序大体把握软件开发的进程,熟练把握汇编语言程序设计的方式,把握子程序BIOS和DOS程序设计方式,把握程序的运行、调试方式,提高独立分析问题、解决问题的能力,提高查阅资料的能力,增强团队协作意识。
通过这次课程设计以后我了解到只要认真投入地去试探机械是如何进行逻辑试探的而且熟悉指令,汇编语言的趣味性比高级语言更强。
更重要的是,在实验课上,咱们学会了很多学习的方式。
而这是往后最有效的,真的是收成颇丰。
只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立试探的能力。
在设计的进程中碰到问题,能够说得是困难重重,但可喜的是这些问题最终能迎刃而解。
关于程序设计语言中的数据类型形参实参函数挪用全局变量局部变量等概念及操作,咱们都能够用汇编语言中的一些操作相关联,把这些抽象的概念和进程,通过汇编语言形成一个具体的映像,深度剖析,如此咱们才能真正的学会学好C语言运算机科学的方方面面是一个统一的整体。
只有多方面穿插,交互才能更好的搭建运算机知识体系,汇编语言本身仍是一门很重要的应用技术。
第一由于汇编的操作由于跟硬件紧密相关,因此,很多硬件设施的嵌入式编程利用的都是利用的汇编语言,因为汇编语言更直接,更有效率。
同时尽管这次课程设计终止了,可是总感觉自已知道的知识很是不足,学无止境,以后还会加倍的尽力深切的学习。
设计者:
雷云龙
日期:
2021年12月31日
附录
程序代码:
DATASEGMENT
colDB00000100b,00000110b,00001110b,00000010b,00000011b
DB00000001b,00000101b,00000000b,00001111b,00001100b
stuDB
promptDB'Input<1-7>,Esc$'
outxDW0
coordxDB0
coordyDB0
KEYDB'7'
TwinDB0
DATAENDS
STAKSEGMENTSTACK
DW100HDUP(?
)
STAKENDS
CODESEGMENT
ASSUMECS:
CODE,SS:
STAK,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
;========MAIN(()====================
CALLprint7
CALLShowStu
MAINLP:
CALLcontorl
cmpTwin,0
jzMAINLP
CALLdaily1
CALLClrscr
CALLdaily2
JMPMAINLP
MOVAX,4C00H;程序终止
INT21H
;========MAIN())====================
;-------显示学号姓名--------
ShowStuPROCNEAR
PUSHAX
PUSHDX
MOVDX,OFFSETstu
MOVAH,9
INT21H
CALLCRLF
MOVDX,OFFSETprompt
MOVAH,9
INT21H
CALLCRLF
POPDX
POPAX
RET
ShowStuENDP
;-------按键操纵---------------------------
contorlPROCNEAR
PUSHAX
input:
CALLkbtest
;MOVAH,01H
;INT16H
;JZKEYSER
;MOVAH,00H
;INT16H
;MOVAL,KEY
KEYSER:
cmpal,'1'
jnzoption1
CALLprint1;图形1黑白输出
JMPCONKEY
option1:
cmpal,'2'
jnzoption2
CALLprint2;图形2黑白输出
JMPCONKEY
option2:
cmpal,'3'
jnzoption3
CALLprint3;图形1彩色输出
JMPCONKEY
option3:
cmpal,'4'
jnzoption4
CALLprint4;图形2彩色输出
JMPCONKEY
option4:
cmpal,'5'
jnzoption5
CALLprint5;图形1缺损彩色输出
JMPCONKEY
option5:
cmpal,'6'
jnzoption6
CALLprint6;图形2缺损彩色输出
JMPCONKEY
option6:
cmpal,'7'
jnzoption7
CALLprint7;输出全数图形
JMPCONKEY
option7:
cmpal,'-'
jnzoption8;关闭闪烁
;CALLOffTwinkle
movTwin,0
JMPcontorlEND
option8:
cmpal,'='
jnzoption9;打开闪烁
;CALLOnTwinkle
movTwin,1
JMPcontorlEND
option9:
cmpal,1BH
jnzoption10
MOVAX,4C00H;程序终止
INT21H
option10:
JMPinput
CONKEY:
CALLShowStu
MOVKEY,AL
contorlEND:
POPAX
RET
contorlENDP
;-------图形1黑白输出---------------------------
print1PROCNEAR
CALLClrscr
movcoordx,5
movcoordy,1
CALLcursor
movDX,OFFSETOUT1X
movoutx,DX
CALLA3PRN
CALLCRLF
RET
print1ENDP
;-------图形2黑白输出---------------------------
print2PROCNEAR
CALLClrscr
movcoordx,5
movcoordy,1
CALLcursor
movDX,OFFSETOUT1X
movoutx,DX
CALLB3PRN
CALLCRLF
RET
print2ENDP
;-------图形1彩色输出---------------------------
print3PROCNEAR
CALLClrscr
movcoordx,5
movcoordy,1
CALLcursor
movDX,OFFSETAOUT2X
movoutx,DX
CALLA3PRN
CALLCRLF
RET
print3ENDP
;-------图形2彩色输出---------------------------
print4PROCNEAR
CALLClrscr
movcoordx,5
movcoordy,1
CALLcursor
movDX,OFFSETBOUT2X
movoutx,DX
CALLB3PRN
CALLCRLF
RET
print4ENDP
;-------图形1缺损彩色输出---------------------------
print5PROCNEAR
CALLClrscr
movcoordx,5
movcoordy,1
CALLcursor
movDX,OFFSETAOUT3X
movoutx,DX
CALLA3PRN
CALLCRLF
RET
print5ENDP
;-------图形2缺损彩色输出---------------------------
print6PROCNEAR
CALLClrscr
movcoordx,5
movcoordy,1
CALLcursor
movDX,OFFSETBOUT3X
movoutx,DX
CALLB3PRN
CALLCRLF
RET
print6ENDP
;-------全图形输出---------------------------
print7PROCNEAR
CALLClrscr
movcoordx,5
movcoordy,1
CALLcursor
movDX,OFFSETOUT1X
movoutx,DX
CALLA3PRN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编程序 设计 显示 对称 图形
![提示](https://static.bdocx.com/images/bang_tan.gif)