sqrt.s
来自「Version 6 Unix 核心源代码 Version 6 Unix 核心源」· S 代码 · 共 59 行
S
59 行
ldfps = 170100^tststfps = 170200^tst// sqrt replaces the f.p. number in fr0 by its/ square root. newton's method/.globl sqrt, _sqrt//_sqrt: mov r5,-(sp) mov sp,r5 movf 4(r5),fr0 jsr pc,sqrt mov (sp)+,r5 rts pcsqrt: tstf fr0 cfcc bne 1f clc rts pc /sqrt(0)1: bgt 1f clrf fr0 sec rts pc / sqrt(-a)1: mov r0,-(sp) stfps -(sp) mov (sp),r0 bic $!200,r0 / retain mode ldfps r0 movf fr1,-(sp) movf fr2,-(sp)/ movf fr0,fr1 movf fr0,-(sp) asr (sp) add $20100,(sp) movf (sp)+,fr0 /initial guess mov $4,r01: movf fr1,fr2 divf fr0,fr2 addf fr2,fr0 mulf $half,fr0 / x = (x+a/x)/2 sob r0,1b2: movf (sp)+,fr2 movf (sp)+,fr1 ldfps (sp)+ mov (sp)+,r0 clc rts pc/half = 40000
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?