汇编语言实时时钟程序设计模板.docx
- 文档编号:23674567
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:16
- 大小:74.40KB
汇编语言实时时钟程序设计模板.docx
《汇编语言实时时钟程序设计模板.docx》由会员分享,可在线阅读,更多相关《汇编语言实时时钟程序设计模板.docx(16页珍藏版)》请在冰豆网上搜索。
汇编语言实时时钟程序设计模板
课程设计说明书
姓名:
学号:
院系:
专业:
题目:
实时时钟程序设计
指导教师:
职称:
课程设计说明书
院系:
专业:
姓名:
学号:
课程设计题目:
实时时钟程序设计
起迄日期:
课程设计地点:
指导教师:
系主任:
课程设计任务书
1.设计目的:
1)培养学生文献检索的能力,特别是如何利用Internet检索需要的文献资料。
2)培养学生综合分析问题、发现问题和解决问题的能力。
3)培养学生运用知识的能力和工程设计的能力。
4)提高学生课程设计报告撰写水平。
2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等):
设计内容:
设计一个根据所学汇编语言课程的知识,熟练8086汇编语言的编程原理,和程序设计思想,编写一个实时时钟程序进一步提高综合运用知识的能力。
设计要求:
每隔一秒显示系统时钟;可以重复输入,有退出键功能。
3.设计工作任务及工作量的要求〔包括课程设计说明书、图纸、实物样品等〕:
设计工作任务及工作量的要求:
1)根据课程设计题目,收集和学习相关知识,确定编程方案;
2)用相关软件编写程序代码,实现基本要求;
3)撰写课程设计报告——可利用Visio或Word等软件画出相关的程序流程图,列出相应的程序源代码,说明设计过程中遇到的问题和解决问题的方法,附参考资料。
课程设计任务书
4.主要参考文献:
[1]沈美明,温冬禅.IBMPC汇编语言程序设计.清华大学出版社,第二版
[2]刘丽莉.汇编语言程序设计.北京大学出版社,2010
5.设计成果形式及要求:
1)撰写课程设计报告;
2)程序流程图1份(可手画);
3)程序清单1份。
6.工作计划及进度:
系主任审查意见:
签字:
2012年6月17日
第一章课题设计目得内容及要求
1.1目得
1)培养学生文献检索的能力,特别是如何利用Internet检索需要的文献资料。
2)培养学生综合分析问题、发现问题和解决问题的能力。
3)培养学生运用知识的能力和工程设计的能力。
4)提高学生课程设计报告撰写水平。
1.2内容
设计一个根据所学汇编语言课程的知识,熟练8086汇编语言的编程原理,和程序设计思想,编写一个实时时钟程序进一步提高综合运用知识的能力。
1.3要求
每隔一秒显示系统时钟;可以重复输入,有退出键功能。
第二章程序流程图设计
2.1主流程图设计
由方案设计分析可知,此次设计比较简单,先初始化程序,然后设立光标,在光标移动时,不断地取时,取分,取秒,并不断的循环。
在循环的过程中,当按下ESC键时退出程序;当按下其它键时,程序继续运行,并显示时间界面,再按下ESC键时,程序又将退出。
流程图设计:
当初始化后,设定一个光标用来显示时间的时、分、秒,并将光标隐藏。
流程图有两个分支,表示有两个判断,当时分秒取完后,判断是否在键盘上有输入,如果没有输入,则返回到光标定位,若有输入判断是否为ESC键的ASC码,如果是则退出程序,程序结束,过程比较明了,流程图分支不多,但功能能够很好的实现。
流程图如1所示
开始
结束
输入为ESC吗?
显示秒钟
显示分钟
获取时间,显示时
初始化
设立光标
图1主程序设计流程图
2.2子流程图设计
可知,在时间的获取时,需要时、分、秒分别获取,显示时使用的是相应的ASCII码。
加上分隔符“:
”,共同组成完整时钟显示,我们对子程序做流程图,如图2所示。
秒的获取,将储存的数值转换成相应的ASCII码显示在屏幕上
分的获取,将分的数值转换成相应的ASCII码
时的显示,将储存的数值转换成相应的ASCII码,显示在光标位置上
系统时间调用:
movah,02int1ahCX,DX进出栈使用实现时分秒的显示
开始
结束
图2子程序流程图
第三章程序段落的说明
3.1光标的设立和隐藏
光标的不停移动,使时间能不停地显示时间的时分秒,并使其显示界面不消失,并随着系统时间的变化而同步变化,隐藏光标使界面看起来更美观。
程序如下:
movdh,0ah;行数
movdl,35;列数
movbh,0;页数
movah,2
int10h;确定光标的位置,使其居在中间
movcx,2000h
movah,01h
int10h;隐藏光标
3.2调用系统的时间
获取系统的时间,用程序将系统的时间调用,使显示的时间和系统的时间同步变化,其中时间的时分秒显示都是需要先转换成相应的ASCII码,再显示在屏幕上。
获取系统时间:
movah,02
int1ah;系统时间调用
pushcx
pushdx;现场保护
时的获取:
xordl,dl;dl清零
movdl,ch;cx高四位给dl
movcl,4
shrdl,cl;最终dl中为ch的高四位
adddl,30h;转换成ASCII码
movah,02h
int21h;光标处显示时的第一位
movdl,ch
adddl,0fh
adddl,30h;转换成ASCII码
movah,02
int21h;光标处显示时的第二位
movdl,":
"
movah,02
int21h;光标处显示“:
”
分的获取:
popdx
popcx;出栈,恢复现场
pushdx;置光标位置
xordl,dl
movdl,cl
movdh,cl
movcl,4
shrdl,cl
adddl,30h;转化成相应的ASCII码
movah,02
int21h;光标处显示分的第一位
movcl,dh
andcl,0fh
addcl,30h;转化成相应的ASCII码
movdl,cl
movah,02
int21h;光标处显示分的第二位
movdl,':
'
movah,02
int21h;光标处显示“:
”
秒的获取:
popdx;出栈,恢复现场
movbl,dh
movcl,4
shrdh,cl
adddh,30h;转化成相应的ASCII码
movdl,dh
movah,02
int21h;光标处显示秒的第一位
movcl,bl
andcl,0fh
addcl,30h;转化成相应的ASCII码
movdl,cl
movah,02
int21h;光标处显示秒的第二位
3.3判断是否有键盘输入
判断是否有输入,当有字符时判断是否为ESC,若是则退出程序,如果不是程序继续运行。
程序段:
a1:
movah,0bh;调用DOS功能0BH检测键盘是否有输入
int21h
cmpal,00h;检测是否有输入
jnea2;有则跳到a2
jmpgo;没有则回到go
a2:
movah,08h
int21h
cmpal,1bh;判断是否为ESC
jeexit;是则退出
jmpgo;不是则跳到go
exit:
movah,4ch
int21h;退出程序
第四章程序调试说明、结果记录与分析
4.1程序调试的过程
程序调试,是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。
这是保证计算机信息系统正确性的必不可少的步骤。
编完计算机程序,得调试所写程序是否正确,是否能满足所要求的功能。
写好程序后,对DOS系统界面调用功能指令不太熟悉,界面出来后时间显示在右上角,并且光标不能消失,最后经过查询,运用了10号中断,最后把光标隐藏了,并使时间显示在界面的中间位置。
在判断是否在键盘上有输入时,开始不会用键盘扫描功能,没有调试出来,经过向同学请教最后调用DOS功能0bh,并用08h来判断是否是ESC输入,最终实现了退出功能。
4.2调试结果
运行程序,时间显示界面,如图3所示:
图3进入后的运行界面
单击其他键时的显示界面,如图4所示,与图3相同。
单击ESC键时,界面消失,退出程序。
图4单击其它键时的显示界面
4.3分析结果
可知运行程序后,能达到设计要求,即进入后能显示时间在屏幕的中央位置,单击ESC外的键时,程序继续,时间继续显示,单击ESC时,退出程序,程序设计成功。
第五章总结与体会
参考文献
[1]沈美明,温冬禅.IBMPC汇编语言程序设计.清华大学出版社,第二版
[2]刘丽莉.汇编语言程序设计.北京大学出版社,2010
附录
1.程序流程图
主程序设计流程图
子程序流程图
2.程序清单
datassegment
datasends
stackssegment;此处输入堆栈段代码
stacksends
codessegment
assumecs:
codes,ds:
datas,ss:
stacks
start:
movax,datas
movds,ax
go:
movdh,0ah;行数
movdl,35;列数
movbh,0;页数
movah,2
int10h;确定光标的位置,使其居在中间
movcx,2000h
movah,01h
int10h;隐藏光标
xordl,dl;dl清零
movdl,ch;cx高四位给dl
movcl,4
shrdl,cl;最终dl中为ch的高四位
adddl,30h;转换成ASCII码
movah,02h
int21h;光标处显示时的第一位
movdl,ch
adddl,0fh
adddl,30h;转换成ASCII码
movah,02
int21h;光标处显示时的第二位
movdl,":
"
movah,02
int21h;光标处显示“:
”
popdx
popcx;出栈,恢复现场
pushdx;置光标位置
xordl,dl
movdl,cl
movdh,cl
movcl,4
shrdl,cl
adddl,30h;转化成相应的ASCII码
movah,02
int21h;光标处显示分的第一位
movcl,dh
andcl,0fh
addcl,30h;转化成相应的ASCII码
movdl,cl
movah,02
int21h;光标处显示分的第二位
movdl,':
'
movah,02
int21h;光标处显示“:
”
popdx;出栈,恢复现场
movbl,dh
movcl,4
shrdh,cl
adddh,30h;转化成相应的ASCII码
movdl,dh
movah,02
int21h;光标处显示秒的第一位
movcl,bl
andcl,0fh
addcl,30h;转化成相应的ASCII码
movdl,cl
movah,02
int21h;光标处显示秒的第二位
a1:
movah,0bh;调用dos功能0bh检测键盘是否有输入
int21h
cmpal,00h
jnea2;如果有输入,则跳转到a2
jmpgo;如果没有输入,则跳转到go
a2:
movah,08h
int21h;调用dos功能08h判断键盘输入的字母
cmpal,1bh;判断键盘输入是否为esc
jeexit;如果是则跳转到exit
jmpgo;重新跳回开头
exit:
movah,4ch;结束dos以及跳出语句
int21h
codesends
endstart
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 实时 时钟 程序设计 模板