disint.s

来自「嵌入式操作系统T-Kernel 完整代码」· S 代码 · 共 59 行

S
59
字号
/* *---------------------------------------------------------------------- *    T-Kernel * *    Copyright (C) 2004 by Ken Sakamura. All rights reserved. *    T-Kernel is distributed under the T-License. *---------------------------------------------------------------------- * *    Version:   1.01.00 *    Released by T-Engine Forum(http://www.t-engine.org) at 2004/6/28. * *---------------------------------------------------------------------- *//* *	@(#)disint.S (libtk/M32104) * *	Enable/disable external interrupt  */#include <machine.h>#include <tk/sysdef.h>/* * Disable external interrupt  * UINT disint( void ) *	PSW.IE = 0; return value is ~PSW prior to change. */	.text	.balign	4	.globl	Csym(disint)	.type	Csym(disint), @functionCsym(disint):	mvfc	r0, psw	ldi	r1, #~PSW_IE	and	r1, r0	not	r0, r0	mvtc	r1, psw	jmp	lr/* * Enable external interrupt (restore to original state) * UINT enaint( UINT intsts ) *	PSW.IE = ~intsts.IE;  Only PSW.IE changes; all else remains unchanged.  *	The return value is ~PSW prior to the change. */	.text	.balign	4	.globl	Csym(enaint)	.type	Csym(enaint), @functionCsym(enaint):	mvfc	r4, psw	and3	r5, r0, #PSW_IE	or3	r6, r4, #PSW_IE	not	r0, r4	xor	r6, r5	mvtc	r6, psw	jmp	lr

⌨️ 快捷键说明

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