准确时钟.asm

来自「时钟的显示程序」· 汇编 代码 · 共 104 行

ASM
104
字号
EX EQU 24H
EL EQU 24H
EH EQU 25H
SEC EQU 28H
MIN EQU 27H
HOU EQU 26H
COUNTER	EQU 2AH
FM EQU 30H
ORG 200AH
DCW HSOINT
ORG 2080H
MAIN : LD SP,#00C0H
       DI
       CLRB INT_PEND
       LDB INT_MASK,#20H
       LD BX,#6100H
       LDB AL,#0FH
       STB AL,[BX]+
       LDB AL,#0FCH
       STB AL,[BX]+
       LDB AL,#0FEH
       STB AL,[BX]
       CLRB 26H
       CLRB 27H
       CLRB 28H
       CLRB COUNTER
       LDB HSO_COMMAND,#18H
       ADD HSO_TIME,T1,#7500
       EI
LOOP : LCALL DISP
       LJMP LOOP
DISP : LDB FM,#3H
       LDB CH,#7FH
       LDB EL,#26H
       CLRB EH
LOOP1 : LDBZE AX,[EX]+
        DIVB AX,#10
        LDBZE BX,AL
        LDB CL,TAB[BX]
        LD DX,#6101H
        STB CL,[DX]+
        STB CH,[DX]
        LCALL DELAY
        SHRB CH,#1
        ORB CH,#80H
        LDBZE BL,AH
        LDB CL,TAB[BX]
        LD DX,#6101H
        STB CL,[DX]+
        STB CH,[DX]
        LCALL DELAY
        SHRB CH,#2
        ORB CH,#0C0H
        DJNZ FM,LOOP1
        LDB CL,#02H
        LDB CH,#0DBH
        STB CL,6101H[0]
        STB CH,6102H[0]
        LCALL DELAY
        RET
DELAY : LDB 80H,#250
    L : NOP
        DJNZ 80H,L
        RET
TAB : DCB 0FCH,060H,0DAH,0F2H,066H
      DCB 0B6H,0BEH,0E0H,0FEH,0F6H
HSOINT : PUSHF
         LDB HSO_COMMAND,#18H
	 ADD HSO_TIME,T1,#7500
         NOP
         NOP
         LCALL	SECOND
         POPF
	 RET
SECOND : INCB COUNTER
         CMPB COUNTER,#100
         JNE RETURN
         CLRB COUNTER
         INCB SEC
         CMPB SEC,#60
         JNE RETURN
         CLRB SEC
         INCB MIN
         CMPB MIN,#60
         JNE RETURN
         CLRB MIN
         INCB HOU
         CMPB HOU,#24
         JNE RETURN
         CLRB HOU
RETURN : RET
END











⌨️ 快捷键说明

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