⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clock.asm

📁 汇编语言编写的实时时钟程序 比较简单 后缀为asm
💻 ASM
字号:
DSEG  SEGMENT
	HOUR    DB  ?,?,'$'
	MINUTE  DB  ?,?,'$'
	SECOND  DB  ?,?,'$'
	FLAG    DB  3AH,'$'
	END1    DB  0AH,0DH,'$'
DSEG  ENDS
;******************************************
SHOW  MACRO  ADDR
    LEA  DX,ADDR
    MOV  AH,9
    INT  21H
    ENDM
;
CLS  MACRO     
    MOV       AX,0600H
    MOV       BH,05FH
    MOV       CH,0
    MOV       CL,0
    MOV       DH,29
    MOV       DL,79
    INT       10H
    ENDM   
;***************************************   
CSEG  SEGMENT
	ASSUME  CS:CSEG,DS:DSEG
START:
    MOV  AH,0
    MOV  AL,01H
    INT  10H
    CLS
    ;
    MOV  AX,DSEG
    MOV  DS,AX
    ; 
WINDOW:
     MOV       AH,7
     MOV       AL,0
     MOV       BH,02FH
     MOV       CH,8
     MOV       CL,8
     MOV       DH,12
     MOV       DL,30
     INT       10H
KEY_TEST:
    MOV  AH,0BH
    INT  21H
    CMP  AL,0
    JNZ  EXIT 
    ;
GET_SYSTIME:
    MOV  AH,02
    INT  1AH
    ;
CHANGE_HOUR:
    MOV  AL,CL   ;将CL分钟暂存在AL中
    MOV  SI,0
    MOV  DL,CH   ;CH、DH暂存小时
    MOV  CL,4
    SHR  DL,CL
    OR   DL,30H
    MOV  HOUR[SI],DL
    AND  CH,0FH
    OR   CH,30H
    INC  SI
    MOV  HOUR[SI],CH
    ;
CHANGE_MINUTE:
    MOV  SI,0
    MOV  DL,AL        ;AL、DL暂存分钟
    MOV  CL,4
    SHR  DL,CL        ;逻辑右移4位,只保留高位
    OR   DL,30H       ;转化为十进制
    MOV  MINUTE[SI],DL
    AND  AL,0FH       ;只保留最低位
    OR   AL,30H       ;转化为十进制
    INC  SI
    MOV  MINUTE[SI],AL
    ;
CHANGE_SECOND:
    MOV  SI,0
    MOV  DL,DH        ;DH、DL暂存秒
    MOV  CL,4
    SHR  DL,CL        ;逻辑右移4位,只保留高位
    OR   DL,30H       ;转化为十进制
    MOV  SECOND[SI],DL
    AND  DH,0FH       ;只保留最低位
    OR   DH,30H       ;转化为十进制
    INC  SI
    MOV  SECOND[SI],DH
    ;
LOCAT:     ;----------------设置时钟显示位置
    MOV       AH,2
    MOV       DH,10
    MOV       DL,15
    MOV       BH,0
    INT       10H
 ;
SHOW_TIME:
    SHOW      HOUR
    SHOW      FLAG
    SHOW      MINUTE
    SHOW      FLAG
    SHOW      SECOND
    SHOW      END1
    ;
    MOV      BL,2
LP:
    MOV      CX,33144
    CALL     WAITF
    DEC      BL
    JNZ      LP
    JMP      KEY_TEST
WAITF  PROC  NEAR
       PUSH  AX
WAITF1:
       IN    AL,61H
       AND   AL,10H
       CMP   AL,AH
       JE    WAITF1
       MOV   AH,AL
       LOOP  WAITF1
       POP   AX
       RET
WAITF  ENDP
;
EXIT:
    MOV       AH,0
    MOV       AL,3
    INT       10H
    ;
    MOV       AX,4C00H
    INT       21H
CSEG ENDS
    END  START
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -