最新汇编程序设计显示对称图形.docx
《最新汇编程序设计显示对称图形.docx》由会员分享,可在线阅读,更多相关《最新汇编程序设计显示对称图形.docx(34页珍藏版)》请在冰豆网上搜索。
最新汇编程序设计显示对称图形
8、目前无线局域网采用的拓扑结构主要有__点对点式_、_多点式_______、__中继式__。
20、下列哪个任务不是网络操作系统的基本任务?
__A__
clear
【答案】D
settalkon
17.关于视图,下列说法错误的是________。
A.LIST姓名FOR出生日期=1985
B.REPLACE总分WITH高等数学,英语,计算机网络
A.事件是一种预先定义好的特定的动作,由用户或系统激活
FORN=1TO10
武汉理工大学华夏学院
课程设计报告书
课程名称:
汇编语言程序设计
题目:
显示对称图形1、图形2(第6组)
系名:
信息工程系
专业班级:
计算机1131
姓名:
雷云龙
学号:
10210413104
指导教师:
李捷
年月日
课程设计任务书
学生姓名:
雷云龙专业班级:
计算机1131
指导教师:
李捷工作单位:
信息工程系
设计题目:
在显示器上显示对称图形1、图形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(颜色自定);
设计报告撰写格式要求:
题目:
2、设计目的:
2、设计内容:
写出简要的程序功能描述、程序运行条件--所需工具软件、输入/输出描述等。
3、程序结构:
①主要的段定义说明;
②用到的子程序(宏)的功能说明、调用关系说明、参数传送方式说明等;
③主要算法描述等(各模块功能实现及典型指令的应用)。
4、设计步骤(注明时间安排)
5、程序流程图、源程序(程序必须有简单注释,源程序若太长,可作为附录)
6、实验结果(输出)
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.1巩固和加深课堂所学知识,熟练掌握编写汇编语言程序的基本方法和基本框架;将课本上的理论知识和实际应用有机的结合起来,培养同学们分析和解决实际问题的能力,学会编写顺序结构,分支结构和循环结构和子程序的汇编程序,掌握宏定义与宏调用的方法。
1.2.2通过对汇编语言程序代码的阅读,修改,设计以及理解,掌握复杂的汇编语言能力应用程序的编程,提高实践编程能力。
掌握程序中数据的产生与输入输出的方法,使学生能够较为全面的巩固和应用课堂中学到的基本理论和程序设计方法,能够熟练的完成汇编语言的设计和调试。
1.3程序运行环境及开发工具
运行环境:
Windows7/Windows8/Windows10/WindowsXP/DOS系统等;
开发工具:
MasmforWindows集成实验环境/tddebug等。
1.4课程设计任务及要求
1.4.1设计任务
1.按”Esc”退出程序;能有2种图形显示,2种色彩方案(见上图基本图形)
2.按“1,2”黑白------基本显示图形1,基本图形2
3.按“3,4”色彩---显示图形1,图形2(颜色自定)
4.按“5,6”色彩缺损---显示图形1,图形2(颜色自定)
1.4.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'10210413104LeiYunLong$'
提示信息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子程序,功能:
延迟。
3.3模块设计
(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语言计算机科学的各个方面是一个统一的整体。
只有多方面穿插,交互才能更好的搭建计算机知识体系,汇编语言本身还是一门很重要的应用技术。
首先由于汇编的操作由于跟硬件紧密相关,所以,很多硬件设施的嵌入式编程使用的都是使用的汇编语言,因为汇编语言更直接,更有效率。
同时虽然这次课程设计结束了,但是总觉得自已懂得的知识很是不足,学无止境,以后还会更加的努力深入的学习。
设计者:
雷云龙
日期:
2015年12月31日
附录
程序代码:
DATASEGMENT
colDB00000100b,00000110b,00001110b,00000010b,00000011b
DB00000001b,00000101b,00000000b,00001111b,00001100b
stuDB'10210413104LeiYunLong$'
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
CALL