南邮微机实验(设计定时器)

利用系统定时源设计计时器,具体内容:利用日时钟附加1CH中断设计定时中断程序,每隔一秒刷新屏幕上显示的时、分、秒。

.486
DATA SEGMENT USE16
MESG DB '00:00:00',0DH,'$'
HOUR1 DB 0
HOUR2 DB 3
MIN1 DB 5
MIN2 DB 9
SECOND1 DB 5
SECOND2 DB 8
OLD0A DD ?
ICOUNT DB 18
DATA ENDS
CODE SEGMENT USE16
      ASSUME CS:CODE,DS:DATA
BEG:  MOV AX,DATA
      MOV DS,AX
      CLI
      CALL READ0A
      CALL WRITE0A
      STI
     
SERVICE PROC
      PUSHA
      PUSH DS
      MOV AX,DATA
      MOV DS,AX
      DEC ICOUNT
      JNZ EXIT
      MOV ICOUNT,18
      
      LEA BX,MESG
      
      INC SECOND2
      CMP SECOND2,10
      JB T
      MOV SECOND2,0
      INC SECOND1
      CMP SECOND1,6
      JB T
      MOV SECOND1,0
      INC MIN2
      CMP MIN2,10
      JB T
      MOV MIN2,0
      INC MIN1
      CMP MIN1,6
      JB T
      MOV MIN1,0
      INC HOUR2
      CMP HOUR1,2         ;以下几行代码用于判断是否是23:59:59加1s,若是,则跳转至00:00:00
      JE t1
      CMP HOUR2,10
      JB T
      MOV HOUR2,0
      INC HOUR1
      JMP T
t1:	  CMP HOUR2,4
	  JB T
	  MOV HOUR1,0
      MOV HOUR2,0
      MOV MIN1,0
      MOV MIN2,0
      MOV SECOND1,0
      MOV SECOND2,0
      
T:	  
	  MOV AL,HOUR1
	  ADD AL,30H      
      MOV [BX],AL
      
      MOV AL,HOUR2
      ADD AL,30H
      MOV [BX+1],AL
      
      MOV AL,MIN1
      ADD AL,30H
      MOV [BX+3],AL
      
      MOV AL,MIN2
      ADD AL,30H
      MOV [BX+4],AL
      
      MOV AL,SECOND1
      ADD AL,30H
      MOV [BX+6],AL
      
      MOV AL,SECOND2
      ADD AL,30H
      MOV [BX+7],AL
      
      MOV AH,9
      LEA DX,MESG
      INT 21H

EXIT: POP DS   ;恢复现场
      POPA
      IRET
SERVICE ENDP

BtoD PROC
	  RET 
BtoD ENDP	  

READ0A PROC
      MOV AX,351CH
      INT 21H
      MOV WORD PTR OLD0A,BX
      MOV WORD PTR OLD0A+2,ES
      RET
READ0A ENDP

WRITE0A PROC
      PUSH DS
      MOV AX,CODE
      MOV DS,AX
      MOV DX,OFFSET SERVICE
      MOV AX,251CH
      INT 21H
      POP DS
      RET
WRITE0A ENDP

RESET PROC
      MOV DX,WORD PTR OLD0A
      MOV DS,WORD PTR OLD0A+2
      MOV AX,251CH
      INT 21H
      RET
RESET ENDP
CODE ENDS
      END BEG


  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值