东南大学信息学院微机实验报告九.docx
文本预览下载声明
实验九一、实验目的1.熟悉系统功能调用INT 21H的有关功能2.编写时钟程序二、实验任务1.执行时钟程序时,屏幕上显示提示符“:”,由键盘输入当前时、分、秒值,即XX:XX:XX,随即显示时间并不停地计时。2.当有键盘按下时,立即停止计时,返回DOS。三、源程序DATA SEGMENTBUFFER DB 11 DB ? DB 10 DUP(?)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATAOUTCLK: 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 ERRORERROR1: MOV AH,4CH INT 21HAGAIN: 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,0ERROR: MOV DL, 0 MOV
显示全部