📄 8259.asm
字号:
DATA SEGMENT
SEG7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
TIM DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
SAVE DW 2 DUP(?)
PORT53 EQU 280h
PORT59 EQU 20H
PORT EQU 2B0H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
MAIN PROC FAR
MOV AX,DATA
MOV DS,AX
MOV ES,AX
CLI
PUSH ES
MOV AH,35H
MOV AL,0BH
INT 21H
MOV SAVE ,BX
MOV SAVE+2,ES
POP ES
PUSH DS
MOV BX,SEG CLOCK
MOV DS,BX
MOV DX,OFFSET CLOCK
MOV AH,25H
MOV AL,0BH
INT 21H
POP DS
MOV DX,PORT53+3
MOV AL,00110111B
OUT DX,AL
MOV AX,1000H
MOV DX,PORT53
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV DX,PORT53+3
MOV AL,01110111B
OUT DX,AL
MOV AX,1000H
MOV DX,PORT53+1
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV DX,PORT59+1
IN AL,DX
PUSH AX
AND AL,11110111B
OUT DX,AL
STI
CALL DISP
PUSH DS
MOV DX,SAVE
MOV BX,SAVE+2
MOV DS,BX
MOV AL,0BH
MOV AH,25H
INT 21H
POP DS
POP AX
MOV DX,PORT59+1
OUT DX,AL
MOV AH,4CH
INT 21H
MAIN ENDP
CLOCK PROC FAR
CMP TIM,9
JZ L2
INC TIM
JMP EXIT
L2:MOV TIM,0
INC TIM+1
CMP TIM+1,6
JNZ EXIT
MOV TIM+1,0
INC TIM+2
CMP TIM+2,10
JNZ EXIT
MOV TIM+2,0
INC TIM+3
CMP TIM+3,6
JNZ EXIT
MOV TIM+3,0
INC TIM+4
CMP TIM+4,10
JNZ EXIT
MOV TIM+4,0
INC TIM+5
EXIT:MOV AL,20H
MOV DX,PORT59
OUT DX,AL
IRET
CLOCK ENDP
DISP PROC NEAR
MOV BP,00100000B
LEA SI,TIM
L0: MOV AH,1
INT 16H
JNZ L1
MOV AX,BP
MOV DX,PORT
OUT DX,AL
MOV DX,PORT+1
MOV AL,[SI]
LEA BX,SEG7
XLAT
OUT DX,AL
CALL DELAY
INC SI
ROR BP,1
CMP BP,10000000B
JNZ L0
MOV BP,00100000B
LEA SI,TIM
JMP L0
L1: RET
DISP ENDP
DELAY PROC NEAR
PUSH CX
MOV CX,0FF00H
LOOP $
POP CX
RET
DELAY ENDP
CODE ENDS
END MAIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -