📄 8253.txt
字号:
.MODEL SMALL
.DATA
save1 dw ?
save2 dw ?
KEEP1 DB ?
.STACK
.CODE
START: MOV AX,@DATA ;设置段基址
MOV DS,AX
CLI ;关系统中断
MOV AH,35H ;取系统的原中断向量
MOV AL,0BH ;IRQ3的中断类型号送AL
INT 21H
MOV SAVE1,BX ;保存系统的原 偏移地址
MOV SAVE2,ES ;保存系统的段基址
PUSH DS ;设置中断服务程序的入口地址
MOV AX,SEG INTPROC ;新中断向量送AX
MOV DS,AX
MOV DX,OFFSET INTPROC ; 中断服务程序偏移地址送DX
MOV AH,25H ;设置中断向量
MOV AL,0BH ;送IRQ3的中断向量号给AL
INT 21H
POP DS ;恢复DS
MOV DX,273H ;8253 定义通道0工作与方式3,按二进制计数
MOV AL,36H
OUT DX,AL
MOV DX,270H
MOV Ax,03E8H ;给通道0送计数初值1000
OUT DX,AL ;先送低字节
MOV AL,AH
OUT DX,AL ;再送高字节
IN AL,21H ;保存原屏蔽字
MOV KEEP1,AL
AND AL,0F7H ;开IRQ3中断屏蔽
;MOV AL,0BH
OUT 21H,AL
; MOV AH,06H ;设置光标位置
; MOV AL,0
; MOV BH,7
; MOV CX,1010H
; MOV DH,24
; MOV DL,79
; INT 10H
;MOV AX,03E8H
;MOV DX,0AAH
STI
NEXT1: MOV AH,01
INT 16H
JZ NEXT1
MOV DX,SAVE1 ;保存系统的原 偏移地址
MOV DS,SAVE2
MOV AH,25H
MOV AL,0FH
INT 21H
MOV AL,KEEP1
OUT 21H,AL
MOV AH,4CH
INT 21H
INTPROC PROC FAR
STI
; PUSH AX
; PUSH DX
PUSH DS
MOV AX,@DATA
MOV DS,AX
; POP AX
; DEC AX
; CMP AX,0
; JZ NEXT
; POP DX
; MOV BH,0
MOV DL,'*'
MOV AH,02H
;INC DL
INT 21H
MOV AL,20H
OUT 20H,AL
POP DS
IRET
INTPROC ENDP
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -