课程设计报告汇编语言.docx
- 文档编号:6212166
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:13
- 大小:152.78KB
课程设计报告汇编语言.docx
《课程设计报告汇编语言.docx》由会员分享,可在线阅读,更多相关《课程设计报告汇编语言.docx(13页珍藏版)》请在冰豆网上搜索。
课程设计报告汇编语言
课程设计报告--汇编语言
课程设计报告
(本科)
课程:
汇编语言
学号:
12104610301210461016
姓名:
豆建华钱爱萍
班级:
12级计算机科学与技术系
(2)班
教师:
吴昊
时间:
2013.6.1~2013.6.27
计算机科学与技术系
设计名称:
系统时间程序设计
设计内容、目的与要求:
设计内容:
编写系统时间程序设计
实验目的:
是在显示系统下显示的当前日期和时间。
实验要求:
按照界面提示信息显示。
例如:
可设计界面提示信从键盘输入“D”可显示系统的日期。
利用DOS系统调用的2AH和2CH功能调用。
读取系统的日期和时间。
将日期和时间值转换为相应的ASCII码字符,显示在屏幕上。
双击可执行程序.exe文件,在出现的提示信息中输入大写字“D”,可显示系统当前日期;输入大写字母“T”,可显示系统当前时间;输入大写字母“Q”,可结束程序。
计划与进度安排:
6月1日-6月15日:
进行构思与查阅资料。
与本实验的合作者讨论此次试验学习到了哪些知识点,同时对这些知识点进行全面系统的复习。
6月16日-6月20日:
开始编写程序分析程序,进行程序设计并进行调试与运行对所编写的程序进行修改使之达到最好.完成对基本功能的修改并运行无误;增加对开始的源程序的功能
6月21日-6月27日:
完成汇编语言课程设计实验报告。
设计过程、步骤(可加页):
程序设计分析:
●在DOS环境下完成,先利用BIOS功能调用中显示器驱动程序的00H类型调用,设置显示器的显示模式为80*25彩色。
●在屏幕中央显示提示信息(提示用户输入“D”或“T”或“Q”)。
●然后对用户输入的字母进行判断,利用分支程序分别调用不同的子程序。
两个子程序的功能分别是显示当前日期(用2AH的DOS功能调用来取日期),显示当前时间(用2CH的DOS功能调用来取时间)。
必须用到的DOS功能调用:
取当前系统日期:
功能号为2AH,返回值送入CX,DX寄存器中。
取当前系统时间:
功能号为2CH,返回值送入CX,DX寄存器中。
主程序流程图
图1实验主流程图
结果与分析(可以加页):
1.程序运行界面
(1)提示界面
进入提示界面“WELCOMETOTIMEMASTER”根据提示请输入“D”或“T”或“Q”。
图2提示界面图
(2)显示日期
输入“D”显示当前日期
图3显示日期图
(3)显示时间
输入“T”显示当前时间
图4显示时间图
(4)退出程序
输入“Q”退出程序
图5退出程序图
说明:
以上截图为此次实验运行出来时的主要截图,其中图1为本实验的主流程图,分为三个部分,分别是日期的显示,时间的显示以及程序的退出。
图2是在屏幕中央显示提示信息(提示用户输入“D”或“T”或“Q”)。
图3是取当前系统日期:
功能号为2AH,返回值送入CX,DX寄存器中。
图4是取当前系统时间:
功能号为2CH,返回值送入CX,DX寄存器中。
设计体会与建议:
通过对这一系统时间程序的制作,让我们掌握在语言中使用计算机简单的图形显示程序显示系统日期和时间的方法,以便在以后的其他各种程序中能够更加熟练的运用这种方法来显示计算机系统的日期和时间。
同时也让我对汇编语言的基本知识的使用更加熟练,同时也增加了我对汇编语言的一些认识,在作业完成过程中通过和同学的交流,也增加了合作的技巧。
通过查阅资料也学到了一些课本上没有的东西,拓宽了自己的知识面,增加了学好汇编语言的信心。
这不是第一次用汇编语言来设计一个小程序,平时做了很多实验,写了很多小程序。
但这次是一个综合的程序,平时的很多程序都用到了,例如在程序中用到了不少的子程序,宏,这些子程序的设计是固定的,因此可以直接从指导资料中调用,大多只需要修改几个参数就可以,这大大方便了我们的设计,为我们节省了很多的时间。
在这次课程设计中,我真正体会到了合作的重要性,遇到很多问题时,当我看书查资料不能解决时,这是去找同学讨论一下,收获很大,可以使很多问题迎刃而解,直到问题最终解决。
从资料中,我们可以看出这个时钟程序的基本流程,修改一些程序就可以实现这个程序的基本功能,添加一些程序就可以实现这个时钟的附加功能。
不可否认,本程序存在不少缺点和不足,但通过这次作业的却找出了自己在学习上的不足,对以后的工作也有指导作用。
我相信在以后的学习中会克服这些不足,达到熟练掌握汇编语言的目的!
豆建华
根据设计要求,这个程序基本实现所要求的功能。
但由于短暂的设计时间和过于零散的汇编知识暴露出许多不足之处,如我们显示的时间是静态的,不能动态显示连续的时间,界面太过单调。
但是程序也有他相对的特点如冗余低,能判断是否输入错误,和对应的时间和日期的大小写输入。
做这个程序的过程中,我加深了对某些指令的理解,如push,pop,jmp指令。
本次实验,我觉得最大的收获便是慢慢学会了集体思考问题及解决问题,并
且最终合作力量通过程序代码来实现,我感觉这是对自我的一种突破。
乍一看到这个题目,感觉挺简单啊,不就是用一个字符和规定的三个字符相比较,分别调用子程序么?
可是真正在编写程序的过程中,才发现想的容易,写起来却是另一会事,正如杜甫所说的“书到用时方恨少,事非经过不知难。
”其实对于这种情况,我们极容易犯眼高手低的毛病,这就导致我们失去了多次自己动手操作实践的机会,一味的只是看老师演示演示再演示。
通过这次试验,我知道了在以后的学习过程中,一定要自己去实践,在实践中能得到更加深刻的认识和体会,对知识能够更好更深刻的掌握。
钱爱萍
附录源代码:
STACKSEGMENTSTACK
DW200DUP(?
)
STACKENDS
DATASEGMENT
SPACEDB1000DUP('')
STR1DB40DUP(''),9DUP(''),'WELCOMETOTIMEMASTER!
',52DUP('')
DUICHUDB240DUP(''),9DUP(''),'THANKYOUVERYMUCH!
',412DUP('')
PATTERNDB6DUP(''),0C9H,26DUP(0CDH),0BBH,6DUP('')
DB6DUP(''),0BAH,26DUP(20H),0BAH,6DUP('')
DB6DUP(''),0C8H,26DUP(0CDH),0BCH,6DUP('')
DBUFFERDB8DUP(':
'),12DUP('')
DBUFFER1DB20DUP('')
STRDB0DH,0AH,'PLEASEINPUTDATE(D)ORTIME(T)ORQUIT(Q):
$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA,SS:
STACK
START:
MOVAX,0001H
INT10H;设置显示方式为40*25彩色文本方式
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVBP,OFFSETSPACE
MOVDX,0B00H;0B00
MOVCX,1000
MOVBX,0020H
MOVAX,1300H
INT10H
MOVBP,OFFSETSTR1;显示'WELCOMETOTIMEMASTER!
'
MOVDX,0600H
MOVCX,120
MOVBX,000EH
MOVAX,1301H
INT10H
MOVBP,OFFSETPATTERN;显示矩形条
MOVDX,0B00H
MOVCX,120
MOVBX,004EH
MOVAX,1301H
INT10H
LEADX,STR;显示提示信息
MOVAH,9
INT21H
MOVAH,1;从键盘输入单个字符
INT21H
CMPAL,44H;AL='D'?
JNEA
CALLDATE;显示系统日期
A:
CMPAL,54H;AL='T'?
JNEB
CALLTIME;显示系统时间
B:
CMPAL,51H;AL='Q'?
JNESTART
MOVBP,OFFSETDUICHU;显示'THANKYOUVERYMUCH!
'
MOVDX,0600H
MOVCX,520
MOVBX,004EH
MOVAX,1301H
INT10H
MOVAX,4C00H;返回dos状态
INT21H
DATEPROCNEAR;显示日期子程序
DISPLAY:
MOVAH,2AH;取日期
INT21H
MOVSI,0
MOVAX,CX
MOVBX,100
DIVBL
MOVBL,AH;AH=12AL=20
CALLBCDASC1;日期数值转换成相应的ASCII码字符
MOVAL,BL
CALLBCDASC1
INCSI
MOVAL,DH
CALLBCDASC1
INCSI
MOVAL,DL
CALLBCDASC1
MOVBP,OFFSETDBUFFER1
MOVDX,0C0DH
MOVCX,20
MOVBX,004EH
MOVAX,1301H
INT10H
MOVAH,02H;设置光标位置
MOVDX,0300H
MOVBH,0
INT10H
MOVBX,0018H
REPEA:
MOVCX,0FFFFH;延时
REPEAT:
LOOPREPEAT
DECBX
JNZREPEA
MOVAH,01H;读键盘缓冲区字符到AL寄存器
INT16H
JEDISPLAY
JMPSTART
MOVAX,4C00H
INT21H
RET
DATEENDP
TIMEPROCNEAR;显示时间子程序
DISPLAY1:
MOVSI,0
MOVBX,100
DIVBL
MOVAH,2CH;取时间
INT21H
MOVAL,CH
CALLBCDASC;将时间数值转换成ASCII码字符
INCSI
MOVAL,CL
CALLBCDASC
INCSI
MOVAL,DH
CALLBCDASC
MOVBP,OFFSETDBUFFER
MOVDX,0C0DH
MOVCX,20
MOVBX,004EH
MOVAX,1301H
INT10H
MOVAH,02H
MOVDX,0300H
MOVBH,0
INT10H
MOVBX,0018H
RE:
MOVCX,0FFFFH
REA:
LOOPREA
DECBX
JNZRE
MOVAH,01H
INT16H
JEDISPLAY1
JMPSTART
MOVAX,4C00H
INT21H
RET
TIMEENDP
BCDASCPROCNEAR;时间数值转换成ASCII码字符子程序
PUSHBX
CBW
MOVBL,10
DIVBL
ADDAL,'0'
MOVDBUFFER[SI],AL
INCSI
ADDAH,'0'
MOVDBUFFER[SI],AH
INCSI
POPBX
RET
BCDASCENDP
BCDASC1PROCNEAR;日期数值转换成ASCII码字符子程序
PUSHBX
CBW
MOVBL,10
DIVBL
ADDAL,'0'
MOVDBUFFER1[SI],AL
INCSI
ADDAH,'0'
MOVDBUFFER1[SI],AH
INCSI
POPBX
RET
BCDASC1ENDP
CODEENDS
ENDSTART
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告 汇编语言
![提示](https://static.bdocx.com/images/bang_tan.gif)