汇编汇编语言课程设计-电子时钟_第1页
汇编汇编语言课程设计-电子时钟_第2页
汇编汇编语言课程设计-电子时钟_第3页
汇编汇编语言课程设计-电子时钟_第4页
汇编汇编语言课程设计-电子时钟_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计任务书设计题目:电子时钟[2]软件环境:操作系统:Windows8运行环境:masm.Exe[3]设计任务:时:分:秒12/24“CURRENTTIMEIS:”点报时功能。签字:年月日No.1电子时钟用地址符号或标号代替地址码。这样用符号代替机器语言的二进制代码,就把机器语言变成了汇编语言。汇编语言能够最大限度的发挥硬件的性能。本次课程设计我做的是计算机时钟模拟显示程序的设计,要求有显示位置:时:分:秒12/24时制可调;在显示屏上显示提示语“CURRENTTIMEIS:”功能。使得程序更加完善。(1模拟显示时钟。(2编语言的WINDOWS应用程序设计,程序运行成功后,页面出现数字式的时钟。具体过程如下首先界面中间出现“TIMESYSTEM提示输入12/24时制。输入以后会出现“CURRENTTIMEIS:”提示输入初值时间其格式为:时(:用到的时钟的基本功能一样,用起来非常方便、快捷。调用DOS操作系统模块112/24DOS操作系统模块1输入12/24时制的第二位即低位。然后将输入的两个ASCII码值转换为压缩BCD码存入定义的变量X中,用于与12H比较并跳转到相应进制显示的程序中。先调用设置光标子程序和清除屏幕子程序,调用DOS操作系统模块9,在显No.2示屏上显示提示符“CURRENTTIMEIS:”DOS操作系统模块10时(。TRAN1和MUL10子程序,将存放在存储器缓冲区的ASCII字符转换成压缩BCD码,并将时、分、秒的值放置在寄存器CH、、DL中。调用TIME延时1SDL中,并进行十进制调整。在累加的过程中,不断地对时、分、秒进行比较,秒不能等于60,分不能等于60,时不能等于12或24.秒等于限值时,则使秒值为0并且分值加1;时等于限值时,先置零然后就转显示屏输出。4.时间显示调用DOS操作系统模块9,可用来显示存储器内字符串。由于显示的字符串必须为ASCII编码,因为要调用TRAN2转换子程序将寄存器CH、、DL内压缩BCD码字符串转换成ASCII“$”分、秒的顺序送存储器缓冲区内。调用DOS操作系统模块9DS:DX)应指向字符串首址。可同时在键盘按下Ctrl和Break二键。当分达到30时,转到报时程序;当分到0时,转到报时程序;其余的情况都不用跳到报时程序而是正常执行输出。根据以上程序流程相应的说明,在程序编写前,我们应先画出程序流程图本No.3数数时N?YN??YYN图1No.42.4.112/24时制程序设计很明显要想实现此功能必须使用分支结构程序,调用DOS操作系统模块1,输入12/24时制的第一位即高位,再调用DOS操作系统模块1输入12/24时制的第二位即低位。然后将输入的两个ASCII码值转换为压缩BCD码存入定义的变量X中,用于与12H比较并跳转到相应进制显示的程序中。其程序片段如下:MOVAH,1INT21H;DOS功能模块,从键盘输入字符MOVBL,AL;将输入的数据12,24转换为压缩BCD码存放在变量S;输入最后一个回车字符;24进制则跳转到AGAIN1执行24进制显示的程序2.4.2时钟起始时间的设置先调用设置光标子程序和清除屏幕子程序,调用DOS操作系统模块9,在显No.5示屏上显示提示符“CURRENTTIMEIS:”DOS操作系统模块10时(。TRAN1和MUL10子程序,将存放在存储器缓冲区的ASCII字符转换成压缩BCD码,并将时、分、秒的值放置在寄存器CH、、DL中。其程序片段如下:;DOS功能模块,显示字符串,提示从键盘输入;DOS功能模块,从键盘输入字符串到缓冲区MOVDX,OFFSETBUFFERMOVAH,10INCBXINCBXCALLTRAN1INCBXINCBXCALLTRAN1MOVBX,OFFSETBUFFER+2;原输入缓冲区的BCD数转换压;时-CH,分,秒-DL调用TIME延时1S累加到存放秒值的寄存器DL中,并进行十进制调整。在累加的过程中,不断地对时、分、秒进行比较,秒不能等于60,分不能等于60,时不能等于12或24.秒等于限值时,则使秒值为0并且分值加1;时等于限值时,先置零然后就转显示屏输出。其程序片段如下:No.6TIMEPROCPUSHCXPUSHAXMOVAX,25000;嵌套循环AX为外循环,CX为内循环RETTIMEENDP2.4.4时间显示程序设计调用DOS操作系统模块9,可用来显示存储器内字符串。由于显示的字符串必须为ASCII编码,因为要调用TRAN2转换子程序将寄存器CH、、DL内压缩BCD码字符串转换成ASCII“$”分、秒的顺序送存储器缓冲区内。调用DOS操作系统模块9DS:DX)应指DISPLAY:MOVBX,OFFSETBUFFERINCBXINCBXMOVAL,CHBCD数转化为ASCII码在存储器中进行修MOVAL,':'MOV[BX],ALNo.7;到了30分钟不跳转,其余都跳到NEXT2当分达到30时,转到报时程序;当分到0时,转到报时程序;其余的情况都不用跳到报时程序而是正常执行输出。报时时会在时间后面接着显示“*”并发出嘀的一声。其半点、整点报时程序片段如下:INCBX;在输入缓冲区后面增加字符“*用于显示;在输入缓冲区后面加入07H=bel,报时2.5开发环境No.8DOS系统主硬盘:希捷ST500LM012HN-M500MBB(500GB/5400转/分)显示器:戴尔Inspiron(15.6英寸)Masm面,使开发人员不必再使用DOS环境进行汇编的开发的优点,支持伪指令和宏汇编,最后编译生成obj文件,通过link工具连接成可执行文件exe。c使用连接软件LINK.EXE对目标文件进行连接。d使用调试软件对可执行程序进行调试。(1)编写源程序,并命名为dianzizhong.asm,并保存于默认文件夹中。(2)打开文件dianzizhong.asm,编译使之生成目标文件,检查源程序中的错误改正,直到编译无错误出现为止。(3)点击菜单栏中运行里的连接,再点击运行,输入相应的字符就会显示相应的结果。(4“TIMESYSTEM用户输入12或者24即可实现12或24进制的转换。(5)屏幕上显示“CURRENTTIMEIS:”提示语,用户输入当前时间其输入格式为时(XX(6)屏幕上显示从我们设定的时间开始计时。图212/24进制选择界面No.10图4输入24进制的界面No.11图5提示输入时间的界面(4)当输入了时间后的显示结果如图6所示。图6完成输入时间的界面图9整点报时3.3所遇到的问题与解决;嵌套循环AX为外循环,CX为内循POPCXNo.14RETTIMEENDP2、开始光标不在屏幕中央,原因是IOSET子程序中的光标设计的位置不对,重新改变DX后,光标到达屏幕中央。IOSET子程序如下:PUSHBXPUSHDXMOVDX,0C20HMOVBH,00MOVAH,02INT10H;DH=光标所在行号,DL=光标所在列号;光标所在页号RET3、检查错误过程中,系统提示“outofmemory”12现场恢复语句。4DOS字符输入功能的调用因此只能输入两个字符,而当输入第二个字符以后提示语立即不见,根本看不到。因此为了在输入进制的两个字符以后,添加一个回车以完成输入则必须设置三次DOS字符输入功能调用。其程序如下:;第一次调用MOVBL,AL;将输入的数据12,24转换为压缩BCD码存放在变量S中No.15;第二次调用;输入最后一个回车字符;第三次调用5.在输入了进制信息以后并没有调用函数IOCLR因此在显示窗口中显示CALLCALLIOSET的调用程序。对屏幕进行清屏,并且设置光标位置。程序片段如下:;输入最后一个回车字符;DOS功能模块,显示字符串,提示从键盘输入“TIMESYSTEMIS:”中输入进制为12或则24,会实现12/24进制的转换。在第二提示窗口“CURRENTTIMEIS:”中输入初始时间能正确的设置初试时间。并且我们在窗口中显示了“CURRENTTIME,满足任务的要求。No.16在半点以及整点的时候在时间末尾处显示的提示符号,并且发出报警声。实现了半点,整点报时的功能。总的来说,此程序基本上完成了设计要求。经过以上步骤,课程设计所要求设计的电子钟显示设计软件便成功完成了,它能显示数字式的时钟,并且能设置初值和时钟进制。整个页面简洁清晰,方便用户读取,且操作简捷,符合课程设计中的各项要求。通过这次课程设计,我们对日常生活中司空见惯的时钟的工作原理有了一个比较深入的了解,将书本中的知识更好地与实际生活中的应用结合在了一起。了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。而且我第一次感受到在写一个程序的时候,一定要事先把程序原理方框图画出来的重要性。在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。本次课程设计的过程中遇到了很多问题,比如时间走得太快、光标的位置无法定位等等。对每个问题的解决都是一种对知识的重新整理和考察。我更加感到愉悦的,此次的课程设计锻炼了我的编程能力。到此为止,我们接近一周的课程设计也告一段落。通过这次课程设计,使我认识到理论与实际相结合的重要性,对课本上的只是在实际生活中的运用也有了进一步的了解,同时基本上能够掌握汇编语言编程中编程的步骤,可以说是从中受益匪浅。提供了这么好的学习机会,感谢老师的指导,从老师的身上学到了对知识真正严谨细致的态度,让我受益匪浅。No.17[1]杨文显,宓双,胡建人.新编汇编语言程序设计[M],北京:清华大学出版社,2010:20-58[2]汇编语言程序设计[M]200367-89[3]沈美明等.IBM-PC汇编语言及程序设计实验教程[M],北京:清华大学出版社,2001:45-67[4]钱晓捷等.汇编语言程序设计[M],北京:电子工业出版社,2000:1-24[5]李珍香等.汇编语言程序设计案例精编[M],北京:中国水利水电出版社,2004:5-16No.18SCALLIOSETMOVDX,OFFSETTS;DOS功能模块,显示字符串’TIMESYSTEMIS:’;DOS功能模块,从键盘输入字符MOVBL,AL;将输入的数据12,24转换为压缩BCD码存放在变量S中ANDBL,0FHSHLBL,1SHLBL,1SHLBL,1SHLBL,1MOVAH,1INT21HMOVCL,ALANDCL,0FHORCL,BLMOVS,CLMOVAH,1INT21H;输入最后一个回车字符No.19MOVDX,OFFSETCT;DOS功能模块,显示字符串,提示从键盘输入MOVAH,9INT21HMOVDX,OFFSETBUFFER;DOS功能模块,从键盘输入字符串到缓冲区MOVBX,OFFSETBUFFER+2;原输入缓冲区的BCD数转换压;数的同时将输入缓冲区的数据传;CH,,DLMOVAL,[BX]INCBXINCBX;24进制跳转到AGAIN1DAAMOVDL,ALCMPAL,60HJNEDISPLAYMOVDL,0MOVAL,DHADDAL,1No.20DAAINCBXCALLIOCLRCALLIOSETMOVAL,CH;将小时的压缩BCD数转化为;ASCII码在存储器中进行修改MOVAL,':'MOV[BX],ALNo.21;到了30分钟不跳转,其余都跳到;秒为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论