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

📄 8.asm

📁 改进的七段显示电子钟
💻 ASM
📖 第 1 页 / 共 2 页
字号:
DISPLAY             PROC      NEAR
                    PUSH      BX
                    PUSH      CX
                    PUSH      AX
                    MOV       AL,160
                    MUL       CH
                    MOV       BL,CL
                    ROL       BL,1
                    MOV       BH,0
                    ADD       BX,AX
                    POP       AX
                    MOV       ES:[WD_BUFFER+BX],AX
                    POP       CX
                    POP       BX
                    RET
DISPLAY             ENDP

DISPLAY_TIME        PROC   NEAR
                    MOV    R0,8
                    LEA    BX,LED1
                    MOV    CH,16
                    MOV    CL,38
                    
DISPLAY_TIME1:      MOV    AL,[BX]
                    MOV    AH,1EH
                    CALL   DISPLAY
                    INC    CX
                    INC    BX
                    DEC    R0
                    JNZ    DISPLAY_TIME1
                    RET
DISPLAY_TIME        ENDP

DISPLAY_DATE        PROC   NEAR
                    MOV    R0,10
                    LEA    BX,LED10
                    MOV    CH,16
                    MOV    CL,27
                    
DISPLAY_DATE1:      MOV    AL,[BX]
                    MOV    AH,0AH
                    CALL   DISPLAY
                    INC    CX
                    INC    BX
                    DEC    R0
                    JNZ    DISPLAY_DATE1
                    RET
DISPLAY_DATE        ENDP

CLR_SCREEN          PROC   NEAR
                    MOV    AH,06H
                    MOV    CX,TEMP1
                    MOV    DX,TEMP2
                    INT    10H
                    MOV    AH,02H
                    MOV    DH,24H
                    MOV    DL,80
                    MOV    BH,0
                    INT    10H
                    RET
CLR_SCREEN          ENDP
          
MOVE        PROC        NEAR


            LEA         BX,LED8
            MOV         CX,0832H
            CALL         COMPARE

            LEA         BX,LED7
            MOV         CX,082EH
            CALL        COMPARE

            LEA         BX,LED5
            MOV         CX,0828H
            CALL        COMPARE

            LEA         BX,LED4
            MOV         CX,0824H
            CALL        COMPARE

            LEA         BX,LED2
            MOV         CX,081EH
            CALL        COMPARE

            LEA         BX,LED1
            MOV         CX,081AH
            CALL        COMPARE

                  
            RET
MOVE        ENDP


COMPARE     PROC        NEAR
            MOV         AL,[BX]

            CMP         AL,30H
            JNZ         Y1
            LEA         DI,F0
            CALL        XIANSHI
Y1:         CMP         AL,31H
            JNZ         Y2
            LEA         DI,F1
            CALL        XIANSHI
Y2:         CMP         AL,32H
            JNZ         Y3
            LEA         DI,F2
            CALL        XIANSHI
Y3:         CMP         AL,33H
            JNZ         Y4
            LEA         DI,F3
            CALL        XIANSHI
Y4:         CMP         AL,34H
            JNZ         Y5
            LEA         DI,F4
            CALL        XIANSHI
Y5:         CMP         AL,35H
            JNZ         Y6
            LEA         DI,F5
            CALL        XIANSHI
Y6:         CMP         AL,36H
            JNZ         Y7
            LEA         DI,F6
            CALL        XIANSHI
Y7:         CMP         AL,37H
            JNZ         Y8
            LEA         DI,F7
            CALL        XIANSHI
Y8:         CMP         AL,38H
            JNZ         Y9
            LEA         DI,F8
            CALL        XIANSHI

Y9:         CMP         AL,39H
            JNZ         Y10
            LEA         DI,F9
            CALL        XIANSHI

Y10:        RET
COMPARE     ENDP

XIANSHI     PROC        NEAR
                       
            MOV         DX,7
            ADD         DI,4
S:          MOV         AL,[DI]
            ADD         CL,AL
            DEC         DI
            MOV         AL,[DI]
            ADD         CH,AL
            DEC         DI
            MOV         AH,[DI]
            DEC         DI
            MOV         AL,[DI]
            CALL        DISPLAY
            ADD         DI,7
            DEC         DX
            JNZ         S

            RET
XIANSHI     ENDP
          
LOGO        PROC NEAR
            
            MOV AL,LED7
            SUB AL,30H
            MOV BL,10
            MUL BL
            MOV T0,AL
            MOV AL,LED8
            SUB AL,30H
            ADD AL,T0
            MOV T0,AL
            CMP T0,0
            JZ  P
            CMP T0,3CH
            JZ  P         
            MOV DL,T0
            MOV CX,140AH
C:          MOV AH,0A0H
            MOV AL,0
            CALL DISPLAY
            INC CX
            DEC DL
            JNZ C 
            JMP X           
P:          MOV BL,60
            MOV CX,140AH
J:          MOV AH,0
            MOV AL,0
            CALL DISPLAY
            INC CX
            DEC BL
            JNZ J                  
          


X:          RET         
LOGO        ENDP



WEEK        PROC        NEAR                       
            MOV         AH,2AH
            INT         21H
            CMP         AL,0
            JNZ         WEEK1
            LEA         BX,SUNDAY
            MOV         CX,6
SUN: PUSH        CX
            MOV         CH,16
            MOV         CL,WEEK_COL
            MOV         AL,[BX]
            MOV         AH,0AH
            CALL        DISPLAY
            INC         BX
            INC         WEEK_COL
            POP         CX
            LOOP        SUN             
WEEK1:      CMP         AL,1
            JNZ         WEEK2
            LEA         BX,MONDAY
            MOV         CX,6
MON: PUSH        CX
            MOV         CH,16
            MOV         CL,WEEK_COL
            MOV         AL,[BX]
            MOV         AH,0AH
            CALL        DISPLAY
            INC         BX
            INC         WEEK_COL
            POP         CX
            LOOP        MON           
WEEK2:      CMP         AL,2
            JNZ         WEEK3
            LEA         BX,TUESDAY
            MOV         CX,7
TUE: PUSH        CX
            MOV         CH,16
            MOV         CL,WEEK_COL
            MOV         AL,[BX]
            MOV         AH,0AH
            CALL        DISPLAY
            INC         BX
            INC         WEEK_COL
            POP         CX
            LOOP        TUE
WEEK3:      CMP         AL,3
            JNZ         WEEK4
            LEA         BX,WEDNESDAY
            MOV         CX,9
WED: PUSH        CX
            MOV         CH,16
            MOV         CL,WEEK_COL
            MOV         AL,[BX]
            MOV         AH,0AH
            CALL        DISPLAY
            INC         BX
            INC         WEEK_COL
            POP         CX
            LOOP        WED                       
WEEK4:      CMP         AL,4
            JNZ         WEEK5
            LEA         BX,THURESDAY
            MOV         CX,8
THU: PUSH        CX
            MOV         CH,16
            MOV         CL,WEEK_COL
            MOV         AL,[BX]
            MOV         AH,0AH
            CALL        DISPLAY
            INC         BX
            INC         WEEK_COL
            POP         CX
            LOOP        THU
WEEK5:      CMP         AL,5
            JNZ         WEEK6
            LEA         BX,FRIDAY
            MOV         CX,6
FRI: PUSH        CX
            MOV         CH,16
            MOV         CL,WEEK_COL
            MOV         AL,[BX]
            MOV         AH,0AH
            CALL        DISPLAY
            INC         BX
            INC         WEEK_COL
            POP         CX
            LOOP        FRI
WEEK6:      CMP         AL,6
            JNZ         WEEK_EXIT
            LEA         BX,SATURDAY
            MOV         CX,8
SAT: PUSH        CX
            MOV         CH,16
            MOV         CL,WEEK_COL
            MOV         AL,[BX]
            MOV         AH,0AH
            CALL        DISPLAY
            INC         BX
            INC         WEEK_COL
            POP         CX
            LOOP        SAT
WEEK_EXIT:  RET
WEEK        ENDP
                        
PROGRAM             ENDS
                    END      START
                    

                    


                    

⌨️ 快捷键说明

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