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

📄 fp98.asm

📁 收集整理了80c196浮点运算程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
        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 + -