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

📄 trafficlight.asm

📁 在PC机上
💻 ASM
📖 第 1 页 / 共 3 页
字号:
       MOV  AL,0
REPE8: CALL HHH1
       CMP  CX,320
       JNZ  REPE8
       INC  DX
       CMP  DL,78
       JNZ  REPE7

       RET
XIAO4 ENDP



SOUND PROC NEAR
       PUSH AX
       PUSH BX
       PUSH CX
       PUSH DX
       PUSH DI
       MOV  AL,0B6H
       OUT  43H,AL
       MOV  DX,12H
       MOV  AX,3280H
       DIV  DI
       OUT  42H,AL
       MOV  AL,AH
       OUT  42H,AL
       IN   AL,61H
       MOV  AH,AL
       OR   AL,03H
       OUT  61H,AL
DELAY1:MOV  ECX,0AFFFFFH
DELAY2:LOOPD DELAY2
       DEC  BX
       JNZ  DELAY1
       MOV  AL,AH
       OUT  61H,AL
       POP  DI
       POP  DX
       POP  CX
       POP  BX
       POP  AX
       RET
SOUND  ENDP



T_1 PROC NEAR
       MOV  BP,SEG STR1
       MOV  ES,BP
       MOV  BP,OFFSET STR1

       MOV  CX,STR2-STR1
       MOV  DX,1
       MOV  BL,0EH
       MOV  AL,1

       MOV  AH,13H
       INT  10H
       MOV  BP,OFFSET STR2
       MOV  CX,STR3-STR2
       MOV  DH,24
       MOV  DL,8
       MOV  BL,0EH
       MOV  AL,1
       MOV  AH,13H
       INT  10H
       RET
T_1 ENDP

T_2 PROC NEAR
       MOV  BP,SEG STR1
       MOV  ES,BP
       MOV  BP,OFFSET STR3
       MOV  CX,STR4-STR3
       MOV  DH,24
       MOV  DL,8
       MOV  BL,0EH
       MOV  AL,1
       MOV  AH,13H
       INT  10H
    RET
T_2 ENDP

T_3 PROC NEAR0
       MOV  BX,0
       INT  10H

       MOV  DX,0
M0:    MOV  CX,0
M2:    MOV  AH,0CH
       MOV  AL,0
       INT  10H
       CMP  CX,319D
       JNE  M1
       INC  DX
       CMP  DX,200D
       JE   M3
       JMP  M0
M1:    INC  CX
       JMP  M2

M3:    MOV  BP,SEG STR5
       MOV  ES,BP
       MOV  BP,OFFSET STR5

       MOV  CX,STR6-STR5
       MOV  DX,2308
       MOV  BL,0EH
       MOV  AL,1

       MOV  AH,13H
       INT  10H

       MOV  BP,OFFSET STR6
       MOV  CX,STR7-STR6
       MOV  DX,5376
       MOV  BL,0EH
       MOV  AL,1
       MOV  AH,13H
       INT  10H

       MOV  BP,OFFSET STR7
       MOV  CX,LEN_STR7
       MOV  DX,5641
       MOV  BL,0EH
       MOV  AL,1
       MOV  AH,13H
       INT  10H
       RET
T_3 ENDP



DAI2 PROC NEAR
      PUSH AX
      PUSH BX
      PUSH CX
      PUSH DX
      PUSH SI
      MOV  AH,0CH
      MOV  DX,LINE9
      MOV  CX,CORLUM5
      MOV  SI,OFFSET CAR3_8X16DOT
      MOV  COUNT1,8
REP57:MOV  COUNT2,2
REP58:MOV  COUNT3,8
REP59:ROL  BYTE PTR [SI],1
      MOV  AL,0
      JNC  NEX11
      MOV  AL,9
NEX11:PUSH AX
      PUSH CX
      INT  10H
      POP  CX
      POP  AX
      INC  CX
      DEC  COUNT3
      JNZ  REP59
      INC  SI
      DEC  COUNT2
      JNZ  REP58
      INC  DX
      MOV  CX,CORLUM5
      DEC  COUNT1
      JNZ  REP57
      POP  SI
      POP  DX
      POP  CX
      POP  BX
      POP  AX
      RET
DAI2 ENDP



XIAN01 PROC NEAR
      MOV  BX,60
      CALL XIAN1
      ADD  BX,30
      CALL XIAN1
      RET
XIAN01 ENDP

XIAN02 PROC NEAR
      MOV  BX,220
      CALL XIAN1
      ADD  BX,30
      CALL XIAN1
      ADD  BX,30
      CALL XIAN1
      ADD  BX,30
      CALL XIAN1
      RET
XIAN02 ENDP

XIAN03 PROC NEAR
      MOV  BX,0
      CALL XIAN2
      ADD  BX,25
      CALL XIAN2
      ADD  BX,25
      CALL XIAN2

      MOV  BX,130
      CALL XIAN2
      ADD  BX,25
      CALL XIAN2
      ADD  BX,25
      CALL XIAN2
      ADD  BX,25
      CALL XIAN2
      RET
XIAN03 ENDP

XIAN1  PROC NEAR
      MOV  AH,0CH
      MOV  DX,96
      MOV  CX,BX
      MOV  SI,OFFSET XIAN1_8X16DOT
      MOV  COUNT1,8
REP60:MOV  COUNT2,2
REP61:MOV  COUNT3,8
REP62:ROL  BYTE PTR [SI],1
      MOV  AL,0
      JNC  NEX12
      MOV  AL,15
NEX12:PUSH AX
      PUSH CX
      INT  10H
      POP  CX
      POP  AX
      INC  CX
      DEC  COUNT3
      JNZ  REP62
      INC  SI
      DEC  COUNT2
      JNZ  REP61
      INC  DX
      MOV  CX,BX
      DEC  COUNT1
      JNZ  REP60
      RET
XIAN1 ENDP

XIAN2 PROC NEAR
      MOV  AH,0CH
      MOV  DX,BX
      MOV  CX,158
      MOV  SI,OFFSET XIAN2_16X8DOT
      MOV  COUNT1,16
REP63:MOV  COUNT2,1
REP64:MOV  COUNT3,8
REP65:ROL  BYTE PTR [SI],1
      MOV  AL,0
      JNC  NEX13
      MOV  AL,15
NEX13:PUSH AX
      PUSH CX
      INT  10H
      POP  CX
      POP  AX
      INC  CX
      DEC  COUNT3
      JNZ  REP65
      INC  SI
      DEC  COUNT2
      JNZ  REP64
      INC  DX
      MOV  CX,158
      DEC  COUNT1
      JNZ  REP63
      RET
XIAN2 ENDP        

TIMER PROC NEAR

      CLI
      PUSH DS
      PUSH AX
      MOV  AX,DATA
      MOV  DS,AX
      INC  COUNT_TIME
      MOV  AL,20H
      OUT  20H,AL
TIMER1:STI
      POP  AX
      POP  DS
      IRET
TIMER ENDP



A1 PROC NEAR
   PUSH DX
   MOV DX,208H
   IN AL,DX
   POP DX
   AND AL,0F0H
   CMP AL,0F0H
   RET
A1 ENDP


B1 PROC NEAR
  PUSH AX
  PUSH CX
  INT 10H
  POP CX
  POP AX
  INC CX 
  DEC COUNT3
  RET
B1 ENDP


C1 PROC NEAR
  MOV AH,0DH
  INT 10H
  MOV AH,0CH
  PUSH CX
  DEC CX
  INT 10H
  POP CX
  INC DX
  DEC COUNT3
  RET
C1 ENDP


D1 PROC NEAR
  PUSH DX
  MOV DX,208H
  IN AL,DX
  MOV AH,AL
  POP DX
  AND AL,0F0H
  CMP AL,0F0H
  RET
D1 ENDP


E1 PROC NEAR
  MOV AL,AH
  AND AL,0FH
  CMP AL,0FH
  RET 
E1 ENDP


F1 PROC NEAR
  MOV AH,0DH
  INT 10H
  MOV AH,0CH
  PUSH DX

PUSH CX
      MOV ECX,0000FFFFH
DDD3:  LOOPD DDD3
      POP CX

  INC DX
  INT 10H
  POP DX

PUSH CX
      MOV ECX,0000FFFFH
DDD4:  LOOPD DDD4
      POP CX

  INC CX
  DEC COUNT3
  RET
F1 ENDP


HHH1 PROC NEAR
  PUSH AX
  INT 10H
  POP AX
  INC CX
  RET
HHH1 ENDP

NN1 PROC NEAR
  MOV AH,0DH
  INT 10H
  MOV AH,0CH
  PUSH DX

PUSH CX
      MOV ECX,0000FFFFH
DDD5:  LOOPD DDD5
      POP CX
  DEC DX
  INT 10H
  POP DX

PUSH CX
      MOV ECX,0000FFFFH
DDD6:  LOOPD DDD6
      POP CX
  INC CX
  DEC COUNT3
  RET
NN1 ENDP

WRITE1  PROC NEAR
     LEA SI,MS
     MOV AL,[SI]
     ADD AL,1
     DAA
     MOV [SI],AL
     MOV BL,AL
     AND AL,0F0H
     ROR AL,4
     ADD AL,30H
     DAA 
     LEA SI,AMS
     MOV [SI],AL
     MOV AL,BL
     AND AL,0FH
     ADD AL,30H
     DAA
     INC SI
     MOV [SI],AL
     
      MOV  BP,SEG AMS
      MOV  ES,BP
      MOV  BP,OFFSET AMS

       MOV  CX,2
       MOV DH,20
       MOV DL,23
       MOV  BL,0EH
       MOV  AL,1

       MOV  AH,13H
       INT  10H      
      RET
WRITE1  ENDP

WRITE2  PROC NEAR
     LEA SI,MN
     MOV AL,[SI]
     ADD AL,1
     DAA
     MOV [SI],AL
     MOV BL,AL
     AND AL,0F0H
     ROR AL,4
     ADD AL,30H
     DAA 
     LEA SI,AMN
     MOV [SI],AL
     MOV AL,BL
     AND AL,0FH
     ADD AL,30H
     DAA
     INC SI
     MOV [SI],AL
     
      MOV  BP,SEG AMN
      MOV  ES,BP
      MOV  BP,OFFSET AMN

       MOV  CX,2
       MOV DH,5
       MOV DL,16
       MOV  BL,0EH
       MOV  AL,1

       MOV  AH,13H
       INT  10H         
      RET
WRITE2  ENDP

WRITE3  PROC NEAR
     LEA SI,NW
     MOV AL,[SI]
     ADD AL,1
     DAA
     MOV [SI],AL
     MOV BL,AL
     AND AL,0F0H
     ROR AL,4
     ADD AL,30H
     DAA 
     LEA SI,ANW
     MOV [SI],AL
     MOV AL,BL
     AND AL,0FH
     ADD AL,30H
     DAA
     INC SI
     MOV [SI],AL
     
      MOV  BP,SEG ANW
      MOV  ES,BP
      MOV  BP,OFFSET ANW

       MOV  CX,2
       MOV DH,14
       MOV DL,5
       MOV  BL,0EH
       MOV  AL,1

       MOV  AH,13H
       INT  10H       
      RET
WRITE3  ENDP

GR1  PROC NEAR
     PUSH DX
     PUSH CX
     PUSH AX
     PUSH SI
     STI
     MOV COUNT_TIME,0D
     CALL XIAO1
     CALL XIAO2
     CALL XIAO3
     CALL XIAO4
     CALL MIE1
     CALL MIE2
     CALL MIE3
     CALL MIE4
     CALL MIE5
     CALL MIE6
Z_D5:CALL DENG3
     CALL DENG4
     CALL CARGANDOWN2
     CALL WRITE1
      CMP COUNT_TIME,180D
         JL Z_D5
         CLI
     CALL MIE3
     CALL MIE4
     POP SI
     POP AX
     POP CX
     POP DX
     JMP JX
     RET
GR1  ENDP

GR2  PROC NEAR
     PUSH DX
     PUSH CX
     PUSH AX
     PUSH SI
     STI
     MOV COUNT_TIME,0D
     CALL XIAO1
         CALL XIAO2
         CALL XIAO3
         CALL XIAO4
         CALL MIE1
         CALL MIE2
         CALL MIE3
         CALL MIE4
         CALL MIE5
         CALL MIE6
 Z_D6:   CALL DENG1
         CALL DENG6
         CALL CARZHIXIAN
         CALL WRITE3
         CMP COUNT_TIME,180D
         JL Z_D6
         CLI
         CALL MIE1
         CALL MIE6
     POP SI
     POP AX
     POP CX
     POP DX
     JMP JX
     RET
GR2  ENDP 

CAR01 PROC NEAR
    CALL A1
    
     MOV  AH,0CH
     MOV  DX,110
     MOV  CX,120
     MOV  SI,OFFSET CAR1_8X16DOT
     MOV  COUNT1,8
REP221:MOV COUNT2,2
REP231:MOV COUNT3,8
REP241:ROL BYTE PTR [SI],1
      MOV AL,0
      JNC NEX51
      MOV AL,1
NEX51: CALL B1
      JNZ  REP241
      INC  SI
      DEC  COUNT2
      JNZ  REP231
      INC  DX
      MOV  CX,120
      DEC  COUNT1
      JNZ  REP221
      RET
CAR01 ENDP

CAR02 PROC NEAR

       CALL D1

      MOV  AH,0CH
      MOV  DX,100
      MOV  CX,120
      MOV  SI,OFFSET CAR3_8X16DOT
      MOV  COUNT1,8
REP282:MOV  COUNT2,2
REP292:MOV  COUNT3,8
REP302:ROL  BYTE PTR [SI],1
      MOV  AL,0
      JNC  NEX62
      MOV  AL,14
NEX62: PUSH AX
      PUSH CX
      INT  10H
      POP  CX
      POP  AX
      INC  CX
      DEC  COUNT3
      JNZ  REP302
      INC  SI
      DEC  COUNT2
      JNZ  REP292
      INC  DX
      MOV  CX,120
      DEC  COUNT1
      JNZ  REP282     
      RET
CAR02 ENDP

BROKEN PROC NEAR
     KK2:  
         CALL CAR01
         CALL CAR02
         
         CALL MIE2
         CALL MIE3
         CALL MIE6

         CALL DENG1
         CALL DENG4
         
         MOV AH,1
         INT 16H
         MOV AH,0
         INT 16H
         CMP AL,08H
         JNE KK2
         JMP JX
         RET 
BROKEN ENDP
  
MAIN  ENDP
CODE  ENDS
END  START

⌨️ 快捷键说明

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