📄 fp98.asm
字号:
ORB 2BH,#80H ;+l4_'@<F3L0*&l
SQ1: SHRB 2CH,#1 ;6%=XE^?h%k2>$@&l
JNC SQ2
INCB 2CH ;,0)_<F.I,<W$@
SHRL 28H,#1 ;'@<FE^?h%k2>$@&l
SQ2: ADDB 2CH,#40H ;6%=X+l4_,02>=X
CLR 24H
CLR 26H ;.Z&s@x3f$82M0#
CLR 30H
CLR 32H ;XBX.i3f$82M0#
LDB 2DH,#21H ;2>&l11(n
SQ3: SUBB 2BH,#40H
SUBC 30H,24H
SUBC 32H,26H ;8U.Z
JC SQ4 ;0w4n,%;&l.Z$@
ADDB 2BH,#40H
ADDC 30H,24H
ADDC 32H,26H ;$#0w4n,+l4_3Q6}%-$h<F
CLR C ;%;&l.Z9s
SQ4: DJNZ 2DH,SQ5
LD 2AH,26H
LD 28H,24H ;&^0e.Z'@<F
ADDC 28H,0
ADDC 2AH,0 ;2D33&l%|*Y$-$J
COM2: ANDB 2BH,#7FH ;.Z<F2E
DON2: RET
SQ5: ADDC 24H,24H
ADDC 26H,26H ;.Z%*2>$@&l(C0O.Z
SHLL 28H,#1
ADDC 30H,30H
ADDC 32H,32H
SHLL 28H,#1
ADDC 30H,30H
ADDC 32H,32H ;3Q6}%-$h<F;PBX.i3f$8>cEi%*2>(b&l
SJMP SQ3
FSQR: CMPB 2CH,0 ;${9y-!%N'V3t6}%-$h$l5{'G
JE DON2 ;&p*G3Q6}%-$h<FX=0,+h.Z5%$_9s
ANDB 2FH,0DFH ;+X9j<P
JBC 2BH,7,FSQ0
ORB 2FH,#20H ;X,0-t<F,'o,05j<P
ANDB 2BH,#7FH ;E\,0%?<F
FSQ0: LDB 2DH,#80H ;9w3]X1$'6%80H
JBC 2CH,0,FSQ1
INCB 2DH ;X$'6%,0)_<F,'oX1$'6%,081H,X18($J%b6}0O[0.5,2)
FSQ1: SUBB 2CH,2DH ;X;PX16%$'.t
FSQ2: SHRAB 2CH,#1 ;6%.t'i%b('t<F2E)
LDB 42H,2CH ;+O&s6%.t$'%b
LDB 2CH,2DH
SCALL LD1 ;&sX1
SHRL 28H,#1 ;(z-:&8.Z
JBS 2CH,0,FSQ3
ADDB 2BH,#40H
FSQ3: LDB 2EH,#3 ;-:&8.Z$w(z,0R0=(1+X1)/2;&A3]-!%N&8<F,0$T
FSLOP: LD 34H,28H
LD 36H,2AH
LDB 3DH,2CH ;&sRi
SCALL GET1 ;(zX1
CMPB 2EH,#1 ;2D$T&8-!%N?
JNE FSQ4
SCALL FPDI ;-p:bX1/R2,2D$T&8-!%N,=U32&l:k+W0#*k!
SJMP FSQ5
FSQ4: SCALL FPDI2 ;2D$@,$G&8-!%N,%N28&l:k+W0#*k!
FSQ5: LD 24H,34H
LD 26H,36H
LDB 2DH,3DH ;(zRi
LCALL FPAD
DECB 2CH ;-p:bRi+1=(Ri+X1/Ri)/2
DJNZ 2EH,FSLOP ;4`@t
ADDB 2CH,42H ;R3$'6%=X$$%[$J6%.t$'%b,1oX$'%-$h.Z
RET
LD0: LD 24H,28H ;8K$J/BBI<F
LD 26H,2AH
LDB 2DH,2CH
RET
LD1: LD 38H,28H ;&s$J/BBI<F
LD 3AH,2AH
LDB 3CH,2CH
RET
GET1: LD 24H,38H ;(z%X/BBI<F
LD 26H,3AH
LDB 2DH,3CH
RET
G1: CLR 24H ;(z 1
CLR 26H
LD 2CH,#81H
RET
G10: CLR 24H ;(z10
LD 26H,#2000H
LDB 2DH,#84H
RET
DTOB: LCALL LD1 ;/BBI<F$QB=$G$l5{'G,%}&sX$''@<F
LDB 3DH,2DH ;$Q6i(n/BBI<F$'6%
CLR 2AH
CLR 2CH
LDB 28H,3CH ;(zBCD10 & BCD9(3L0*2&l)
ANDB 2DH,28H,#15
SHRB 28H,#4
MULUB 28h,#10
ADDB 28H,2DH ;E\,0$G6i(n<F
LD 24H,#3BH ;+|0w,+|&VBCD8 & BCD7
LOOP4: MULU 20H,2AH,#100
MULU 28H,#100
ADD 2AH,20H
ADDCB 2CH,22H
LDB 26H,[24H]
ANDB 2DH,26H,#15
SHRB 26H,#4
MULUB 26H,#10
ADDB 26H,2DH
ADD 28H,26H
ADDC 2AH,0
ADDC 2CH,0 ;-p:b10*(...10*(10*(10*BCD10+BCD9)+BCD8)+BCD7)+..+BCD2)+BCD1
DEC 24H
CMPB 24H,#37H ;+|0w,037H,'@<FB`4+52't
JNE LOOP4
LDB 24H,28H
SHLB 24H,#6 ;'@<F3L'C(b&l(bit)&s$_24H&r8`
SHRL 28H,#2
SHLB 2CH,#6
ADDB 2BH,2CH ;'@<F%k2>(b&l
NORML 28H,2CH
CLRB 25H
SHL 24H,2CH
ADDB 28H,25H ;%k2>2>%X3!$@2>&^(2CH)&l
ADDB 24H,24H
ADDC 28H,0
ADDC 2AH,0 ;2>%X3!$@%|*Y$-$J
NXK: NEGB 2CH
ADDB 2CH,#0A2H ;9w(z6%=X(34$'6%=X,00A2H)
JBS 2FH,0,NXL ;0t8m<F2E
XORB 2BH,#80H
NXL: JBS 2EH,0,NXQ0 ;-t6%B`
NXM: SUBB 3DH,#10H ;%?6%,%}4n%h10,($Q&l$p<F5x,0$Q&l>c<F,BX$j10 -?)
JC NXP
ADDB 3DH,#6
NEGB 3DH ;$#0w4n,=U>c
SJMP NXQ2 ;%H-t6%8I9A
NXP: SUBB 3DH,#10H ;6%4n$Q
JNC NXP1
SCALL DDP
LCALL FPMU ;'@<F-<%H 10
SJMP NXP
NXP1: ADDB 3DH,#10H ;$#0w4n+h+l4_6%=X
JE COM11
NXP2: LCALL G10
LCALL FPMU ;'@<F-<%H10
DJNZ 3DH,NXP2 ;6%=X4n%h1
COM11: RET
NXQ: SUBB 3DH,#10H ;4n$Q0w4n,-<%H10
JNC NXQ1 ;$#5M%h+l4_6%
NXQ0: SCALL INVDP ;-t6%,%}-<%H10
LCALL FPMU
SJMP NXQ
NXQ1: ADDB 3DH,#10H ;+l4_6%
JE COM11 ;9s6%52't
NXQ2: SCALL TETH
LCALL FPMU ;'@<F-<%H0.1
DJNZ 3DH,NXQ2 ;6%4n%h1
RET
BTOD: CLR 40H ;/BBI<FX$GB=$Q$l5{'G,6%&s@x3f$82M0#
CLR 42H ;<F2E(43H)6%2E(42H)&s@x3f$82M0#
CMPB 2CH,#0 ;X=0,52*G$Q6i(n,09s
JE COM8
JBC 2BH,7,NX60
ANDB 2BH,#7FH ;(z549o-H
DECB 43H ;-t<F
NX60: SCALL DDP
LCALL CMPR ;|X|;P10 $q8{
JC NX62 ;|X|<10 ,
NX61: SCALL INVDP
LCALL FPMU ;|X| 10 ,|X|*10 -->|X|
ADDB 40H,#10 ;6%=X3f$8%[10
SJMP NX60 ;D~Dr$q.U
NX62: SCALL INVDP
LCALL CMPR ;|X|;P10 $q8{
JE NX63
JNC NX70 ;|X|>10 ,B`
NX63: SCALL DDP
LCALL FPMU ;|X|<=10 ,|X|*10 -->|X|
ADDB 40H,#10 ;6%=X3f$8%[$Q
DECB 42H ;-t6%
SJMP NX62 ;&A$q8{
NX70: LCALL G10
LCALL CMPR ;|X|;P$Q$q8{
JC NX72 ;|X|<10,B`
NX71: SCALL TETH ;'_+h
LCALL FPMU ;(O|X|*10-->|X|
INC 40H ;6%=X3f$8<W1
SJMP NX70 ;&A;P10$q8{
NX72: SCALL G1
LCALL CMPR ;|X|;P1$q8{
JE BUS3
JNC BUS ;|X| 1,B`%h'@<F$GB=$Q
NX74: LCALL G10
LCALL FPMU ;|X|<1,|X|*10-->|X|
INC 40H ;6%=X3f$8<W1
DECB 42H ;-t6%<P
SJMP NX72
COM8: LJMP LD0 ;(zB`4+52*G9s
BUS3: LDB 2CH,#1 ;(z$Q6i(n/BBI<F'@<F1.00000000
BUSB: CLR 2AH ;'@<F$p<F3!$@%R9s
CLR 28H
SUB4: LD 26H,42H
DIVUB 40H,#10
SHLB 40H,#4
ADDB 2DH,40H,41H ;6%=X$GB=$Q
RET
BUS: ORB 2BH,#80H ;'@<F3!$@$GB=$Q,%}+l4_3L0*&l
LDB 24H,2BH
CLRB 25H
ANDB 2CH,#7FH
SHL 24H,2CH
SHLL 28H,2CH
LDB 2CH,25H ;0e$J2CH
ADD 28H,#21 ;%[0.000000005
ADDC 2AH,0
JNC BUSA ;9o>c<F3!$@5L6i&l,B`
INCB 2CH ;>c<F3!%[1
CMPB 2CH,#10
JNE BUSB
INC 40H ;>c<F3!=10,=U>c
SJMP BUS3
BUSA: SCALL SUB4 ;6%=X$GB=$Q
BUS0: LCALL LD1 ;&s'@<F$p<F3!$@
LD 3EH,#2BH ;BCD=X+|0w
NX75: MULU 20H,3AH,#100
MULU 38H,#100 ;$p<F3!$@-<%H100()wBI-<)
ADD 3AH,20H
ADDC 22H,0 ;?n>c<F3!$@&b22H
DIVUB 22H,#10
SHLB 22H,#4
ADDB 22H,23H
STB 22H,[3EH] ;>c<F3!$@B`4+,0(b&lBCD=X,&s$J
DEC 3EH
CMPB 3EH,#27H ;+|0w+|&V27H,B`4+52't
JNE NX75
RET
TETH: LD 24H,#0CCCDH ;0.1
LD 26H,#4CCCH
LDB 2DH,#7DH
RET
INVDP: LD 24H,#0FECFH ;0.0000000001
LD 26H,#5BE6H
LDB 2DH,#5FH
RET
DDP: LD 24H,#0F900H ;10000000000
LD 26H,#1502H
LDB 2DH,#0A2H
RET
NOM2: LD 2CH,#40A0H ;)wBI<F(%?<F)3W.f$F$l5{'G
LOP3: JBS 2BH,7,COM9 ;>c<F/$p<F&U32&l
SHLL 24H,#1
ADDC 28H,28H
ADDC 2AH,2AH
DECB 2CH
DJNZ 2DH,LOP3
CLR 2CH ;9s
RET
COM9: ANDB 2BH,#7FH
RET
DMST: LD SP,#0C0H ;:t%\5{'G
PUSH 28H
PUSH 2AH
PUSH 2CH
PUSH 2EH ;+O&s2D$G>^'@<F
LD 28H,30H
LD 2AH,32H
LD 2CH,34H
LD 2EH,36H
LCALL DTOB
LCALL LD1 ;2D$@>^'@<F$QB=$G(C&s$J
POP 2EH
POP 2CH
POP 2AH
POP 28H
LCALL DTOB ;2D$G>^'@<F$QB=$G
LCALL GET1 ;(z%X2D$@>^'@<F
LCALL FPAD ;=U0r%;9B:b/(g<F$l5{'G
LCALL BTOD ;9B:b52*GE\,0$Q6i(n<F
HERE: SJMP HERE
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -