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

📄 setjmp.s

📁 Newlib 嵌入式 C库 标准实现代码
💻 S
字号:
/* setjmp/longjmp routines for M68HC11 & M68HC12. * Copyright (C) 1999, 2000, 2001, 2002 Stephane Carrez (stcarrez@nerim.fr)	 * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice is included verbatim in any distributions. No written agreement, * license, or royalty fee is required for any of the authorized uses. * Modifications to this software may be copyrighted by their authors * and need not follow the licensing terms described here, provided that * the new terms are clearly indicated on the first page of each file where * they apply. */#if __INT__ == 32# define val 4# define INT32(X) X#else# define val 2# define INT32(X)#endif#ifdef mc6811# define REG(X) *X#else# define REG(X) X#endif	.sect .text	.global setjmp	.global longjmp#ifdef mc6811setjmp:	xgdx	tsy	ldd	0,y	std	0,x	sty	2,x	ldd	REG(_.frame)	std	4,x	ldd	REG(_.d1)	std	6,x	ldd	REG(_.d2)	std	8,x	ldd	REG(_.d3)	std	10,x	ldd	REG(_.d4)	std	12,x	ldd	REG(_.d5)	std	14,x	ldd	REG(_.d6)	std	16,x	ldd	REG(_.d7)	std	18,x	ldd	REG(_.d8)	std	20,xINT32(	ldx	#0)	clra	clrb	rts#elsesetjmp:	xgdx	movw	0,sp,2,x+	sts	2,x+	movw	_.frame,2,x+	movw	_.d1,2,x+	movw	_.d2,2,x+	movw	_.d3,2,x+	movw	_.d4,2,x+	movw	_.d5,2,x+	movw	_.d6,2,x+	movw	_.d7,2,x+	movw	_.d8,2,x+INT32(	ldx	#0)	clra	clrb	rts#endif#ifdef mc6811longjmp:	xgdx	tsy	ldd	val,y	bne	do_jump	ldd	#1do_jump:	xgdy	ldd	4,x	std	REG(_.frame)	ldd	6,x	std	REG(_.d1)	ldd	8,x	std	REG(_.d2)	ldd	10,x	std	REG(_.d3)	ldd	12,x	std	REG(_.d4)	ldd	14,x	std	REG(_.d5)	ldd	16,x	std	REG(_.d6)	ldd	18,x	std	REG(_.d7)	ldd	20,x	std	REG(_.d8)	ldd	0,x	ldx	2,x	txs	std	0,xINT32(	ldx	#0)	xgdy	rts#elselongjmp:	xgdx	ldy	val,sp	bne	do_jump	ldy	#1do_jump:	ldd	4,x+	movw	2,x+,_.frame	movw	0,x,_.d1	movw	2,x,_.d2	movw	4,x,_.d3	movw	6,x,_.d4	movw	8,x,_.d5	movw	10,x,_.d6	movw	12,x,_.d7	movw	14,x,_.d8	ldx	-4,x	txs	std	0,xINT32(	ldx	#0)	xgdy	rts#endif	

⌨️ 快捷键说明

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