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

📄 tfcl.asm

📁 大学微机原理课程设计之一-------交通灯 源码。比较作孽
💻 ASM
📖 第 1 页 / 共 4 页
字号:
              DAS
              MOV       BL,AL
              AND       BL,00001111B
              ADD       BL,BH
              DAA
              CMP       LEE,0
              JNZ       CC12
              MOV       NS,BL
              JMP       DD12
       CC12:  MOV       WE,BL
       DD12:  POP       DX
              POP       CX
              POP       BX
              POP       AX
              RET
    CFIG_WE1  ENDP
     CFIG_N1  PROC      NEAR
              PUSH      AX
              PUSH      BX
              CMP       N3,0
              JZ        M11
              JMP       M21
        M11:  MOV       BL,N1
              MOV       WHIT, BL
              MOV       AL,N3
              INC       AL
              MOV       N3,AL
              JMP       EX1
        M21:  MOV       BL,N2
              MOV       WHIT, BL
              MOV       AL,N3
              DEC       AL
              MOV       N3,AL
        EX1:  POP       BX
              POP       AX
              RET
     CFIG_N1  ENDP
  INTERRUPT1  PROC      FAR         ;从定时器读取时间
              PUSHF
              PUSH      AX
              PUSH      DS
              MOV       AX,DATA
              MOV       DS,AX
              MOV       INTFLAG,1
              MOV       AL,20H      ;EOI
              OUT       20H,AL
              POP       DS
              POP       AX
              POPF
              IRET
  INTERRUPT1  ENDP
 ;****************************************************延时子程序 2
      DELAY2  PROC      NEAR
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
      MAIN2:  MOV       INTFLAG,0
              MOV       COUNT ,18
              MOV       AL,WE
              MOV       SECOND ,AL
              MOV       AH,35H
              MOV       AL,08H
              INT       21H
              MOV       OLD_OFF,BX
              MOV       OLD_SEG,ES
              IN        AL,21H
              MOV       OLD_MSK,AL
              MOV       AH,02H
              MOV       DH,06
              MOV       DL,25
              MOV       BH,00H
              INT       10H
              CLI
              PUSH      DS
              MOV       AH,25H
              MOV       AL,08H
              MOV       DX,SEG INTERRUPT2
              MOV       DS,DX
              MOV       DX,OFFSET INTERRUPT2
              INT       21H
              POP       DS
              MOV       AL,OLD_MSK
              AND       AL,11111110B
              STI
  MAINLOOP2:  MOV       AH,0BH      ;test keyboard
              INT       21H
              CMP       AL,00H
              JE        CHK_INT2
              MOV       AH,08H      ;get key
              INT       21H
              CMP       AL,72H
              JZ        RESTOR2
              CMP       AL,63H
              JZ        CFG_NS2
              CMP       AL,64H
              JZ        CFG_WE2
              CMP       AL,65H      ;'e'
              JZ        CFG2
              CMP       AL,6EH      ;'n'
              JZ        CFG_N2
              CMP       AL,1BH      ;'ESC'
              JNE       CHK_INT2
              JMP       QUIT2
    RESTOR2:  CALL      RESTORE2
              JMP       MAIN2
    CFG_NS2:  CALL      CFIG_NS2
              JMP       MAIN2
    CFG_WE2:  CALL      CFIG_WE2
              JMP       MAIN2
     CFG_N2:  CALL      CFIG_N2
              JMP       CHK_INT2
       CFG2:  MOV       AL,LEE
              CMP       AL,0
              JZ        LEE2
              MOV       LEE,0
              JMP       RET21
       LEE2:  MOV       LEE,1
      RET21:  JMP       RET22
 MAINLOOP22:  JMP       MAINLOOP2
      QUIT2:  CLI
              PUSH      DS
              PUSH      ES
              MOV       AX,DS
              MOV       ES,AX
              MOV       AH,25H
              MOV       AL,08H
              MOV       DX,ES:OLD_SEG
              MOV       DS,DX
              MOV       DX,ES:OLD_OFF
              INT       21H
              POP       ES
              POP       DS
              MOV       AL,OLD_MSK
              OUT       21H,AL
              STI
              MOV       AH,4CH      ;exit
              INT       21H
   CHK_INT2:  CMP       INTFLAG,0
              JE        MAINLOOP22
              MOV       INTFLAG,0
              DEC       COUNT
              JNE       MAINLOOP22
              MOV       COUNT,18
              MOV       AL,SECOND
              DEC       AL
              DAS
              MOV       SECOND,AL
              CMP       SECOND,0
              JA        REFRESH2
      RET22:  JMP       STOP2
   REFRESH2:  MOV       AH,02H
              MOV       DH,05
              MOV       DL,25
              MOV       BH,00H
              INT       10H
              MOV       DH,SECOND
              MOV       DL,DH
              AND       DL,11110000B
              MOV       CL,04
              SHR       DL,CL
              OR        DL,30H
              MOV       AH,0EH
              MOV       AL,DL
              INT       10H
              MOV       DL,DH
              AND       DL,00001111B
              OR        DL,30H
              MOV       AH,0EH
              MOV       AL,DL
              INT       10H
              MOV       AH,02H
              MOV       DH,18
              MOV       DL,0
              MOV       BH,00H
              INT       10H
              MOV       AH,02H
              MOV       AL,20H
              INT       21H
              MOV       AH,02H
              MOV       AL,20H
              INT       21H
              JMP       MAINLOOP2
      STOP2:  POP       DX
              POP       CX
              POP       BX
              POP       AX
              RET
      DELAY2  ENDP
    RESTORE2  PROC      NEAR
              MOV       AL,20H
              MOV       WE,AL
              MOV       NS,AL
              RET
    RESTORE2  ENDP
    CFIG_NS2  PROC      NEAR
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
              MOV       AH,02H
              MOV       DH,17
              MOV       DL,10
              MOV       BH,00H
              INT       10H
              MOV       AH,09H
              MOV       DX,OFFSET DAT5
              INT       21H
              MOV       AH,01H
              INT       21H
              SUB       AL,30H
              DAS
              SHL       AL,4
              MOV       BH,AL
              AND       BH,11110000B
              MOV       AH,01H
              INT       21H
              SUB       AL,30H
              DAS
              MOV       BL,AL
              AND       BL,00001111B
              ADD       BL,BH
              DAA
              CMP       LEE,0
              JNZ       CC21
              MOV       WE,BL
              JMP       DD21
       CC21:  MOV       WE,BL
       DD21:  POP       DX
              POP       CX
              POP       BX
              POP       AX
              RET
    CFIG_NS2  ENDP
    CFIG_WE2  PROC      NEAR
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
              MOV       AH,02H
              MOV       DH,17
              MOV       DL,10
              MOV       BH,00H
              INT       10H
              MOV       AH,09H
              MOV       DX,OFFSET DAT5
              INT       21H
              MOV       AH,02H
              MOV       DL,0DH      ;'cr'
              INT       21H
              MOV       AH,01H
              INT       21H
              SUB       AL,30H
              DAS
              SHL       AL,4
              MOV       BH,AL
              AND       BH,11110000B
              MOV       AH,01H
              INT       21H
              SUB       AL,30H
              DAS
              MOV       BL,AL
              AND       BL,00001111B
              ADD       BL,BH
              DAA
              CMP       LEE,0
              JNZ       CC22
              MOV       NS,BL
              JMP       DD22
       CC22:  MOV       NS,BL
       DD22:  POP       DX
              POP       CX
              POP       BX
              POP       AX
              RET
    CFIG_WE2  ENDP
     CFIG_N2  PROC      NEAR
              PUSH      AX
              PUSH      BX
              CMP       N3,0
              JZ        M12
              JMP       M22
        M12:  MOV       BL,N1
              MOV       WHIT,BL
              MOV       AL,N3
              INC       AL
              MOV       N3,AL
              JMP       EX2
        M22:  MOV       BL,N2
              MOV       WHIT,BL
              MOV       AL,N3
              DEC       AL
              MOV       N3,AL
        EX2:  POP       BX
              POP       AX
              RET
     CFIG_N2  ENDP
  INTERRUPT2  PROC      FAR
              PUSHF
              PUSH      AX
              PUSH      DS
              MOV       AX,DATA
              MOV       DS,AX
              MOV       INTFLAG,1
              MOV       AL,20H      ;EOI
              OUT       20H,AL
              POP       DS
              POP       AX
              POPF
              IRET
  INTERRUPT2  ENDP
;****************************************************延时子程序 2
      DELAY3  PROC      NEAR
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
              MOV       INTFLAG,0
              MOV       COUNT ,18
              MOV       SECOND ,0
              MOV       AH,35H
              MOV       AL,08H
              INT       21H
              MOV       OLD_OFF,BX
              MOV       OLD_SEG,ES
              IN        AL,21H
              MOV       OLD_MSK,AL
              MOV       AH,02H
              MOV       DH,06
              MOV       DL,25
              MOV       BH,00H
              INT       10H
              CLI
              PUSH      DS
              MOV       AH,25H
              MOV       AL,08H
              MOV       DX,SEG INTERRUPT3
              MOV       DS,DX
              MOV       DX,OFFSET INTERRUPT3
              INT       21H
              POP       DS
              MOV       AL,OLD_MSK
              AND       AL,11111110B
              STI
  MAINLOOP3:  JMP       CHK_INT3
   CHK_INT3:  MOV       AH,02H
              MOV       DH,05
              MOV       DL,25
              MOV       BH,00H
              INT       10H
              MOV       DL,'0'
              MOV       AH,02H
              INT       21H
              MOV       DL,'0'
              MOV       AH,02H
              INT       21H
              CMP       INTFLAG,0
              JE        MAINLOOP3
              MOV       INTFLAG,0
              DEC       COUNT
              JNE       MAINLOOP3
              MOV       COUNT,18
              MOV       AL,SECOND
              INC       AL
              DAA
              MOV       SECOND,AL
              CMP       SECOND,0
              JNA       REFRESH3
              JMP       STOP3
   REFRESH3:  JMP       MAINLOOP2
      STOP3:  POP       DX
              POP       CX
              POP       BX
              POP       AX
              RET
      DELAY3  ENDP
  INTERRUPT3  PROC      FAR
              PUSHF
              PUSH      AX
              PUSH      DS
              MOV       AX,DATA
              MOV       DS,AX
              MOV       INTFLAG,1
              MOV       AL,20H      ;EOI
              OUT       20H,AL
              POP       DS
              POP       AX
              POPF
              IRET
  INTERRUPT3  ENDP
 ;******************************
        CODE  ENDS
              END       START

⌨️ 快捷键说明

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