收藏 分销(赏)

东南大学信息学院微机实验报告九.docx

上传人:Fis****915 文档编号:551124 上传时间:2023-12-06 格式:DOCX 页数:5 大小:14KB 下载积分:6 金币
下载 相关 举报
东南大学信息学院微机实验报告九.docx_第1页
第1页 / 共5页
东南大学信息学院微机实验报告九.docx_第2页
第2页 / 共5页


点击查看更多>>
资源描述
实验九 一、实验目的 1.熟悉系统功能调用INT 21H的有关功能 2.编写时钟程序 二、实验任务 1.执行时钟程序时,屏幕上显示提示符“:”,由键盘输入当前时、分、秒值,即XX:XX:XX,随即显示时间并不停地计时。 2.当有键盘按下时,立即停止计时,返回DOS。 三、源程序 DATA SEGMENT BUFFER DB 11 DB ? DB 10 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA OUTCLK: MOV AX,DATA MOV DS,AX MOV DL,':' MOV AH,2 INT 21H MOV DX,OFFSET BUFFER MOV AH,0AH ;输入字符串 INT 21H MOV BX,OFFSET BUFFER+2 MOV AL,[BX] ; 时针,ASCII码转非压缩BCD CMP AL, 03AH JAE ERROR1 CMP AL, 02FH JBE ERROR1 AND AL,0FH MOV [BX],AL INC BX MOV AL,[BX] AND AL,0FH MOV [BX],AL INC BX INC BX MOV AL,[BX] ; 分针 AND AL,0FH MOV [BX],AL INC BX MOV AL,[BX] AND AL,0FH MOV [BX],AL INC BX INC BX MOV AL,[BX] ;秒针 AND AL,0FH MOV [BX],AL INC BX MOV AL,[BX] AND AL,0FH MOV [BX],AL MOV BX,OFFSET BUFFER+2 CALL TOBCD ; 时针,两位非压缩BCD转换成两位压缩BCD MOV CH, AL ADD BX,3 CALL TOBCD MOV DH, AL ; 分针,两位非压缩BCD转换成两位压缩BCD MOV DH,AL ADD BX,3 CALL TOBCD ; 秒针,两位非压缩BCD转换成两位压缩BCD MOV DL,AL CMP CH, 24H JAE ERROR CMP DH, 60H JA ERROR CMP DL, 60H JA ERROR ERROR1: MOV AH,4CH INT 21H AGAIN: CALL DELAY MOV AL,DL ; 秒针加1 ADD AL,1 DAA MOV DL,AL CMP AL,60H JA ERROR JNE DISPY MOV DL,0 MOV AL,DH ADD AL,1 ; 分针 DAA MOV DH,AL CMP AL,60H JA ERROR JNE DISPY MOV DH,0 MOV AL,CH ADD AL,1 DAA ; 时针 MOV CH,AL CMP AL,24H JAE ERROR JNE DISPY MOV CH,0 ERROR: MOV DL, 0 MOV DH, 0 MOV CH, 0 DISPY: MOV BX,OFFSET BUFFER MOV AL,0DH MOV [BX],AL INC BX MOV AL,0 MOV [BX],AL INC BX MOV AL,CH CALL TRAN INC BX MOV AL,':' MOV [BX],AL INC BX MOV AL,DH CALL TRAN INC BX MOV AL,':' MOV [BX],AL INC BX MOV AL,DL CALL TRAN INC BX MOV AL,'$' MOV [BX],AL PUSH BX PUSH CX PUSH DX MOV DX,OFFSET BUFFER MOV AH,9 INT 21H MOV AH,06H MOV DL,0FFH INT 21H POP DX POP CX POP BX JNE GO JMP AGAIN GO: MOV AH,4CH INT 21H TOBCD PROC ; 两位非压缩BCD转换成压缩 MOV AL,[BX] MOV CL,4 SHL AL,CL OR AL,[BX+1] RET TOBCD ENDP TRAN PROC ; BCD转ASCII MOV CL,AL SHR AL,1 SHR AL,1 SHR AL,1 SHR AL,1 OR AL,30H MOV [BX],AL INC BX MOV AL,CL AND AL,0FH OR AL,30H MOV [BX],AL RET TRAN ENDP DELAY PROC PUSH CX PUSH AX MOV AX,0FFFFH FIR: MOV CX,02FFFH GOON: DEC CX JNE GOON DEC AX JNE FIR POP AX POP CX RET DELAY ENDP CODE ENDS END OUTCLK 四、思考题 时钟程序中存在误差吗?若有误差,其来源在何处?如何进行误差矫正? 答:存在,来源自实验循环的次数,来自“MOV AX,0FFFFH FIR: MOV CX,02FFFH”,如要进行矫正,只需调整AX与CX使之乘积与计算机运行速度相匹配即可。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 行业资料 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服