- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《微机原理与接口技术》课程设计说明书-钟表显示汇编语言程序设计
钟表显示汇编语言程序设计
1 设计目的与要求
1.1设计目的:
(1)理解掌各个中断的使用方法,通过对一些较大程序的编写,加深对汇编语言的认识,尤其是对中断的理解。
(2)掌握一定的汇编语言知识,培养自己的动手操作能力,同时培养学生应用计算机解决实际问题的能力。
(3)学习程序设计的基本思路和方法。
1.2 设计要求:
设计汇编语言程序,实现系统时间显示功能,具体功能要求如下:
(1)设计一个界面显示系统方框。
(2)单击“T”键显示本机系统的时间。
(3)单击“ESC"键退出程序。
1.3 程序内容
第一部分:定义显示界面。
第二部分:调用系统时间,并将调用的用二进制表示的时间数转换成ASCII码,并
将时间数存入内存区。
第三部分:将存在系统内存区的时间数用显示字符串的形式显示出来。
第四部分:获取键盘的按键值,以ESC键退出系统返回DOS。
2 总体方案论证
这次的任务,一共设计了两种方案。
方案一主要是调用2CH号DOS中断读系统时间,把各相关寄存器中的内容转换为十进制ASCII码输出,分别将小时数、分钟数、秒数存入显示缓冲区,调用DOS字符串显示功能将时间显示出来,然后定位光标的开始位置,结合着将时间显示在我们预先定义好的位置上。
方案二同样调用2CH号DOS中断读系统时间,只是方案二简单点,没有把小时数、分钟数、秒数分开,直接将系统当下的时间存入了显示缓冲区,调用DOS字符串显示功能将时间显示出来,然后定位光标的开始位置,结合着将时间显示在我们预先定义好的位置上。
经过对比,我觉得方案一好点们虽然复杂一些,但是大体的思路很清楚。
总体思路就是调用2CH号DOS中断读系统时间,把各相关寄存器中的内容转换为十进制ASCII码输出,分别将小时数、分钟数、秒数存入显示缓冲区,调用DOS字符串显示功能将时间显示出来,然后定位光标的开始位置,结合着将时间显示在我们预先定义好的位置上。由于获取了的系统时间不会自动刷新,所以我们要设计成循环的方式来不断获取系统的时间,这样就形成了会跳动的电子钟了。程序一旦进入运行,就会显示一个精美的方框,显示按键提示,按T就将不间断地在显示屏显示时间,要想程序停止运行,可同时在键盘按下ESC键退出。在本程序中,时钟的精确度为秒。其中DOS调用功能中,编号为2CH的功能是取时间,出口参数:CX:DX=时间。程序中会有四个子程序:
子程序BIN100UT 功能:把二进制数转换为十进制ASCII码输出;
子程序STDOUT 功能:标准输出一个字符;
子程序CLRSCR 功能:清屏;
子程序SETCURS 功能:设置光标位置。
2.1 子程序BIN10OUT
子程序BIN100UT的功能就是把二进制数转换为十进制ASCII码输出。
基本原理:首先要完成二进制到十进制数的转换,一般采用“除10取余”法来完成,其大致过程如下:将待转换的数(在X中)除以10,得到第一个商和余数,此第一个余数就是所求的十进制数的个位;再用第一个商除以10,得到第二个商和余数,此第二个余数就是所求十进制数的十位;……;重复这一过程直至商为0,此时的余数就是所求十进制数的最高位在内存中分配一缓冲区,用来存放以上分离出来的十进制数的每一位,然后再逐个转换成ASCII码,转换成ASCII码的过程很简单,就是给每个十进制位加上30H即可;最后送显示器输出。从转换的过程可以看出,先分离出来的是十进制数的低位,要后显示;后分离出来的是十进制数的高位,应该先显示。因此在编程时,我们可以利用堆栈操作中“先进后出、后进先出”的特性,当分离出各十进制位时依次入栈,要逐个转换成ASCII码送显示时依次出栈。
图2-1 子程序BIN100UT流程图
2.2子程序STDOUT
子程序STDOUT的功能是显示输出。
在编写这一段程序时,我用到了INT 21 02H号中断,INT 21的功能是系统功能调用,入口参数:AH=调用号。编号02H的功能就是显示输出,入口参数:DL=输出字符。一旦了解了这一功能,显示输出子程序便可解决,程序如下所示。
程序:STDOUT PROC
PUSH DX
MOV DL,AL
您可能关注的文档
- XX移动终端安全管理技术方案.doc
- XX移动计费系统营业终端管理项目技术方案.doc
- XX石化公司电石厂高压开关柜和控制系统隐患治理项目施工方案.doc
- XX装饰工程公司网络系统规划设计方案书.doc
- YBC--750G电机定子冲片分割模具设计.doc
- YBC-500G电机定子冲片分割模具的设计.doc
- xx高速xx连接线xx段扩建工程施工组织设计.doc
- YJ355型液力变矩器总成的设计.doc
- YOTC-1150B型调速型液力偶合器作业指导书(图表详细).doc
- YDVS机车运用安全监视系统客户端软件使用说明书.doc
- 洋葱销售SOP流程及关键动作相关知识测试试卷.docx
- 深度解析《GBT 43841-2024内蒙古绒山羊》.pptx
- 电气设备运维及机械部件相关知识测试试卷.docx
- 深度解析《GBT 43843-2024网络协同制造平台数据服务要求》.pptx
- 思维倾向与开放性自我评估试卷.docx
- 危险化学品企业特殊作业安全相关知识考试试卷.docx
- 深度解析《GBT 43844-2024IPv6地址分配和编码规则 接口标识符》.pptx
- 智慧教学整体解决方案(1).doc
- 多重耐药菌感染防治知识及预防措施试卷.docx
- 深度解析《GBT 43845-2024基于扫描氮-空位探针的微弱静磁场成像测量方法》.pptx
文档评论(0)