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

📄 8259.txt

📁 8259A中断实验每按动一次SP按钮
💻 TXT
字号:
CODE SEGMENT
ASSUME CS:CODE
INTPORT1 EQU 0020H ;中断号
INTPORT2 EQU 0021H
IOCONPT EQU 0073H ;8255A 控制字端口地址
IOAPT EQU 0070H   ;8255A PA端口地址
IOBPT EQU 0071H   ;8255A PB端口地址
IOCPT EQU 0072H   ;8255A PC端口地址
CONTPORT EQU 00DFH
DATAPORT EQU 00DEH
DATA1 EQU 0500H
      ORG 1000H
      JMP START
START: CALL FORMAT
       CALL LEDDISP
       MOV AX,0H
       MOV DS,AX
       CALL WRINTVER;置中断矢量
       MOV DX,73H
       MOV AL,81H
       OUT DX,AL
       MOV AL,13H
       OUT INTPORT1,AL
       MOV AL,08H
       OUT INTPORT2,AL
       MOV AL,01H
       OUT INTPORT2,AL
       MOV AL,0F7H
       OUT INTPORT2,AL
       mov byte ptr cs:[600H],0
       STI
WATING:JMP WATING
WRINTVER: MOV AX,0H
          MOV ES,AX
          MOV DI,002CH
          LEA AX,INTIRQ3
          STOSW
          MOV AX,CS
          STOSW
          RET
INTIRQ3: PUSH AX
         push dx
         push di
         CLI
         mov al,byte ptr cs:[600h]
;         mov al,01h
;     a:  not al
;         and al,01h
         mov dx,IOBPT
         out dx,al
         not byte ptr cs:[600h]
         MOV aL,20H
         MOV DX,INTPORT1
         OUT DX,aL
         STI
         pop di
         pop dx
         POP AX
         IRET
LEDDISP: MOV AL,90H
         MOV DX,CONTPORT
         OUT DX,AL
         MOV BYTE PTR DS:[0600H],00
LED1:    CMP BYTE PTR DS:[0600H],07H
         JA LED2
         MOV BL,DS:[0600H]
         MOV BH,0H
         MOV AL,CS:[BX+DATA1]
         MOV DX,DATAPORT
         OUT DX,AL
         ADD BYTE PTR DS:[0600H],01H
         JNZ LED1
LED2:    RET
FORMAT:  MOV BX,0
         MOV WORD PTR DS:[BX+DATA1],3F4FH
         ADD BX,2
         MOV WORD PTR DS:[BX+DATA1],4077H
         ADD BX,2
         MOV WORD PTR DS:[BX+DATA1],6D6FH
         ADD BX,2
         MOV WORD PTR DS:[BX+DATA1],7F5BH
         RET
CODE     ENDS 
         END START

⌨️ 快捷键说明

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