intr.asm

来自「基于ADI 公司的blackfin芯片的通用中断框架程序」· 汇编 代码 · 共 114 行

ASM
114
字号
.section program;


#include "intr.def"


.extern _ivg_isr;


_init_interrupt_vector:

	.global _init_interrupt_vector;

	[--sp] = r0;
	
	[--sp] = p0;
	
	[--sp] = p1;

	SAVE_LC0();
	
	
	LDREG(p0, _ivg_isr);
	
	p1 = (16 - 2);
	
	loop INIT_VECTOR_LOOP lc0 = p1;

	p0 += 8;
	
	LDREG(p1, IVG2);

		
	loop_begin INIT_VECTOR_LOOP;
	
	r0 = [p0++];
	
	[p1++] = r0;
	
	loop_end INIT_VECTOR_LOOP;
	
	
	POP_LC0();
	
	p1 = [sp++];
	
	p0 = [sp++];
	
	r0 = [sp++];
	
	rts;
	
_init_interrupt_vector.end:



_set_imask:

	.global _set_imask;
	
	[--sp] = p0;
	
	[--sp] = r1;
	
	LDREG(p0, imask);
	
	r1 = [p0];
	
	r0.h = 0;
	
	r1 = r1 | r0;
	
	[p0] = r1;
	
	r1 = [sp++];
	
	p0 = [sp++];
	
	rts;
	
_set_imask.end:



_clear_imask:

	.global _clear_imask;
	
	[--sp] = p0;
	
	[--sp] = r1;
	
	LDREG(p0, imask);
	
	r1 = [p0];
	
	r0.h = 0;
	
	r0 = ~r0;
	
	r1 = r0 & r1;
	
	[p0] = r1;
	
	r1 = [sp++];
	
	p0 = [sp++];
	
	rts;
	
_clear_imask.end:


⌨️ 快捷键说明

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