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

📄 mpowid.s

📁 操作系统SunOS 4.1.3版本的源码
💻 S
字号:
	.data|	.asciz	"@(#)Mpowid.s 1.1 92/07/30 Copyr 1985 Sun Micro"	.even	.text|	Copyright (c) 1985 by Sun Microsystems, Inc.#include "fpcrtdefs.h"#include "Mdefs.h"RTENTRY(Mpowid)	tstl	a0@	bnes	6f		| Branch if i <> 0.	movel	#0x3ff00000,d0	| Return 1.0 = x**0.	clrl	d1	bras	3f6:	FMOVEDIN		| fp0 gets x.	movel	a0@,d0		| d0 gets integer power i.	bpls	1f	negl	d0		| d0 gets abs(i).	bras	1fdpowerloop:	lsrl	#1,d0	fmulx	fp0,fp0		| If there are n trailing 0's,				| this loop computes fp0 = x**2**n. 1:	btst	#0,d0	beqs	dpowerloop		fmovex	fp0,fp1		| fp1 gets x**2**n.	bras	6fdmultloop:	fmulx	fp1,fp1		| Square fp1.	btst	#0,d0	beqs	6f	fmulx	fp1,fp0		| If a one bit, multiply result by fp1.6:	lsrl	#1,d0	bnes	dmultloop	| Branch if there are more 1 bits.5:	tstl	a0@	bpls	2f	fmovecr	#0x32,fp1	| fp1 gets 1.0.	fdivx 	fp0,fp1		| fp1 gets 1/x**|i|.	fmovex	fp1,fp0		| Result is x**i.2:		FMOVEDOUT		| Result is x**i.3:	RET

⌨️ 快捷键说明

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