📄 8259.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 + -