www.pudn.com > shizhong_asm.rar > shizhong_asm.asm


STACK SEGMENT STACK 
     DB 200 DUP(0) 
STACK ENDS 
CODE  SEGMENT 
  ASSUME CS:CODE,DS:CODE,SS:STACK 
   WELCOME DB ':)0401wqg*_*:$' 
   COUNT DB 18 
   HOUR1 DB "0" 
   HOUR2 DB "0" 
         DB ":" 
   MIN1  DB "0" 
   MIN2  DB "0" 
         DB ":" 
   SEC1  DB "0" 
   SEC2  DB "0" 
   HOUR  DB "0" 
   MIN   DB "0" 
   SEC   DB "0" 
      A  DW ? 
   OLD_IP DW ? 
   OLD_CS DW ?       
  DISPLAY MACRO A 
  MOV AH,0EH 
  MOV AL,A 
  MOV BX,0 
  INT 10H 
  ENDM 
TRANS MACRO A,B,C 
  MOV BL,10 
  MOV AL,A; 
  MOV AH,0 
  DIV BL 
  ADD AL,30H 
  ADD AH,30H 
  MOV B,AL 
  MOV C,AH 
  ENDM 
START:  
  MOV AX,CODE 
  MOV DS,AX 
  MOV AH,35H 
  MOV AL,1CH 
  INT 21H 
  MOV OLD_IP,BX 
  MOV AX,ES 
  MOV OLD_CS,AX 
  MOV AX,CS 
  MOV DS,AX 
  MOV DX,OFFSET INTR1C 
  MOV AH,25H 
  MOV AL,1CH 
  INT 21H 
  MOV AH,2CH 
  INT 21H 
  MOV HOUR,CH 
  MOV MIN,CL 
  MOV SEC,DH 
  MOV AH,31H 
  MOV AL,0 
  MOV DX,4000H 
  INT 21H 
INTR1C PROC FAR 
  PUSH BX 
  PUSH CX 
  PUSH DX 
  PUSH DS 
  MOV AX,CS 
  MOV DS,AX 
  PUSHF                   
  CALL DWORD PTR OLD_IP  
  DEC COUNT 
  JNE L0 
  jmp LX 
L0: 
  jmp L2 
LX:    
 L1:                     
  MOV AH,03H 
  MOV BH,0 
  INT 10H 
  MOV A,DX 
  MOV AH,02H 
  MOV BH,0 
  MOV DH,0 
  MOV DL,58 
  INT 10H 
  TRANS HOUR,HOUR1,HOUR2 
  TRANS MIN,MIN1,MIN2 
  TRANS SEC,SEC1,SEC2 
  DISPLAY WELCOME 
  DISPLAY WELCOME+1 
  DISPLAY WELCOME+2 
  DISPLAY WELCOME+3 
  DISPLAY WELCOME+4 
  DISPLAY WELCOME+5 
  DISPLAY WELCOME+6 
  DISPLAY WELCOME+7 
  DISPLAY WELCOME+8 
  DISPLAY WELCOME+9 
  DISPLAY WELCOME+10 
  DISPLAY WELCOME+11 
  DISPLAY WELCOME+12 
  DISPLAY HOUR1 
  DISPLAY HOUR2 
  DISPLAY HOUR2+1 
  DISPLAY MIN1 
  DISPLAY MIN2 
  DISPLAY MIN2+1 
  DISPLAY SEC1 
  DISPLAY SEC2 
  DISPLAY 0DH 
  MOV DX,A 
  MOV AH,02H 
  MOV BH,0 
  INT 10H 
  MOV COUNT,18 
  INC SEC 
  MOV CL,SEC 
  SUB CL,60 
  JNE L2 
  MOV SEC,0 
  INC MIN 
  MOV CL,MIN 
  SUB CL,60 
  JNE L2 
  MOV MIN,0 
  INC HOUR 
  MOV CL,HOUR 
  SUB CL,24 
  JNE L2 
  MOV HOUR,0 
L2: 
  POP DS 
  POP DX 
  POP CX 
  POP BX 
  IRET 
INTR1C ENDP 
  CODE  ENDS 
     END START