setjmp.s

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· S 代码 · 共 30 行

S
30
字号
TEXT	longjmp(SB), $0	MOVL	r+4(FP), AX	CMPL	AX, $0	JNE	ok		/* ansi: "longjmp(0) => longjmp(1)" */	MOVL	$1, AX		/* bless their pointed heads */ok:	MOVL	l+0(FP), BX	MOVL	0(BX), SP	/* restore sp */	MOVL	4(BX), BX	/* put return pc on the stack */	MOVL	BX, 0(SP)	RETTEXT	setjmp(SB), $0	MOVL	l+0(FP), AX	MOVL	SP, 0(AX)	/* store sp */	MOVL	0(SP), BX	/* store return pc */	MOVL	BX, 4(AX)	MOVL	$0, AX		/* return 0 */	RETTEXT	sigsetjmp(SB), $0	MOVL	buf+0(FP), AX	MOVL	savemask+4(FP),BX	MOVL	BX,0(AX)	MOVL	$_psigblocked(SB),4(AX)	MOVL	SP, 8(AX)	/* store sp */	MOVL	0(SP), BX	/* store return pc */	MOVL	BX, 12(AX)	MOVL	$0, AX		/* return 0 */	RET

⌨️ 快捷键说明

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