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

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

8259DMA interrupt

时间: 2024-10-14 03:51:47

8259DMA interrupt的相关文章

distributor之Interrupt Priority Registers, GICD_IPRIORITYRn

这组寄存器主要是用来设置中断的优先级,每个寄存器可以设置4个中断的优先级,每个中断对应8个bit位,由此可知每个中断的优先级的设置值最大为255,最小为0,数值越小,表示中断优先级越高,寄存器相对于distributor基地址的偏移区间为0x400-0x7f8: 此组寄存器的个数由GICD_TYPER.ITLinesNumber 的值决定,为(8 * (GICD_TYPER.ITLinesNumber+1))个: 每个寄存器划分的4个设置域为: [31:24] Priority, byte of

TI C66x DSP 系统events及其应用 - 5.3(Interrupt)

对于TI C66x DSP的每个CPU有INT4~15共12个中断输入.对于中断,event combiner将INTC的输入event 4~127分为4个组(event 0~3为INTC内部使用,如图示为event combiner的四个输出),然后event 0~127作为Interrupt Selector的输入.类似于4.x中的exception,中断也有同样功能的event flag,event mask,masked event flag寄存器. Interrupt Seclctor

distributor之Interrupt Set/Clear-Active Registers, GICD_IS/CACTIVERn

set active寄存器.顾名思义就是把一个中断置为active状态,clear active寄存器就是清除active状态,在这里我们有必要说明一下中断状态的一些概念: active状态:假设此时处理器正在处理这个中断的处理函数.那么我们能够说此时这个中断处于active状态. pending状态:假设此时一个中断已经产生,可是处理器还未处理,那么我们能够说此时这个中断处于pending状态: inactive状态:假设一个中断既不是active状态也不是pending状态,那么就称之为处于

PIC32MZ tutorial -- OC Interrupt

In my previous blog "PIC32MZ tutorial -- Output Compare", I shows how to apply Output Compare without interrupt to generate PWM signal. I also tried the Output Compare interrupt. I selected OC to be PWM mode without fault pin (OCM = "110&qu

interrupt、interrupted 、isInterrupted 区别

       线程中断是一种协作机制,线程可以通过这种机制来通知另一个线程,告诉他在合适的或者可能的情况下停止当前工作,并转而执行其他的工作.       通过中断并不能直接终止另一个线程,而需要被中断的线程自己处理中断. 这好比是家里的父母叮嘱在外的子女要注意身体,但子女是否注意身体,怎么注意身体则完全取决于自己. ‍‍‍‍‍‍‍每一个线程都有一个boolean类型的中断状态.当中断线程时,这个线程的中断状态将被设置为true.‍‍‍‍‍‍‍在Thread中包含了中断线程以及查询线程中断状态的

停止Java线程,小心interrupt()方法

程序是很简易的.然而,在编程人员面前,多线程呈现出了一组新的难题,如果没有被恰当的解决,将导致意外的行为以及细微的.难以发现的错误. 在本篇文章中,我们针对这些难题之一:如何中断一个正在运行的线程. 背景     中断(Interrupt)一个线程意味着在该线程完成任务之前停止其正在进行的一切,有效地中止其当前的操作.线程是死亡.还是等待新的任务或是继续运行至下一步,就取决于这个程序.虽然初次看来它可能显得简单,但是,你必须进行一些预警以实现期望的结果.你最好还是牢记以下的几点告诫. 首先,忘掉

In order to use an interrupt in a Cortex-M3/M4, you need the following

a stack. The core automatically saves several registers on the stack when an interrupt fires. Initial stack pointer value is read from address 0x0 the first thing when the core starts up. That value should normally equal to the end of RAM + 1. correc

java基础:线程方法之interrupt和sleep

一:直接看demo 输出结果: -------Tue Feb 03 19:57:02 CST 2015---- -------Tue Feb 03 19:57:03 CST 2015---- -------Tue Feb 03 19:57:04 CST 2015---- -------Tue Feb 03 19:57:05 CST 2015---- -------Tue Feb 03 19:57:06 CST 2015---- -------Tue Feb 03 19:57:07 CST 201

distributor之Interrupt Processor Targets Registers, GICD_ITARGETSRn

此组寄存器主要设置某个中断对应的目标处理器,即某个中断应该发往哪个处理器进行处理:和上一组优先级设置寄存器一样,本组寄存器同样是每个寄存器可以设置4个中断的目标处理器,每个中断有8个bit位可进行设置:此组寄存器的个数同样也由GICD_TYPER.ITLinesNumber决定,为(8*(GICD_TYPER.ITLinesNumber+1))个. 相对偏移区间为0x800-0xbf8:每个寄存器的域划分为: [31:24] CPU targets, byte offset 3 [23:16]