8259DMA interrupt

SSTACK	SEGMENT STACK
		DW 32 DUP(?)
SSTACK	ENDS
CODE	SEGMENT
		ASSUME CS:CODE
START:	PUSH DS
		MOV AX, 0000H
		MOV DS, AX
		MOV	AX, OFFSET MIR7
		MOV SI, 003CH				;0FH
		MOV [SI], AX
		MOV AX, CS
		MOV SI, 003EH
		MOV [SI], AX
		MOV AX, OFFSET MIR6
		MOV SI, 00001110B*4			;0EH
		MOV [SI], AX
		MOV AX, CS
		MOV SI, 00001110B*4+2
		MOV [SI], AX
		
		CLI
		POP DS
		;INIT THE MAIN
		MOV AL, 11H
		OUT 20H, AL
		MOV AL, 08H
		OUT 21H, AL
		MOV AL, 04H
		OUT 21H, AL
		MOV AL, 01H
		OUT 21H, AL
		MOV AL, 2FH		;00101111B
		OUT 21H, AL
		STI
AA1:	NOP
		JMP AA1
MIR7:	PUSH AX
		STI
		MOV AH, 01H
		MOV AL, '7'
		INT 10H
		MOV AH, 01H
		MOV AL, ' '
		INT 10H
		MOV AL, 20H			;ABLE TO INTERUPTE
		OUT 20H, AL
		POP AX
		IRET
MIR6:	PUSH AX
		STI
		MOV AH, 01H
		MOV AL, '6'
		INT 10H
		MOV AH, 01H
		MOV AL, ' '
		INT 10H
		MOV AL, 20H			;ABLE TO INTERUPTE
		OUT 20H, AL
		POP AX
		IRET
CODE	ENDS
		END START



8259主从片中断,i386

SSTACK	SEGMENT STACK
		DW 32 DUP(?)
SSTACK	ENDS
CODE	SEGMENT
		ASSUME CS:CODE
START:	PUSH DS
		MOV AX, 0000H
		MOV DS, AX
		MOV	AX, OFFSET MIR7
		MOV SI, 003CH
		MOV [SI], AX
		MOV AX, CS
		MOV SI, 003EH
		MOV [SI], AX
		MOV AX, OFFSET SIR1
		MOV SI, 00C4H
		MOV [SI], AX
		MOV AX, CS
		MOV SI, 00C6H
		MOV [SI], AX
		CLI
		POP DS
		;INIT THE MAIN 8259
		MOV AL, 11H
		OUT 20H, AL
		MOV AL, 08H
		OUT 21H, AL
		MOV AL, 04H
		OUT 21H, AL
		MOV AL, 01H
		OUT 21H, AL
		;INIT THE EXTRA 8259
		MOV AL, 11H
		OUT 0A0H, AL
		MOV AL, 30H
		OUT 0A1H, AL
		MOV AL, 02H
		OUT 0A1H, AL
		MOV AL, 01H
		OUT 0A1H, AL
		MOV AL, 0FDH
		OUT 0A1H, AL
		MOV AL, 6BH
		OUT 21H, AL
		STI
AA1:	NOP
		JMP AA1
MIR7:	PUSH AX
		MOV AX, 014DH
		INT 10H
		MOV AX, 0137H
		INT 10H
		MOV AX, 0120H
		INT 10H
		MOV AL, 20H
		OUT 20H, AL
		POP AX
		IRET
SIR1:	PUSH AX
		MOV AX, 0153H
		INT 10H				;S
		MOV AX, 0131H
		INT 10H				;SHOW THE 1
		MOV AX, 0120H
		INT 10H
		MOV AL, 20H
		OUT 0A0H, AL
		OUT 20H, AL
		POP AX
		IRET
CODE	ENDS
		END START


转载于:https://my.oschina.net/u/1017188/blog/333688

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值