课设计(论)任务书软件学院学院软件工程专业9班
一、课设计(论)题
二、课设计(论)工作自2006年1月2日至2007年1月8日.
三、课设计(论)地点:4栋课设计(论)内
1.本课程设计的目的
1)使学生增进对汇编语言的认识,加强用汇编语言编程的能力.
2)使学生掌握汇编语言的中断调用功能的应用,可以用汇编语言调用各
种中断调用功能,并由此实现对硬件的控制等.
3)使学生了解和掌握汇编程序设计过程,方法及实现,为以后微机
原理课程的学习打下良好基础.
2.课程设计的任务及要求
题目一:设拟进行的设置(第一次),修改已设置的,输入的不显示,
的查看与校验,有良好的操作接口与提示.
题目二:计算器
要求:从键盘输入数据与运算符,可以进行加,减,乘,除四则运算,
计算结果以十进制数显示,有良好的操作接口与提示.
题目三:吃豆子程序
要求:在屏幕上显示多行"豆子"(字符".")和一个"嘴巴"(字符"C"),
单击空格或者方向键开始吃豆子(可逐行进行,也可用键盘控制),
有良好的操作接口与提示.
题目四:星期判断输入1900年1月1日~2100年12月31日之间任何一天的日期,
判断该天的星期数并进行输出,有良好的操作接口与提示.
题目五:KMP模式匹配算法
要求:定义定长的源串,从键盘输入进行匹配的模式串,
按照KMP算法的思想进行匹配并输出匹配结果,
输出每一步匹配的字符位置,有良好的操作接口与提示.
3)课程设计论文编写要求
1)详细清晰地描述个人的课程设计工作,
2)要按照本模板的规格打印誊写毕业论文,
3)论文包括目录,内课设计会4)毕业论文装订按学校的统一要求完成
4)评分标准:
1)完成原理分析:20分,
2)完成设计过程:40分,
3)完成代码分析:20分.
4)个人创新工作:20分.
学生签名:
年月日
课设计(论)评审意见
(1)原理分析(20分):优(),良(),中(),一般(),差(),
(2)设计分析(20分):优(),良(),中(),一般(),差(),
(3)程序流程(20分):优(),良(),中(),一般(),差(),
(4)代码分析(20分):优(),良(),中(),一般(),差(),
(5)个人创新(20分):优(),良(),中(),一般(),差(),
(6)格式规范性及考勤是否降等级:是(),否()
目录
题目分析等等等等等等等等等5个人工作等等等等等等等等等5流程图等等等等等等等等等等6四、源程序等等等等等等等等等等7
五、程序运行结果.等等等等等等等等等等等10.
六、课程设计体会等等等等等等等等等等等等12
一题目分析
我选择的是吃豆子程序.因为这个题目我觉得是我能力范围内的.解决起来想对要简单许多,但这并不代表着可以很轻松的完成课程设计.它仍需要自学许多课堂上没有涉及到内容.
对于这个题目我的解决方法是:首先定义一个字符串,内容为字符"C"的ASCII直还有其他一些想关信息.然后把屏幕部满豆子.把"C"没望前走一格就把该位子上的豆子变为空格键,这样就能把一颗豆子吃掉了,只要已此循环下去.就可以把全部吃掉.
二个人工作
学习一门语言,单单闭门造车是不行的,学习他人好的编程方法和编程习惯也是提高自己的很好方法.所以我在图书馆借了《汇编语言学习指导》来参考.并且常和同学门交流.汇编语言我掌握的少的可怜,所以,多多的尝试与实践才是硬道理.例外,注重美观和操作提示也是很总要的.但是,发现自己的知识远不够,程序中也好有好多不足的地方,但是凭借自己现在的水平还是不能解决问题.所以,只有交流和自学才是提高自己的唯一放法.
三流程图
四程序源代码
DATASEGMENT
INFO1DB0DH,0AH,'********************************$'
INFO2DB0DH,0AH,'*WELCOME*$'
INFO3DB0DH,0AH,'*pressanykeytostar*$'
INFO4DB0DH,0AH,'********************************$'
,界面和提示信息
STR1DB43H,7,0,0,c的字符
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
start:movax,data
movds,ax
leadx,info1,在显示器上显示提示信息
movah,9
int21h
leadx,info2,在显示器上显示提示信息
movah,9
int21h
leadx,info3,在显示器上显示提示信息
movah,9
int21h
leadx,info4,在显示器上显示提示信息
movah,9
int21h
movah,0,从键盘读取字符到AL寄存器
int16h
CALLdouzi
douziproc,豆子子程序
PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVAH,0
MOVAL,2
INT10H
MOVAH,0FH,读当前显示状态INT10H
MOVDH,10
MOVDL,0
BEGIN:MOVAH,9
MOVAL,0FAH
MOVBL,7
MOVCX,1222
INT10H
MOVSI,3
MOVCX,1
LEADI,STR1,DI指向STR字符表的首字母
DISP:CMPDL,80
JAEexit1
MOVAH,2,设置光标位置
INT10H
MOVAH,9,显示STR字符图形
MOVAL,[DI]
MOVBL,[DI+1]
INT10H
CALLDLY,延时
MOVAH,9
MOVAL,'',将空格存入字符串
MOVBL,04
INT10H
INCDL
ADDDI,2
DECSI
JNZDISP
JMPBEGIN
exit1:RET
douziendp
DLYPROCNEAR,延时子程序
PUSHCX
PUSHDX
MOVDX,10000
DL1:MOVCX,6801
DL2:LOOPDL2
DECDX
JNZDL1
POPDX
POPCX
RET
DLYENDP
CODEENDS结束
ENDstart
五程序运行结果
首先在文件夹中建立A文件,如VVNC.A.
编译:
链接:
编译,链接无误后系统将在文件夹内建立OBJ和EXE文件:
执行:
按任意键后:
执行一段时间后:
六程序设计体会
经过这次课程设计,我发现现在学习的知识远远不够,经过自学以及向同学们学习好的编程思想和习惯才得以完成这次课程设计.例外,我懂得了,编写一个好的程序并不是注重怎样写代码,而是要注重编程思想,还有就是团队合作精神,个人的力量毕竟是有限的.这点在将来的工作中尤其重要.一个好的程序它的提示与界面也应该要是完美的,所以我在程序中加入了一些操作截面还有提示信息.总之,多多实践,多多交流才是提升自己能力的最好办法.
华东交通大学05级软件工程9班
-5-
开始
输出界面和提示信息
输入任意字符到AL
输出字符串str
字符串str首地址—>,DI
调用延时程序
CX,DX入栈保护现场
程序结束
输出修改的字符串T
DI等于空
C—>,STR[DI]
DI+1—>,DI
空格—>,STR[DI]
DI+1—>,DI
CX,DX出栈恢复现场