东南大学信息学院微机时钟实验_第1页
东南大学信息学院微机时钟实验_第2页
东南大学信息学院微机时钟实验_第3页
东南大学信息学院微机时钟实验_第4页
东南大学信息学院微机时钟实验_第5页
全文预览已结束

下载本文档

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

文档简介

1、-. z.微机实验报告实验九实验名称:时钟实验院系:信息科学和工程学院*:实验时间:2016.5实验目的熟悉系统功能调用INT 21H的有关功能编写时钟程序实验任务1.执行时钟程序时,屏幕上显示提示符:,由键盘输入当前时、分、秒值,即*:*:*,随即显示时间并不停计时。实验代码DATA SEGMENT ;定义数据段NUM DB 9 ;输入时间的最大长度,包含回车 DB ;实际输入时间长度 DB 9 DUP() ;开辟的长度DATA ENDSSTACK1 SEGMENT STACK ;定义栈段DB 200 DUP(0)STACK1 ENDSCODE SEGMENT;定义代码段ASSUME CS:

2、CODE,DS:DATA,SS:STACK1START:MOV A*,DATAMOV DS,A*MOV DL,:MOV AH,2INT 21H ;显示冒号,说明输入开场 MOV D*,OFFSET NUMMOV AH,0AH ;将ASCII码转换为16进制数INT 21HMOV B*,OFFSET NUM+2CALL ERR1 ;检查输入时间是否正确,假设不正确,返回START AND AL,0FH MOV B*,ALINC B* CALL ERR1 ;检查输入时间是否正确,假设不正确,返回START AND AL,0FH MOV B*,AL INC B* CALL ERR2 ;检查时分之间是

3、否以:相隔,假设不是,返回STARTINC B* CALL ERR1 ;检查输入时间是否正确,假设不正确,返回START AND AL,0FHMOV B*,AL INC B* CALL ERR1 ;检查输入时间是否正确,假设不正确,返回START AND AL,0FHMOV B*,ALINC B*CALL ERR2 ;检查分秒之间是否以:相隔,假设不是,返回STARTINC B* CALL ERR1 ;检查输入时间是否正确,假设不正确,返回START AND AL,B* MOV B*,ALINC B* CALL ERR1 ;检查输入时间是否正确,假设不正确,返回START AND AL,0FH

4、MOV B*,ALMOV B*,OFFSET NUM+2CALL TOBCD;调用转换BCD函数MOV CH,ALCMP CH,24H ;假设输入小时数大于等于24,重输 JAE STARTADD B*,3CALL TOBCD MOV DH,ALCMP DH,60H ;假设输入大于等于60,重输JAE STARTADD B*,3CALL TOBCDMOV DL,AL CMP DL,60HJAE START ;假设输入秒数大于等于60,重输AGAIN: CALL DELAY ;调用延时函数MOV AL,DLADD AL,1DAAMOV DL,ALCMP AL,60HJNE DISPY ;比拟秒数

5、是否到达60,假设没有,跳转DISPY MOV DL,0MOV AL,DHADD AL,1DAAMOV DH,ALCMP AL,60H ;比拟分数是否到达60,假设没有,跳转DISPY JNE DISPY MOV DH,0MOV AL,CHADD AL,1DAAMOV CH,ALCMP AL,24H ;比拟小时数是否到达24,假设没有,跳转DISPYJNE DISPYMOV CH,0DISPY:MOV B*,OFFSET NUMMOV AL,0DHMOV B*,ALINC B*MOV AL,0AHMOV B*,ALINC B*MOV AL,CHCALL TOASC ;调用ASCII码转换函数I

6、NC B*MOV AL,:MOV B*,ALINC B*MOV AL,DHCALL TOASC ;调用ASCII码转换函数INC B*MOV AL,:MOV B*,ALINC B*MOV AL,DLCALL TOASC ;调用ASCII码转换函数INC B*MOV AL,$MOV B*,ALPUSH B*PUSH C*PUSH D*MOV D*,OFFSET NUM MOV AH,9 INT 21H ;显示字符串 MOV AH,06HMOV DL,0FFHINT 21H ;判断是否有按键按下,如果有,转至GO,即调用DOS中断POP D*POP C*POP B*JNZ GOJMP AGAING

7、O:MOV AH,4CHINT 21H ;调用DOS中断TOBCD PROCMOV AL,B*SHL AL,1SHL AL,1SHL AL,1SHL AL,1OR AL,B*+1RETTOBCD ENDP ;转换为BCD码err1 PROC ;定义错误1:输入时间不是数字MOV AL,B* CMP AL,39HJA STARTCMP AL,30H START RETERR1 ENDP ERR2 PROC;定义错误2:时分秒没有用:表示MOV AL,B*CMP AL,3AHJNE STARTRETerr2 ENDPTOASC PROC ;ASCII码转换程序MOV CL,ALSHR AL,1SH

8、R AL,1SHR AL,1SHR AL,1;AL右移四位OR AL,30H MOV B*,ALINC B*MOV AL,CLAND AL,0FHOR AL,30HMOV B*,ALRETTOASC ENDPDELAY PROC ;延时程序PUSH C*PUSH A*MOV A*,0FFFFHMOV C*,08FFFHG1:DEC A*JNZ G1DEC C*JNZ G1POP A*POP C*RETDELAY ENDP CODE ENDSEND START实验结果键入正确的时间,程序将进展计时假设没有键入正确的时间超出时间表示围或出现其他非法字符时,指针将会跳转至开头重新输入分析问题并解释原因问题1:延迟时间很难掌握问题2:在判断输入字符时,能判断

温馨提示

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

评论

0/150

提交评论