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

📄 fp98.asm

📁 收集整理了80c196浮点运算程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
                    ;FPAD/FPSUB/FPDI/FPMU/FPDI/FPDI2/DP/FPSQ/FSQR/CMPR/DTOB/BTOD ONLY!
        ORG     2000H         ;NEW! LNX &EXP REFINED
        ;2fh,7:div/mul flag/6:div'(d/c)>=1 /5:fpsqr'num.flag/4:br sub'num.flag/3:or gint'num/arccosx flag
        ;/2:fpln'x2 flag/1:arcsinx'|x|>0.5/0:exp(x),sinx,dtob,arcsinx'x flag
CMPR:   JBS     27H,7,CMX     ;3Q4n<FX1;P4n<FX2$q8{$j$p$l5{'G
        JBC     2BH,7,CPP
CPM:    CMP     2AH,26H       ;(b<F2'89,%u$q8{'@<F0*&l&r
        RET
CMX:    JBC     2BH,7,CPM     ;%g(b<F2'89
        CMPB    2CH,2DH       ;-t<F;P-t<F$q8{,6%$j*L-H$p
        JNE     CP4
        CMP     2AH,26H       ;6%,[5%.I,'@<F549o-H$j*L-H$p
        JNE     CP4
        CMP     28H,24H       ;0*&l&r,[5%,$q8{'C&l&r
        SJMP    CP3
CPP:    CMPB    2DH,2CH       ;%?<F;P%?<F$q8{,6%$j*L-H$j
        JNE     CP4
        CMP     26H,2AH       ;6%,[5%.I,'@<F549o-H$j*L-H$]$j
        JNE     CP4
        CMP     24H,28H
CP3:    JNE     CP4           ;6%=X)M'@<F9o@3,[5%,(b<F$~,[5%
        CLR     C             ;(C2M0#C
CP4:    RET                   ;*p&^&Z,Z=1,(b<F,[5%,'_+hCY=1.IX1>X2,CY=0.IX1<X2
FPSU:   XORB    2BH,#80H      ;/BBI4n*k$l5{'G,4n<F(D-t,0%[<F
FPAD:   CMPB    2DH,0         ;/BBI%[*k$l5{'G
        JE      COM           ;3Q%[<F5%$_9s,%[<F,0)M
        LDB     31H,27H
        CMPB    2CH,0
        JE      PCOM1         ;%[<F,09s,3Q%[<F,0)M
        LDB     32H,2BH
        ORB     27H,#80H
        ORB     2BH,#80H      ;+l4_'@<F3L0*&l
        SUBB    30H,2DH,2CH   ;6%=X$'.t
        JC      NN2
        NEGB    30H           ;.t,0-t,(D8I
        CMPB    30H,#20H
        JH      DON           ;|.t|>32,%[<F,0)M
        SHRL    24H,30H       ;9o6%,%k2>3Q%[<F'@<F
        ADDC    24H,0
        ADDC    26H,0         ;2>%X3!$@%|*Y$-$J
        SJMP    GOON
NN2:    CMPB    30H,#20H
        JH      PCOM1         ;6%.t>32,3Q%[<F,0)M
        SHRL    28H,30H       ;9o6%,%k2>%[<F'@<F
        ADDC    28H,0
        ADDC    2AH,0         ;2>%X3!$@%|*Y$-$J
        LDB     2CH,2DH       ;3Q%[<F6%=X,0)M$'6%=X
GOON:   XORB    31H,32H
        JBC     31H,7,SAMS    ;(b<F&P89,
        SUB     28H,24H
        SUBC    2AH,26H       ;2'89,,[4n,%[<F,03Q4n<F
        JE      DON0          ;'@<F,[5%,(z9s6%
        JC      PDIF          ;0w4n,B`
        XORB    32H,#80H      ;$#0w4n,3Q4n<F2E89(D$O,0.t$'2E89
        NOT     2AH
        NEG     28H
        ADDC    2AH,0         ;.t(D8I(C%|*Y$-$J
PDIF:   NORML   28H,30H
        SUBB    2CH,30H       ;.t3W.f$F
        JNH     OV1           ;9s6%$N-t6%,078%X
        SJMP    DON           ;$w3W.f$F
SAMS:   ADD     28H,24H
        ADDC    2AH,26H       ;&P89,'@<F,[%[
        JNC     DON           ;CY=0,$w3W.f$F
        SHRL    28H,#1
        ORB     2BH,#80H
        INC     2CH           ;'_+h,%k3W$@&8
        JNE     DON           ;6%=X$#5%$_9s,$w3W.f$F
OV1:    RST                   ;'_+h,078%X,3y&(3n%s4_&l
        RST                   ;&p$#7Q4_&l,%i%NLJMP+|%O$^>I3B2z78%X($U&P)
        RST
PCOM1:  LDB     32H,31H
        LDB     2CH,2DH
        LD      28H,24H
        LD      2AH,26H       ;(z3Q%[<F,0)M
DON:    JBS     32H,7,COM     ;0t8m<F2E
        ANDB    2BH,#7FH
COM:    RET
DON0:   CLRB    2CH           ;9s6%
        RET
FPMU:   CMPB    2DH,#0        ;/BBI-<*k$l5{'G,'@<F,[-<(a+b)*(c+d)-->ac+ad+bc+bd
        JE      GET0
        CMPB    2CH,#0
        JNE     M1
GET0:   CLRB    2CH           ;&3$@-<<F,09s,?n,09s
        CLR     2AH
        CLR     28H
        RET
M1:     ANDB    2FH,#3FH      ;(3B2z?n2E?n6%)%}2M0#<P'S&l
        LDB     30H,27H
        XORB    30H,2BH       ;?n$'<F2E
        ANDB    30H,#80H
        ORB     2FH,30H       ;&s$_2FH3L0*&l
        ADDB    2CH,2DH       ;2>=X(D)M
        JNC     FM1
        ADDB    2CH,#80H      ;&36i&l,)M&A%[$W80H,1o?n/0S$'6%=X
        SJMP    MUL1
FM1:    SUBB    2CH,#80H      ;5L6i&l,1N)M4n%h80H,1o?n/0S$'6%=X[9oz/ov<vETIO$W$#&P]
MUL1:   JE      OV2
        JV      OV2           ;'PB_78%X
        ORB     27H,#80H
FPMU1:  ORB     2BH,#80H      ;+l4_'@<F3L0*&l
        MULU    30H,24H,2AH   ;-<?n bc
        MULU    20H,26H,28H   ;-<?n ad
        ADD     30H,20H
        ADDC    32H,22H       ;bc+ad
        MULU    20H,24H,28H   ;-<?n bd
        MULU    28H,26H,2AH   ;-<?n ac
        ADDC    2AH,0         ;(bc+ad) 2#%MCY,%[$J?n$$
        ADD     30H,22H
        ADDC    28H,32H       ;bd $'0*&l&r%[$J(ad+bc)
        ADDC    2AH,0         ;(ad+bc)%[$J?n$$,?n&b2AH(0*&l),28H,30H$T-S&r$$
M2:     JBS     2BH,7,NXA
        ADD     30H,30H       ;?n(0S)3L0*&l,09s,1N?n%*2>$@&l
        ADDC    28H,28H
        ADDC    2AH,2AH
        JBC     31H,7,NXB     ;:I%h3!$@%|*Y$-$J
        INC     28H
        ADDC    2AH,0
        JNC     NXB
        LDB     2BH,#80H      ;=U>c
        SJMP    COM1
NXB:    DJNZ    2CH,COM1      ;6%=X4n$@E\,09s,078%X
OV2;    RST                   ;4_&l
        RST
        RST
NXA:    JBC     31H,7,COM1
        INC     28H           ;%|*Y$-$J
        ADDC    2AH,0
COM1:   JBS     2FH,7,COMR    ;0t8m<F2E
        ANDB    2BH,#7FH
COMR:   RET
                              ;/BBI0#*k$l5{'G '@<F,[0#(a+b)/(c+d)->(a+b)/c*[1-d/c+(d/c)*(d/c)]
FPDI:   CMPB    2CH,#0;       ;-->(a+b)/c-(a+b)/c*(d/c)+(a+b)/c*(d/c)*(d/c)
        JE      OV3           ;0#<F,09s,78%X
        CMPB    2DH,#0
        JNE     D2
        LJMP    G0            ;3Q0#<F,09s,0S5%$_9s
OV3:    RST
        RST
        RST
D2:     ANDB    2FH,#3FH      ;(3B2z0S2E0S6%)%}2M0#<P'S&l
        LDB     30H,27H
        XORB    30H,2BH       ;0S$'<F2E
        ANDB    30H,#80H
        ORB     2FH,30H       ;&s$_2FH3L0*&l
        SUBB    2CH,2DH,2CH   ;2>=X(D.t
        JNC     DIV2
        ADDB    2CH,#80H      ;&36i&l,)M&A%[$W80H,1o?n/0S$'6%=X
        SJMP    DIV3
DIV2:   SUBB    2CH,#80H      ;5L6i&l,1N)M4n%h80H,1o?n/0S$'6%=X[9oz/ov<vETIO$W$#&P]
DIV3:   JE      OV3
        JV      OV3           ;'PB_78%X
        ORB     27H,#80H
        ORB     2BH,#80H      ;+l4_'@<F3L0*&l
FPD3:   CMP     26H,2AH       ;a$j$_5%$_c?
        JNC     D3
        INC     2CH           ;,O,0S6%%[$@
        JE      OV3           ;0S6%E\,09s,78%X
        SUB     26H,2AH       ;a-c-->a,(C&3CY=1
D3:     DIVU    24H,2AH
        LD      32H,24H       ;(a+b)/c$'0*&l&r
        LD      24H,0
        DIVU    24H,2AH
        LD      30H,24H       ;(a+b)/c$''C&l&r
        LD      24H,0
        DIVU    24H,2AH
        LD      20H,24H       ;(a+b)/c$'BX.i&r
        JNC     D4
        SHRL    30H,#1
        SHR     20H,#1
        JNST    D6            ;%k2>0eY,
        ORB     21H,#80H
D6:     ORB     33H,#80H      ;a$j$_5%$_c.I,(a+b)/c%k2>$@&l,At't"02>$J0S$'3L0*&l
D4:     CMP     28H,0         ;d=0?
        JE      D13           ;d=0,'@<F0#*k9B:b$w'9&(
        CLR     24H
        LD      26H,28H
        CMP     26H,2AH       ;d$j$_5%$_c?(+v&r,]+])
        JNC     D7
        SUB     26H,2AH       ;,O,d-c-->26H
        ORB     2FH,#40H      ;<P;x
D7:     DIVU    24H,2AH       ;-p:bd/c)N(d-c)/c
        SHL     26H,#1
        JC      D8            ;'E<F*2!Y0#<F?
        CMP     26H,2AH       ;%|*Y$-$J
        JNC     D9
D8:     INC     24H
D9:     LD      22H,30H
        LD      26H,32H
        MULU    28H,24H,26H
        SUB     20H,28H
        SUBC    30H,2AH
        SUBC    32H,0
        MULU    28H,24H,22H
        SUB     20H,2AH
        SUBC    30H,0
        SUBC    32H,0         ;7md$p$_c.I,-p:b(a+b)/c-(a+b)/c*(d/c)
        JBC     2FH,6,D10
        SUB     20H,22H
        SUBC    30H,26H
        SUBC    32H,0         ;7md$j$_c.I,-p:b(a+b)/c-(a+b)/c*(1+(d-c)/c)
D10:    SHR     24H,#1        ;(Dd/2c)N(d-c)/2c
        JBC     2FH,6,D11
        ORB     25H,#80H      ;At't0S$'3L0*&l2>&^
D11:    MULU    28H,24H,26H
        ADD     28H,28H
        ADDC    2AH,0         ;%|*Y$-$J
        MULU    24H,2AH
        SHRL    24H,#14       ;-p:b(a+b)/c*(d/c)*(d/c)
        ADD     20H,24H
        ADDC    30H,26H
        ADDC    32H,0         ;-p:b(a+b)/c-(a+b)/c*d/c+(a+b)/c*(d/c)*(d/c)
D13:    LD      2AH,32H       ;&^0e0S'@<F
        LD      28H,30H
        LD      30H,20H
        SJMP    M2            ;B`'@<F3B2z,=U>c
                              ;'V3t/BBI0#*k$l5{'G/28&l&3.D
FPDI2:  CMPB    2CH,#0        ;'@<F,[0# (a+b)/(c+d)-->(a+b)/c-(a+b)/c*(d/c)
        JE      OV30          ;0#<F5%$_9s,78%X
        CMPB    2DH,#0
        JNE     D22
        SJMP    G0
OV30:   RST
        RST
        RST
D22:    ANDB    2FH,#3FH      ;(3B2z0S2E0S6%)%}2M0#<P'S&l
        LDB     30H,27H
        XORB    30H,2BH       ;0S$'<F2E
        ANDB    30H,#80H
        ORB     2FH,30H       ;&s$_2FH3L0*&l
        SUBB    2CH,2DH,2CH   ;2>=X(D.t
        JNC     DV22
        ADDB    2CH,#80H      ;&36i&l,)M&A%[$W80H,1o?n/0S$'6%=X
        SJMP    DV33
DV22:   SUBB    2CH,#80H      ;5L6i&l,1N)M4n%h80H,1o?n/0S$'6%=X[9oz/ov<vETIO$W$#&P]
DV33:   JE      OV30
        JV      OV30          ;'PB_78%X
        ORB     27H,#80H
        ORB     2BH,#80H      ;+l=F'@<F3L0*&l
        CMP     26H,2AH       ;a$j$_5%$_c?
        JNC     D33           ;'_,B`
        INC     2CH
        JE      OV30          ;78%X,B`
        SUB     26H,2AH       ;a-c-->26H
D33:    DIVU    24H,2AH
        LD      32H,24H       ;(a+b)/c$'0*&l&r
        LD      24H,0
        DIVU    24H,2AH
        LD      30H,24H       ;(a+b)/c$''C&l&r
        JNC     D44
        SHRL    30H,#1
        ORB     33H,#80H      ;At't0S$'3L0*&l2>&^
D44:    CMP     28H,0         ;d=0?
        JE      D55
        CLR     24H
        LD      26H,28H
        CMP     26H,2AH       ;d$j$_5%$_c? (+v&r,]+])
        JNC     D66
        SHRL    24H,#1        ;d$j$_5%$_c.I,(zd/2-->d
        SET     C             ;(zd/2$'<P;x
D66:    DIVU    24H,2AH       ;d/c
        MULU    24H,32H       ;(a+b)/c$'0*&l&r-<%H(d/c)
        JNC     D77
        SHLL    24H,#1        ;;Pd%k2>$@&l)h.x
        SUBC    32H,0
D77:    SUB     28H,30H,26H
        LD      2AH,32H       ;&^0e0S'@<F
        SUBC    2AH,0         ;-p:b(a+b)/c-(a+b)/c*(d/c)
        NORML   28H,2DH
        SUBB    2CH,2DH       ;3W.f$F  >_,d
D99:    JBS     2FH,7,D88     ;0t8m<F2E
        ANDB    2BH,#7FH
D88:    RET
D55:    LD      2AH,32H
        LD      28H,30H
        SJMP    D99
FPSQ:   ANDB    2FH,#0DFH     ;<R@@$b:b'V3t6}%-$h$l5{'G,%}+X9j<F<P;x
        CMPB    2CH,#0
        JE      DON2          ;&p3Q6}%-$h<FX5%$_9s,+h.Z5%$_9s
        ADDB    2BH,#80H      ;4z8U<F2E
        JNC     SQ1
        ORB     2FH,#20H      ;5j<F<P;x

⌨️ 快捷键说明

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