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

📄 zh.asm

📁 用8255新片连接输入输出电路,输入设备是一组(8)个开关
💻 ASM
字号:
MY8255_A   EQU  9C60H
MY8255_B   EQU  9C61H
MY8255_C   EQU  9C62H
MY8255_M   EQU  9C63H
DATAS SEGMENT
X DB ?
DATAS ENDS
CODE  SEGMENT
   ASSUME  CS:CODE,DS:DATAS
START:
      MOV AX,DATAS
      MOV DS,AX
      MOV DX,MY8255_M
      MOV AL,82H
      OUT DX,AL
   A0:MOV DX,MY8255_B
       IN AL,DX
      MOV X,AL
      MOV DX,MY8255_A
      OUT DX,AL
     CALL DELAY
      XOR X,0FEH
       JZ CIRCUIT1
      MOV X,AL
      XOR X,0FDH
       JZ J2
      MOV X,AL
      XOR X,07EH
       JZ J3
      MOV X,AL
      XOR X,0BDH
       JZ J4
      MOV X,AL
      XOR X,07FH
       JZ J5
      MOV X,AL
      XOR X,0BFH
       JZ J6
      MOV X,AL
      XOR X,0FBH
       JZ J7  
      MOV X,AL
      XOR X,0DFH
       JZ J8
      MOV X,AL
      XOR X,0DBH
       JZ J9
      MOV X,AL
      XOR X,0E7H
       JZ J10
      MOV X,AL
      XOR X,0F7H
       JZ J11
      MOV X,AL
      XOR X,0EFH
       JZ J12
      JMP A0
   J2:JMP CIRCUIT2
CIRCUIT1:ROL   AL,1
         MOV   AH,AL
         MOV   DX,MY8255_A
         OUT   DX,AL
         CALL  DELAY
         MOV   DX,MY8255_B
         IN    AL,DX
         CMP   AL,0FEH
         JZ    JUMP1
         JMP   A0
   JUMP1:MOV   AL,AH
         JMP   CIRCUIT1
J3:JMP   CIRCUIT3
J4:JMP   CIRCUIT4
J5:JMP   CIRCUIT5
J6:JMP   CIRCUIT6
J7:JMP   CIRCUIT7
J8:JMP   CIRCUIT8
J9:JMP   CIRCUIT9
J10:JMP  CIRCUIT10
J11:JMP  CIRCUIT11
J12:JMP  CIRCUIT12
CIRCUIT2:    MOV    CL,2
             ROL    AL,CL
             MOV    AH,AL
             MOV    DX,MY8255_A            
             OUT    DX,AL
             CALL   DELAY
             MOV    DX,MY8255_B
             IN     AL,DX
             CMP    AL,0FDH
             JZ     JUMP2
             JMP    A0
       JUMP2:MOV    AL,AH
             JMP    CIRCUIT2
CIRCUIT3:    MOV    AL,0FEH
             MOV    BL,07FH
          C3:MOV    CL,1
             ROL    AL,CL
             ROR    BL,CL
             MOV    AH,AL
             AND    AL,BL
             MOV    DX,MY8255_A
             OUT    DX,AL
             CALL   DELAY
             MOV    DX,MY8255_B
             IN     AL,DX
             CMP    AL,07EH
             JZ     JUMP3
             JMP    A0
       JUMP3:MOV    AL,AH
             JMP    C3
CIRCUIT4:    MOV    AL,0FDH
             MOV    BL,0BFH
          C4:MOV    CL,2
             ROL    AL,CL
             ROR    BL,CL
             MOV    AH,AL
             AND    AL,BL
             MOV    DX,MY8255_A
             OUT    DX,AL
             CALL   DELAY
             MOV    DX,MY8255_B
             IN     AL,DX
             CMP    AL,0BDH
             JZ     JUMP4
             JMP    A0
       JUMP4:MOV    AL,AH
             JMP    C4
CIRCUIT5:      ROR  AL,1
               MOV  AH,AL
               MOV  DX,MY8255_A
               OUT  DX,AL
               CALL DELAY
               MOV  DX,MY8255_B
               IN   AL,DX
               XOR  AL,07FH
               JZ   JUMP5
               JMP  A0
         JUMP5:MOV  AL,AH
               JMP  CIRCUIT5

CIRCUIT6:      MOV  CL,2
               ROR  AL,CL
               MOV  AH,AL
               MOV  DX,MY8255_A
               OUT  DX,AL
               CALL DELAY
               MOV  DX,MY8255_B
               IN   AL,DX
               XOR  AL,0BFH
               JZ   JUMP6
               JMP  A0
         JUMP6:MOV  AL,AH
               JMP  CIRCUIT6
CIRCUIT7:      MOV  CL,3
               ROL  AL,CL
               MOV  AH,AL
               MOV  DX,MY8255_A
               OUT  DX,AL
               CALL DELAY
               MOV  DX,MY8255_B
               IN   AL,DX
               CMP  AL,0FBH
               JZ   JUMP7
               JMP  A0
         JUMP7:MOV  AL,AH
               JMP  CIRCUIT7
CIRCUIT8:      MOV  CL,3
               ROR  AL,CL
               MOV  AH,AL
               MOV  DX,MY8255_A
               OUT  DX,AL
               CALL DELAY
               MOV  DX,MY8255_B
               IN   AL,DX
               CMP  AL,0DFH
               JZ   JUMP8
               JMP  A0
         JUMP8:MOV  AL,AH
               JMP  CIRCUIT8
CIRCUIT9:      MOV  AL,0FBH
               MOV  BL,0DFH
         C9:   MOV  CL,3
               ROL  AL,CL
               ROR  BL,CL
               MOV  AH,AL
               AND  AL,BL
               MOV  DX,MY8255_A
               OUT  DX,AL
               CALL DELAY
               MOV  DX,MY8255_B
               IN   AL,DX
               CMP  AL,0DBH
               JZ   JUMP9
               JMP  A0
         JUMP9:MOV  AL,AH
               JMP  C9
CIRCUIT10:     MOV  AL,0FCH
               MOV  BL,03FH
        C10:   MOV  CL,2
               ROL  AL,CL
               ROR  BL,CL
               MOV  AH,AL
               AND  AL,BL
               MOV  DX,MY8255_A
               OUT  DX,AL
               CALL DELAY
               MOV  DX,MY8255_B
               IN   AL,DX
               CMP  AL,0E7H
               JZ   JUMP10
               JMP  A0
        JUMP10:MOV  AL,AH
               JMP  C10
CIRCUIT11:     MOV  AL,0FCH
         C11  :MOV  CL,2
               ROL  AL,CL
               MOV  AH,AL
               MOV  DX,MY8255_A
               OUT  DX,AL
               CALL DELAY
               MOV  DX,MY8255_B
               IN   AL,DX
               CMP  AL,0F7H
               JZ   JUMP11
               JMP  A0
        JUMP11:MOV  AL,AH
               JMP  C11
CIRCUIT12:     MOV  AL,03FH
         C12  :MOV  CL,2
               ROR  AL,CL
               MOV  AH,AL
               MOV  DX,MY8255_A
               OUT  DX,AL
               CALL DELAY
               MOV  DX,MY8255_B
               IN   AL,DX
               CMP  AL,0EFH
               JZ   JUMP12
               JMP  A0
        JUMP12:MOV  AL,AH
               JMP  C12
         DELAY:MOV  CX,0FFFH
            D1:MOV  DI,0FFFFH
            D2:DEC  DI
               JNZ  D2
              LOOP  D1
              RET
         CODE  ENDS
               END START

⌨️ 快捷键说明

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