汇编语言实时时钟程序设计.docx

上传人:b****1 文档编号:2414018 上传时间:2022-10-29 格式:DOCX 页数:14 大小:105.31KB
下载 相关 举报
汇编语言实时时钟程序设计.docx_第1页
第1页 / 共14页
汇编语言实时时钟程序设计.docx_第2页
第2页 / 共14页
汇编语言实时时钟程序设计.docx_第3页
第3页 / 共14页
汇编语言实时时钟程序设计.docx_第4页
第4页 / 共14页
汇编语言实时时钟程序设计.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

汇编语言实时时钟程序设计.docx

《汇编语言实时时钟程序设计.docx》由会员分享,可在线阅读,更多相关《汇编语言实时时钟程序设计.docx(14页珍藏版)》请在冰豆网上搜索。

汇编语言实时时钟程序设计.docx

汇编语言实时时钟程序设计

 

课程设计说明书

 

姓名:

学号:

院系:

专业:

题目:

实时时钟程序设计

 

指导教师:

职称:

 

 

课程设计说明书

 

院系:

专业:

姓名:

学号:

课程设计题目:

实时时钟程序设计

起迄日期:

课程设计地点:

指导教师:

系主任:

 

课程设计任务书

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所示

 

 

图1主程序设计流程图

2.2子流程图设计

可知,在时间的获取时,需要时、分、秒分别获取,显示时使用的是相应的ASCII码。

加上分隔符“:

”,共同组成完整时钟显示,我们对子程序做流程图,如图2所示。

 

图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:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1