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

📄 exp.s

📁 Version 6 Unix 核心源代码 Version 6 Unix 核心源代码
💻 S
字号:
.globl exp, _exp/ldfps = 170100^tststfps = 170200^tstldexp = 176400^movifstexp = 175000^movfi//	exp accepts its argument and returns its result/	in fr0.  The carry bit is set if the result overflows./	The coefficients are #1067 from Hart & Cheney.//	movf	arg,fr0/	jsr	pc,exp/	movf	fr0,result/_exp:	mov	r5,-(sp)	mov	sp,r5	mov	4(r5),fr0	jsr	pc,exp	mov	(sp)+,r5	rts	pcexp:	stfps	-(sp)	ldfps	$200		/di mode	movf	fr2,-(sp)	movf	fr1,-(sp)	tstf	fr0	cfcc	bne	1f	movf	$one,fr0	/exp(0)	clc	br	out1:	modf	log2e,fr0	/exp(x) = 2^(x*log2(e))	cfcc	bmi	2f	movfi	fr1,-(sp)	/save integer part	subf	$half,fr0	br	3f2:	movfi	fr1,-(sp)	dec	(sp)	addf	$half,fr03:	movf	fr0,fr1		/ -.5 < x < +.5	mulf	fr1,fr1		/arg**2/	movf	P2,fr2	mulf	fr1,fr2	addf	P1,fr2	mulf	fr1,fr2	addf	P0,fr2	mulf	fr2,fr0		/xP(x**2)/	movf	fr1,fr2	addf	Q1,fr2	mulf	fr1,fr2	addf	Q0,fr2		/Q(x**2)/	movf	fr2,fr1	subf	fr0,fr1	addf	fr2,fr0	divf	fr1,fr0		/(Q+xP)/(Q-xP)	mulf	sqrt2,fr0/	stexp	fr0,-(sp)	add	(sp)+,(sp)/	cmp	(sp),$177	ble	2f	tst	(sp)+	movf	big,fr0		/overflow	sec	br	1f2:	cmp	(sp),$-177	bge	2f	tst	(sp)+	clrf	fr0		/underflow	clc	br	1f2:	ldexp	(sp)+,fr0	clc1:out:	movf	(sp)+,fr1	movf	(sp)+,fr2	ldfps	(sp)+	rts	pc//	.dataP0:	 42675;  36404;  77563;  46675P1:	 41241; 116724; 114237;  60333P2:	 36675;  27102; 125560; 136652Q0:	 43210; 100661;  76072;  62453Q1:	 42151;  27450;  75350; 112503log2e:	 40270; 125073;  24534;  13761sqrt2:	 40265;  02363;  31771; 157144half	= 40000one	= 40200/big:	 77777; 177777; 177777; 177777// P0 = .15139 06799 05433 89158 94328 d4/ P1 = .20202 06565 12869 27227 886   d2/ P2 = .23093 34775 37502 33624       d-1// Q0 = .43682 11662 72755 84984 96814 d4/ Q1 = .23318 42114 27481 62379 0295  d3/ Q2 = .1                             d1// log2e = 1.44269 50408 88963 40735 99246/ sqrt2 = 1.41421 35623 73095 04880 16887

⌨️ 快捷键说明

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