东南大学信息学院微机时钟实验文档格式.docx

上传人:b****1 文档编号:13175215 上传时间:2022-10-07 格式:DOCX 页数:7 大小:42.29KB
下载 相关 举报
东南大学信息学院微机时钟实验文档格式.docx_第1页
第1页 / 共7页
东南大学信息学院微机时钟实验文档格式.docx_第2页
第2页 / 共7页
东南大学信息学院微机时钟实验文档格式.docx_第3页
第3页 / 共7页
东南大学信息学院微机时钟实验文档格式.docx_第4页
第4页 / 共7页
东南大学信息学院微机时钟实验文档格式.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

东南大学信息学院微机时钟实验文档格式.docx

《东南大学信息学院微机时钟实验文档格式.docx》由会员分享,可在线阅读,更多相关《东南大学信息学院微机时钟实验文档格式.docx(7页珍藏版)》请在冰豆网上搜索。

东南大学信息学院微机时钟实验文档格式.docx

XX√,随即显示时间并不停计时。

三、 实验代码

DATASEGMENT ;

定义数据段

NUMDB9 ;

输入时间的最大长度,包含回车DB?

;

实际输入时间长度

DB9DUP(?

);

开辟的长度DATAENDS

STACK1SEGMENTSTACK ;

定义栈段DB200DUP(0)

STACK1 ENDS

CODESEGMENT ;

定义代码段ASSUMECS:

CODE,DS:

DATA,SS:

STACK1START:

MOVAX,DATAMOVDS,AXMOVDL,'

:

'

MOVAH,2

INT21H ;

显示冒号,表明输入开始MOVDX,OFFSETNUM

MOVAH,0AH ;

将ASCII码转换为16进制数

INT21H

MOVBX,OFFSETNUM+2

CALLERR1 ;

检查输入时间是否正确,若不正确,返回STARTANDAL,0FH

MOV[BX],ALINCBX

CALLERR2 ;

检查时分之间是否以:

相隔,若不是,返回STARTINCBX

检查分秒之间是否以:

检查输入时间是否正确,若不正确,返回STARTANDAL,[BX]

MOV[BX],AL

CALLTOBCD ;

调用转换BCD函数

MOVCH,AL

CMPCH,24H ;

若输入小时数大于等于24,重输JAESTART

ADDBX,3CALLTOBCDMOVDH,AL

CMPDH,60H ;

若输入大于等于60,重输JAESTART

ADDBX,3CALLTOBCDMOVDL,ALCMPDL,60H

JAESTART ;

若输入秒数大于等于60,重输AGAIN:

CALLDELAY ;

调用延时函数MOVAL,DL

ADDAL,1DAA

MOVDL,ALCMPAL,60H

JNEDISPY ;

比较秒数是否达到60,若没有,跳转DISPYMOVDL,0

MOVAL,DHADDAL,1DAA

MOVDH,AL

CMPAL,60H ;

比较分数是否达到60,若没有,跳转DISPYJNEDISPY

MOVDH,0

MOVAL,CHADDAL,1DAA

CMPAL,24H ;

比较小时数是否达到24,若没有,跳转DISPYJNEDISPY

MOVCH,0DISPY:

MOVBX,OFFSETNUMMOVAL,0DH

MOVAL,0AHMOV[BX],ALINCBX

MOVAL,CH

CALLTOASC ;

调用ASCII码转换函数

INCBXMOVAL,'

MOVAL,DH

MOVAL,DL

$'

MOV[BX],ALPUSHBXPUSHCXPUSHDX

MOVDX,OFFSETNUMMOVAH,9

显示字符串MOVAH,06H

MOVDL,0FFH

判断是否有按键按下,如果有,转至GO,即调用DOS中断

POPDXPOPCX

POPBXJNZGOJMPAGAIN

GO:

MOVAH,4CH

调用DOS中断

TOBCDPROC

MOVAL,[BX]SHLAL,1

SHLAL,1SHLAL,1SHLAL,1

ORAL,[BX+1]RET

TOBCDENDP ;

转换为BCD码

err1PROC ;

定义错误1:

输入时间不是数字MOVAL,[BX]

CMPAL,39HJASTARTCMPAL,30HJBSTARTRET

ERR1ENDP

ERR2PROC ;

定义错误2:

时分秒没有用:

表示MOVAL,[BX]

CMPAL,3AHJNESTARTRET

err2ENDP

TOASCPROC ;

ASCII码转换程序

MOVCL,ALSHRAL,1SHRAL,1SHRAL,1

SHRAL,1 ;

AL右移四位

ORAL,30HMOV[BX],ALINCBX

MOVAL,CLANDAL,0FHORAL,30HMOV[BX],AL

RETTOASCENDP

DELAYPROC ;

延时程序PUSHCX

PUSHAX

MOVAX,0FFFFHMOVCX,08FFFH

G1:

DECAXJNZG1DECCXJNZG1POPAXPOPCXRET

DELAYENDP

CODEENDSENDSTART

四、 实验结果

键入正确的时间,程序将进行计时

e.g.1

若没有键入正确的时间(超出时间表示范围或出现其他非法字符时),指针将会跳转至开头重新输入

e.g.2

e.g.3

五、 分析问题并解释原因问题1:

延迟时间很难掌握

问题2:

在判断输入字符时,能判断“?

”却不能判断“!

原因:

只考虑了大于数字ASCII码部分,没有考虑小于数字ASCII码的部分六、 思考题

时钟实验中存在时间误差吗?

若有误差,其来源于何处?

如何进行误差校正?

答:

存在误差。

出栈入栈指令占用时钟周期,不同的CPU的主频不同,机器周期也会有一定的误差。

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

当前位置:首页 > PPT模板 > 其它模板

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

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