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

📄 tfcl.asm

📁 大学微机原理课程设计之一-------交通灯 源码。比较作孽
💻 ASM
📖 第 1 页 / 共 4 页
字号:
;电子0303    田里      20034972
;交通灯************************
        DATA  SEGMENT
        DAT0  DB        ' r  : Time Restore.',0DH,0AH,'$'
        DAT1  DB        ' c  : Change The N-S GREEN TIME .',0DH,0AH,'$'
        DAT2  DB        '#'
        DAT3  DB        ' d  : Change The W-E GREEN TIME .',0DH,0AH,'$'
        DAT4  DB        'ESC : QUIT .',0DH,0AH,'$'
        DAT5  DB        'PLEASE INPUT SECONDS(<99):',0DH,0AH,'$'
        DAT6  DB        '*********************         *********************','$'
        DAT7  DB        '                    *         *  ','$'
        DAT8  DB        ' n  : NIGHT CONTROL(NEXT MOD).',0DH,0AH,'$'
        DAT9  DB        '    Design By TianLi (Elec.0303|20034972)  ',0DH,0AH,'$'
       DAT10  DB        '        Press ENTER into the program !      ' ,0DH,0AH,'$'
       DAT11  DB        '           And Press ESC to Quit           ',0DH,0AH,'$'
       DAT12  DB        '      This is a Traffic Lights Program      ',0DH,0AH,'$'
       DAT13  DB        ' e  : COLOR FAST CHANGE.',0DH,0AH,'$'
         RED  DB        04H
       GREEN  DB        02H
       WHITE  DB        0FH
        WHIT  DB        0FH
      YELLOW  DB        8EH
   UPPER_ROW  DB        1
   UPPER_COL  DB        24
   UNDER_ROW  DB        9
   UNDER_COL  DB        24
    LEFT_ROW  DB        5
    LEFT_COL  DB        1
   RIGHT_ROW  DB        5
   RIGHT_COL  DB        47
     INTFLAG  DB        0
       COUNT  DB        18
      SECOND  DB        0
     OLD_SEG  DW        ?
     OLD_OFF  DW        ?
     OLD_MSK  DB        ?
          NS  DB        20H
          WE  DB        20H
          N1  DB        8EH
          N2  DB        0FH
          N3  DB        0
         LEE  DB        0
        DATA  ENDS
;***************************************
       STACK  SEGMENT   STACK
         STA  DB        256 DUP(?)
         TOP  EQU       $-STA
       STACK  ENDS
;************************************8
        CODE  SEGMENT
              ASSUME    CS:CODE,DS:DATA,SS:STACK
      START:  MOV       AX,DATA
              MOV       DS,AX
              MOV       AX,STACK
              MOV       SS,AX
              MOV       AX,TOP
              MOV       SP,AX
         A0:  MOV       AH,0        ;设置300*200彩色图形方式
              MOV       AL,3
              INT       10H
              MOV       AH,01H
              MOV       CX,2000H
              INT       10H
              MOV       AH,02H      ;定义首页
              MOV       DH,4
              MOV       DL,0
              MOV       BH,00H
              INT       10H
              MOV       AL,'*'
              MOV       BL,0EH
              MOV       AH,09H
              MOV       CX,2EH
              INT       10H
              MOV       AH,02H
              MOV       DH,8
              MOV       DL,14
              MOV       BH,00H
              INT       10H
              MOV       AL,'*'
              MOV       BL,WHITE
              MOV       AH,09H
              MOV       CX,1CH
              INT       10H
              MOV       AH,02H
              MOV       DH,5
              MOV       DL,0
              MOV       BH,00H
              INT       10H
              MOV       AH,09H
              MOV       DX,OFFSET DAT12
              INT       21H
              MOV       AH,09H
              MOV       DX,OFFSET DAT10
              INT       21H
              MOV       AH,09H
              MOV       DX,OFFSET DAT11
              INT       21H
              MOV       AH,09H
              MOV       DX,OFFSET DAT9
              INT       21H
              MOV       AL,'*'
              MOV       BL,0EH
              MOV       AH,09H
              MOV       CX,2DH
              INT       10H
              MOV       AH,0BH
              INT       21H
              CMP       AL,00H
              JNZ       A0
              MOV       AH,08H
              INT       21H
              CMP       AL,0DH
              JZ        REAL
              CMP       AL,1BH
              JZ        QUIT
              JMP       A0
       QUIT:  MOV       AH,4CH
              INT       21H
       REAL:  MOV       AX,0600H
              MOV       CX,0000H
              MOV       DX,184FH
              MOV       BH,07H
              INT       10H
;*************************************************
         A1:  MOV       AH,02H
              MOV       DH,12
              MOV       DL,10
              MOV       BH,00H
              INT       10H
              MOV       AH,09H
              MOV       DX,OFFSET DAT0
              INT       21H
              MOV       AH,02H
              MOV       DH,3
              MOV       DL,0
              MOV       BH,00H
              INT       10H
              MOV       AH,09H
              MOV       DX,OFFSET DAT6
              INT       21H
              MOV       AH,02H
              MOV       DH,7
              MOV       DL,0
              MOV       BH,00H
              INT       10H
              MOV       AH,09H
              MOV       DX,OFFSET DAT6
              INT       21H
              MOV       CL,0
         A2:  MOV       AH,02H
              MOV       DH,CL
              MOV       DL,0
              MOV       BH,00H
              INT       10H
              MOV       AH,09H
              MOV       DX,OFFSET DAT7
              INT       21H
              INC       CL
              CMP       CL,3H
              JNZ       A2
              MOV       CL,8
         A3:  MOV       AH,02H
              MOV       DH,CL
              MOV       DL,0
              MOV       BH,00H
              INT       10H
              MOV       AH,09H
              MOV       DX,OFFSET DAT7
              INT       21H
              INC       CL
              CMP       CL,0CH
              JNZ       A3
              MOV       AH,02H
              MOV       DH,13
              MOV       DL,10
              MOV       BH,00H
              INT       10H
              MOV       AH,09H
              MOV       DX,OFFSET DAT1
              INT       21H
              MOV       AH,02H
              MOV       DH,14
              MOV       DL,10
              MOV       BH,00H
              INT       10H
              MOV       AH,09H
              MOV       DX,OFFSET DAT3
              INT       21H
              MOV       AH,02H
              MOV       DH,15
              MOV       DL,10
              MOV       BH,00H
              INT       10H
              MOV       AH,09H
              MOV       DX,OFFSET DAT8
              INT       21H
              MOV       AH,02H
              MOV       DH,16
              MOV       DL,10
              MOV       BH,00H
              INT       10H
              MOV       AH,09H
              MOV       DX,OFFSET DAT4
              INT       21H
              MOV       AH,02H
              MOV       DH,11
              MOV       DL,10
              MOV       BH,00H
              INT       10H
              MOV       AH,09H
              MOV       DX,OFFSET DAT13
              INT       21H
             CMP       LEE,1
              JZ        A5
              CALL      MOD1
              CMP       LEE,1
              JZ        A4
              CALL      MOD3
              CALL      MOD2
              CMP       LEE,1
              JZ        A4
              CALL      MOD3
              JMP       A4
         A5:  CALL      MOD2
              CMP       LEE,0
              JZ        A4
              CALL      MOD3
              CALL      MOD1
              CMP       LEE,0
              JZ        A4
              CALL      MOD3
         A4:  JMP       A1
;********************************************* 灯颜色和位置设置1
        MOD1  PROC      NEAR
              MOV       CX,03H
              CALL      NORTH1
              MOV       CX,03H
              CALL      SOUTH1
              MOV       CX,03H
              CALL      WEST1
              MOV       CX,03H
              CALL      EAST1
              CALL      DELAY1
              RET
        ;*************************************  NORTH1
      NORTH1  PROC      NEAR
              MOV       BL,UPPER_ROW
              PUSH      BX
              MOV       BL,UPPER_COL
              PUSH      BX
    NORTH_1:  MOV       AH,02H
              MOV       DH,UPPER_ROW
              MOV       DL,UPPER_COL
              MOV       BH,00H
              INT       10H
              CMP       CX,03H
              JZ        NORTH_1_A1
              CMP       CX,02H
              JZ        NORTH_1_A3
              CMP       CX,01H
              JZ        NORTH_1_A2
 NORTH_1_A1:  PUSH      CX
              MOV       DI,SEG DAT2
              MOV       ES,DI
              MOV       BP,OFFSET DAT2
              MOV       AL,00H
              MOV       BL,RED
              MOV       AH,13H
              MOV       CX,01H
              INT       10H
              INC       UPPER_COL
              POP       CX
              LOOP      NORTH_1
 NORTH_1_A3:  PUSH      CX
              MOV       DI,SEG DAT2
              MOV       ES,DI
              MOV       BP,OFFSET DAT2
              MOV       AL,00H
              MOV       BL,WHIT
              MOV       AH,13H
              MOV       CX,01H
              INT       10H
              INC       UPPER_COL
              POP       CX
              LOOP      NORTH_1
 NORTH_1_A2:  PUSH      CX
              MOV       DI,SEG DAT2
              MOV       ES,DI
              MOV       BP,OFFSET DAT2
              MOV       AL,00H
              MOV       BL,WHITE
              MOV       AH,13H
              MOV       CX,01H
              INT       10H
              INC       UPPER_COL
              POP       CX
              LOOP      R_N1
       R_N1:  POP       BX
              MOV       UPPER_COL,BL
              POP       BX
              MOV       UPPER_ROW,BL
              RET
      NORTH1  ENDP
   ;*************************************  灯颜色和位置设置1
      SOUTH1  PROC      NEAR
              MOV       BL,UNDER_ROW
              PUSH      BX
              MOV       BL,UNDER_COL
              PUSH      BX
    SOUTH_1:  MOV       AH,02H
              MOV       DH,UNDER_ROW
              MOV       DL,UNDER_COL
              MOV       BH,00H
              INT       10H
              CMP       CX,03H
              JZ        SOUTH_1_A1
              CMP       CX,02H
              JZ        SOUTH_1_A3
              CMP       CX,01H
              JZ        SOUTH_1_A2
 SOUTH_1_A1:  PUSH      CX
              MOV       DI,SEG DAT2
              MOV       ES,DI
              MOV       BP,OFFSET DAT2
              MOV       AL,00H
              MOV       BL,RED
              MOV       AH,13H
              MOV       CX,01H
              INT       10H
              INC       UNDER_COL
              POP       CX
              LOOP      SOUTH_1
 SOUTH_1_A3:  PUSH      CX
              MOV       DI,SEG DAT2
              MOV       ES,DI
              MOV       BP,OFFSET DAT2
              MOV       AL,00H
              MOV       BL,WHIT
              MOV       AH,13H
              MOV       CX,01H
              INT       10H
              INC       UNDER_COL
              POP       CX
              LOOP      SOUTH_1
 SOUTH_1_A2:  PUSH      CX
              MOV       DI,SEG DAT2
              MOV       ES,DI
              MOV       BP,OFFSET DAT2
              MOV       AL,00H
              MOV       BL,WHITE
              MOV       AH,13H
              MOV       CX,01H
              INT       10H
              INC       UNDER_COL
              POP       CX
              LOOP      R_S1
       R_S1:  POP       BX
              MOV       UNDER_COL,BL
              POP       BX
              MOV       UNDER_ROW,BL
              RET
      SOUTH1  ENDP
 ;*************************************  WEST 1
       WEST1  PROC      NEAR
              MOV       BL,LEFT_ROW
              PUSH      BX
              MOV       BL,LEFT_COL
              PUSH      BX
     WEST_1:  MOV       AH,02H
              MOV       DH,LEFT_ROW
              MOV       DL,LEFT_COL
              MOV       BH,00H
              INT       10H
              CMP       CX,03H
              JZ        WEST_1_A1
              CMP       CX,02H
              JZ        WEST_1_A3
              CMP       CX,01H
              JZ        WEST_1_A2
  WEST_1_A1:  PUSH      CX
              MOV       DI,SEG DAT2
              MOV       ES,DI
              MOV       BP,OFFSET DAT2
              MOV       AL,00H
              MOV       BL,WHITE
              MOV       AH,13H
              MOV       CX,01H
              INT       10H
              INC       LEFT_COL
              POP       CX
              LOOP      WEST_1
  WEST_1_A3:  PUSH      CX
              MOV       DI,SEG DAT2
              MOV       ES,DI
              MOV       BP,OFFSET DAT2

⌨️ 快捷键说明

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