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

📄 5.2.asm

📁 本程序是一个8254,8259的中断调用程序组,可以实现时钟的调用,中断时可以进行外部的处理.
💻 ASM
字号:
;----------------
;编译模式="DOS"
;----------------
.model small
.stack 200h
.data
 KEEP21 DB ?
 KEEPA1 DB ?
 COUNT DB 10
 MSG1 DB 'THIS IS A 8259A INTERRUPT!',13,10,'$'
.CODE
START:
		MOV AX,@DATA
		MOV DS,AX
		CLI
		MOV AH,35H
		MOV AL,0BH
		INT 21H
		PUSH ES
		PUSH BX
		PUSH DS
		MOV AX,SEG INTPROC
		MOV DS,AX
		MOV DX,OFFSET INTPROC
		MOV AH,25H
		MOV AL,71H
		INT 21H
		POP DS
		IN AL,0A1H
		MOV KEEPA1,AL
		MOV AL,0FDH
		OUT 0A1H,AL
		IN AL,21H
		MOV KEEP21,AL
		AND AL,0F9H
		OUT 21H,AL
		MOV BX,10
		STI
WAIT1:CALL INTPROC
		DEC BX
		CMP BX,0
		JNZ WAIT1
		MOV AL,KEEP21
		OUT 21H,AL
		POP DX
		POP DS
		MOV AH,25H
		MOV AL,0BH
		INT 21H
		MOV AH,4CH
		INT 21H
		RET
INTPROC	PROC NEAR
		STI
		PUSH DS
		PUSH AX
		PUSH BX
		MOV AX,@DATA
		MOV DS,AX
		MOV AH,07H
		INT 10H
		MOV AH,02H
		MOV BH,1
		MOV DH,05
		MOV DL,10
		INT 10H
		MOV AH,02H
		MOV BH,2
		MOV DH,20
		MOV DL,65
		INT 10H
		MOV DX,OFFSET MSG1
		MOV AH,9
		INT 21H
		CLI
		MOV AL,20H
		OUT 20H,AL
		OUT 0A0H,AL
		POP BX
		POP AX
		POP DS
		STI
		IRET
INTPROC	ENDP
END	START

⌨️ 快捷键说明

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