cpubbs 发表于 2004-11-6 03:43:06

浮点运算子程序库

;浮点运算子程序库
;整理:聂小猛。该资料来自“51单片机世界”http://go.163.com/~dz2000,欢迎访问。
;1,FSDT浮点数格式化   F->GeShiHua *
;2,FADD浮点数加法       F+=,OV
;3,FSUB浮点数减法       F-=,OV
;4,FMUL浮点数乘法       Fx=,OV
;5,FDIV浮点数除法       F/=R0,OV
;6,FSQR浮点数开平方   /--F=,OV
;7,FPLN浮点数多项式   FDuoXiangShi=,OV
;8,FABS浮点数绝对值   |F|= *COS
;9,FSGN浮点数符号       A=1>+,A=0FFH>-,A=0 *
;10,FINT浮点取整函数    FQuZheng *SIN
;11,FRCP浮点倒数函数    1/F=R0,OV *arcctg
;12,FLOG以10为底对数函数LogF=,OV
;13,FLN以e为底对数函数LnF=,OV
;14,FEXP10以10为底指数函数10`=,OV
;15,FEXP以e为底指数函数 e`=,OV
;16,FEXP2以2为底指数函数2`=,OV
;17,FCOS浮点余弦函数    COSF=
;18,FSIN浮点正弦函数    SINF=
;19,FATN浮点正切函数    arcctgF=
;24,BCDTOF浮点bcd转格式化BCDf=F
;25,FTOBCD格式化转浮点bcd F=BCDF
;26,RTOD浮点弧度数转度数HuF=DuF
;27,DTOR浮点度数转弧度数DuF=HuF


;1
;F->GeShiHua
;PSW,A,R2,R3,R4,2FH.7;6
FSDT:   LCALL MOVR0 ;;
      LCALL RLN
      LJMP MOV0
;2
;F+=,OV
;PSW,A,R2-R7,2FH.0,2FH.7;6
FADD:   CLR F0
      SJMP AS ;;
;3
;F-=,OV
;PSW,A,R2-R7,2FH.0,2FH.7;6
FSUB:   SETB F0
AS:   LCALL MOVR1
      MOV C,F0
      RRC A
      XRL A,@R1
      MOV C,ACC.7
ASN:    MOV 2FH.0,C
      XRL A,@R0
      RLC A
      MOV F0,C
AS0:    LCALL MOVR0
      LCALL AS1

MOV0:   INC R0
      INC R0
      MOV A,R4
      MOV @R0,A
      DEC R0
      MOV A,R3
      MOV @R0,A
      DEC R0
      MOV A,R2
      MOV C,2FH.7
      MOV ACC.7,C
      MOV @R0,A
      CLR ACC.7
      XRL A,#3FH
      JNZ MOV01
      SETB OV
      RET
MOV01:MOV A,@R0
      CLR OV
      RET

MOVR0:MOV A,@R0
      MOV C,ACC.7
      MOV 2FH.7,C
      MOV C,ACC.6
      MOV ACC.7,C
      MOV R2,A
      INC R0
      MOV A,@R0
      MOV R3,A
      INC R0
      MOV A,@R0
      MOV R4,A
      DEC R0
      DEC R0
      RET

MOVR1:MOV A,@R1
      MOV C,ACC.7
      MOV 2FH.0,C
      MOV C,ACC.6
      MOV ACC.7,C
      MOV R5,A
      INC R1
      MOV A,@R1
      MOV R6,A
      INC R1
      MOV A,@R1
      MOV R7,A
      DEC R1
      DEC R1
      RET

AS1:    MOV A,R6
      JZ AS2
      MOV A,R3
      JNZ EQ
      MOV A,R6
      MOV R3,A
      MOV A,R7
      MOV R4,A
      MOV A,R5
      MOV R2,A
      MOV C,2FH.0
      MOV 2FH.7,C
AS2:    RET
EQ:   MOV A,R2
      XRL A,R5
      JZ AS4
      JB ACC.7,EQ3
      MOV A,R2
      CLR C
      SUBB A,R5
      JC EQ4
EQ2:    CLR C
      MOV A,R6
      RRC A
      MOV R6,A
      MOV A,R7
      RRC A
      MOV R7,A
      INC R5
      ORL A,R6
      JNZ EQ
      MOV A,R2
      MOV R5,A
      SJMP AS4
EQ3:    MOV A,R2
      JNB ACC.7,EQ2
EQ4:    CLR C
      LCALL RR1
      ORL A,R3
      JNZ EQ
      MOV A,R5
      MOV R2,A
AS4:    JB F0,AS5
      MOV A,R4
      ADD A,R7
      MOV R4,A
      MOV A,R3
      ADDC A,R6
      MOV R3,A
      JNC AS2
      LJMP RR1
AS5:    CLR C
      MOV A,R4
      SUBB A,R7
      MOV B,A
      MOV A,R3
      SUBB A,R6
      JC AS6
      MOV R4,B
      MOV R3,A
      LJMP RLN
AS6:    CPL 2FH.7
      CLR C
      MOV A,R7
      SUBB A,R4
      MOV R4,A
      MOV A,R6
      SUBB A,R3
      MOV R3,A
RLN:    MOV A,R3
      ORL A,R4
      JNZ RLN1
      MOV R2,A
      RET
RLN1:   MOV A,R3
      JB ACC.7,RLN2
      CLR C
      LCALL RL1
      SJMP RLN1
RLN2:   CLR OV
      RET
RL1:    MOV A,R4
      RLC A
      MOV R4,A
      MOV A,R3
      RLC A
      MOV R3,A
      DEC R2
      MOV A,R2
      XRL A,#0C0H
      JNZ RL1E
      MOV R2,A
      MOV R3,A
      MOV R4,A
RL1E:   CLR OV
      RET
RR1:    MOV A,R3
      RRC A
      MOV R3,A
      MOV A,R4
      RRC A
      MOV R4,A
      INC R2
      CLR OV
      MOV A,R2
      XRL A,#40H
      JNZ RR1E
      MOV R2,#3FH
      SETB OV
RR1E:   RET
;4
;Fx=,OV
;PSW,A,B,R2-R7,2FH.0,2FH.7;6
FMUL:   LCALL MOVR0
      MOV A,@R0
      XRL A,@R1
      RLC A
      MOV 2FH.7,C
      LCALL MUL0
      LJMP MOV0
MUL0:   LCALL MOVR1
MUL1:   MOV A,R3
      JZ MUL5
      MOV A,R6
      JZ MUL4
MULD:   MOV A,R7
      MOV B,R4
      MUL AB
      MOV A,B
      XCH A,R7
      MOV B,R3
      MUL AB
      ADD A,R7
      MOV R7,A
      CLR A
      ADDC A,B
      XCH A,R4
      MOV B,R6
      MUL AB
      ADD A,R7
      MOV R7,A
      MOV A,B
      ADDC A,R4
      MOV R4,A
      CLR A
      RLC A
      XCH A,R3
      MOV B,R6
      MUL AB
      ADD A,R4
      MOV R4,A
      MOV A,B
      ADDC A,R3
      MOV R3,A
      MOV A,R7
      RLC A
      MOV A,R3
      JB ACC.7,MUL2
      LCALL RL1
MUL2:   MOV A,R2
      ADD A,R5
MD:   MOV R2,A
      JB ACC.7,MUL3
      JNB ACC.6,MUL5
      MOV R2,#3FH
      SETB OV
      RET
MUL3:   JB ACC.6,MUL5
MUL4:   CLR A
      MOV R2,A
      MOV R3,A
      MOV R4,A
MUL5:   CLR OV
      RET

;5
;F/=R0,OV
;PSW,A,B,R2-R7,2FH.0,2FH.7;5
FDIV:   INC R0
      MOV A,@R0
      DEC R0
      JNZ DIV1
      CLR OV
      RET
DIV1:   INC R1
      MOV A,@R1
      DEC R1
      JNZ DIV2
      SETB OV
      RET
DIV2:   LCALL MOVR0
      MOV A,@R0
      XRL A,@R1
      RLC A
      MOV 2FH.7,C
      LCALL MOVR1
DIV3:   CLR C
      MOV A,R4
      SUBB A,R7
      MOV A,R3
      SUBB A,R6
      JC DIV4
      LCALL RR1
DIV4:   CLR A
      XCH A,R0
      PUSH ACC
      CLR A
      XCH A,R1
      PUSH ACC
      MOV A,R2
      PUSH ACC
      MOV B,#10H
DIVD1:CLR C
      MOV A,R1
      RLC A
      MOV R1,A
      MOV A,R0
      RLC A
      MOV R0,A
      MOV A,R4
      RLC A
      MOV R4,A
      XCH A,R3
      RLC A
      XCH A,R3 ;;;;;;;
      MOV F0,C
      CLR C
      SUBB A,R7
      MOV R2,A
      MOV A,R3
      SUBB A,R6
      ANL C,/F0
      JC DIVD2
      MOV R3,A
      MOV A,R2
      MOV R4,A
      INC R1
DIVD2:DJNZ B,DIVD1
      MOV A,R6
      CLR C
      RRC A
      SUBB A,R3
      CLR A
      ADDC A,R1
      MOV R4,A
      CLR A
      ADDC A,R0
      MOV R3,A
      POP ACC
      MOV R2,A
      POP ACC
      MOV R1,A
      POP ACC
      MOV R0,A
      MOV A,R2
      CLR C
      SUBB A,R5
      LCALL MD
      LJMP MOV0
;6
;/--F=,OV
;PSW,A,B,R2-R7;2
FSQR:   MOV A,@R0
      JNB ACC.7,SQR
      SETB OV
      RET
SQR:    MOV C,ACC.6
      MOV ACC.7,C
      INC A
      CLR C
      RRC A
      MOV @R0,A
      INC R0
      JC SQR0
      MOV A,@R0
      RRC A
      MOV @R0,A
      INC R0
      MOV A,@R0
      RRC A
      MOV @R0,A
      DEC R0
SQR0:   MOV A,@R0
      JZ SQR9
      MOV R2,A
      INC R0
      MOV A,@R0
      MOV R3,A
      MOV A,R2
      ADD A,#57H
      JC SQR2
      ADD A,#45H
      JC SQR1
      ADD A,#24H
      MOV B,#0E3H
      MOV R4,#80H
      SJMP SQR3
SQR1:   MOV B,#0B2H
      MOV R4,#0A0H
      SJMP SQR3
SQR2:   MOV B,#8DH
      MOV R4,#0D0H
SQR3:   MUL AB
      MOV A,B
      ADD A,R4
      MOV R4,A
      MOV B,A
      MUL AB
      XCH A,R3
      CLR C
      SUBB A,R3
      MOV R3,A
      MOV A,B
      XCH A,R2
      SUBB A,R2
      MOV R2,A

cpubbs 发表于 2004-11-6 03:43:29

SQR4:   SETB C
      MOV A,R4
      RLC A
      MOV R6,A
      CLR A
      RLC A
      MOV R5,A
      MOV A,R3
      SUBB A,R6
      MOV B,A
      MOV A,R2
      SUBB A,R5
      JC SQR5
      INC R4
      MOV R2,A
      MOV R3,A
      SJMP SQR4
SQR5:   MOV A,R4
      XCH A,R2
      RRC A
      MOV F0,C
      MOV A,R3
      MOV R5,A
      MOV R4,#8
SQR6:   CLR C
      MOV A,R3
      RLC A
      MOV R3,A
      CLR C
      MOV A,R5
      SUBB A,R2
      JB F0,SQR7
      JC SQR8
SQR7:   MOV R5,A
      INC R3
SQR8:   CLR C
      MOV A,R5
      RLC A
      MOV R5,A
      MOV F0,C
      DJNZ R4,SQR6
      MOV A,R3
      MOV @R0,A
      DEC R0
      MOV A,R2
      MOV @R0,A
SQR9:   DEC R0
      CLR OV
      RET
;7
;FDuoXiangShi=,OV
;PSW,A,B,R2-R7,2FH.0.7;4
FPLN:   POP DPH
      POP DPL
      XCH A,R0
      XCH A,R1
      XCH A,R0
      CLR A
      MOV R2,A
      MOV R3,A
      MOV R4,A
      CLR 2FH.7
PLN1:   CLR A
      MOVC A,@A+DPTR
      MOV C,ACC.7
      MOV 2FH.0,C
      MOV C,ACC.6
      MOV ACC.7,C
      MOV R5,A
      INC DPTR
      CLR A
      MOVC A,@A+DPTR
      MOV R6,A
      INC DPTR
      CLR A
      MOVC A,@A+DPTR
      MOV R7,A
      INC DPTR
      MOV C,2FH.0
      RRC A
      XRL A,2FH
      RLC A
      MOV F0,C
      LCALL AS1
      CLR A
      MOVC A,@A+DPTR
      CJNE A,#40H,PLN2
      XCH A,R0
      XCH A,R1
      XCH A,R0
      LCALL MOV0
      CLR A
      INC DPTR
      JMP @A+DPTR
PLN2:   MOV A,@R1
      XRL A,2FH
      RLC A
      MOV 2FH.7,C
      LCALL MUL0
      SJMP PLN1
;8
;|F|=
;A;2
FABS:   MOV A,@R0
      CLR ACC.7
      MOV @R0,A
      RET
;9
; A=1>+,A=0FFH>-,A=0>0
;PSW,A;2
FSGN:   MOV A,@R0
      MOV C,ACC.7
      JNZ SGN1
      INC R0
      MOV A,@R0
      DEC R0
      JZ SGN2
SGN1:   MOV A,#1
      JNC SGN2
      MOV A,#0FFH
SGN2:   RET
;10
;FQuZheng
;PSW,A,R2,R3,R4,2FH.7;6
FINT:   LCALL MOVR0
      LCALL INT
      LJMP MOV0
INT:    MOV A,R3
      ORL A,R4
      JNZ INTA
      MOV R2,A
      RET
INTA:   MOV A,R2
      JZ INTB
      JB ACC.7,INTB
      CLR C
      SUBB A,#10H
      JC INTC
      RET
INTB:   CLR A
      MOV R4,A
      MOV C,2FH.7
      RRC A
      MOV R3,A
      RL A
      MOV R2,A
      RET
INTC:   CLR F0
INTD:   CLR C
      LCALL RR1
      ORL C,F0
      MOV F0,C
      CJNE R2,#16,INTD
      JNB F0,INTE
      JNB 2FH.7,INTE
      INC R4
      MOV A,R4
      JNZ INTE
      INC R3
INTE:   LJMP RLN
;11
;1/F=R0,OV
;PSW,A,B,R2-R7,2FH.0.7;5
FRCP:   MOV A,@R0
      MOV C,ACC.7
      MOV 2FH.7,C
      MOV C,ACC.6
      MOV ACC.7,C
      MOV R5,A
      INC R0
      MOV A,@R0
      JNZ RCP
      DEC R0
      SETB OV
      RET
RCP:    MOV R6,A
      INC R0
      MOV A,@R0
      MOV R7,A
      DEC R0
      DEC R0
      MOV R2,#1
      MOV R3,#80H
      MOV R4,#0
      LJMP DIV3
;12
;LogF=,OV
;PSW,A,B,R2-R7,2FH.0.7;9
FLOG:   LCALL FLN
      JNB OV,LOG
      RET
LOG:    MOV R5,#0FFH
      MOV R6,#0DEH
      MOV R7,#5CH
      LCALL MUL1
      LJMP MOV0
;13
;LnF=,OV
;PSW,A,B,R2-R7,2FH.0.7;7
FLN:    LCALL MOVR0
      JB 2FH.7,LNOV
      MOV A,R3
      JNZ LN0
LNOV:   SETB OV
      RET
LN0:    CLR C
      LCALL RL1
      CLR A
      XCH A,R2
      PUSH ACC
      LCALL RLN
      LCALL MOV0
      LCALL FPLN
      DB 7BH,0F4H,30H
      DB 0FEH,85H,13H
      DB 7FH,91H,51H
      DB 0FFH,0FAH,0BAH
      DB 0,0FFH,0CAH
      DB 70H,0C0H,0
      DB 40H
      POP ACC
      JNZ LN1
      RET
LN1:    CLR 2FH.0
      MOV C,ACC.7
      MOV F0,C
      JNC LN2
      CPL A
      INC A
LN2:    MOV R2,A
      MOV B,#72H
      MUL AB
      XCH A,R2
      MOV R7,B
      MOV B,#0B1H
      MUL AB
      ADD A,R7
      MOV R7,A
      CLR A
      ADDC A,B
      MOV R6,A
      MOV R5,#8
LN3:    JB ACC.7,LN4
      MOV A,R2
      RLC A
      MOV R2,A
      MOV A,R7
      RLC A
      MOV R7,A
      MOV A,R6
      RLC A
      MOV R6,A
      DEC R5
      SJMP LN3
LN4:    MOV C,F0
      MOV ACC.7,C
      LJMP ASN
;14
;10`=,OV
;PSW,A,B,R2-R7,2FH.0.7;6
FEXP10: MOV R5,#2
      MOV R6,#0D4H
      MOV R7,#9AH
      SJMP EXP
;15
;e`=,OV
;PSW,A,B,R2-R7,2FH.0.7;6
FEXP:   MOV R5,#1
      MOV R6,#0B8H
      MOV R7,#0ABH
EXP:    CLR 2FH.0
      LCALL MOVR0
      LCALL MUL1
      SJMP EXP20
;16
;2`=,OV
;PSW,A,B,R2-R7,2FH.0.7;6
FEXP2:LCALL MOVR0
EXP20:MOV A,R3
      JZ EXP1
      MOV A,R2
      JB ACC.7,EXP2
      SETB C
      SUBB A,#6
      JC EXP2
      JB 2FH.7,EXP0
      MOV @R0,#3FH
      INC R0
      MOV @R0,#0FFH
      INC R0
      MOV @R0,#0FFH
      DEC R0
      DEC R0
      SETB OV
      RET
EXP0:   CLR A
      MOV @R0,A
      INC R0
      MOV @R0,A
      INC R0
      MOV @R0,A
      DEC R0
      DEC R0
      CLR OV
      RET
EXP1:   MOV @R0,#1
      INC R0
      MOV @R0,#80H
      INC R0
      MOV @R0,#0
      DEC R0
      DEC R0
      CLR OV
      RET
EXP2:   MOV A,R2
      MOV R5,A
      MOV A,R3
      MOV R6,A
      MOV A,R4
      MOV R7,A
      MOV C,2FH.7
      MOV 2FH.0,C
      LCALL INT
      MOV A,R3
      JZ EXP4
EXP3:   CLR C
      RR A
      INC R2
      CJNE R2,#8,EXP3
EXP4:   MOV R3,A
      JNB 2FH.7,EXP5
      CPL A
      INC A
EXP5:   PUSH ACC
      LCALL RLN
      CPL 2FH.7
      SETB F0
      LCALL AS1
      LCALL MOV0
      LCALL FPLN
      DB 77H,0B1H,0C9H
      DB 7AH,0A1H,68H
      DB 7CH,0E3H,4FH
      DB 7EH,0F5H,0E7H
      DB 0,0B1H,72H
      DB 1,80H,0
      DB 40H
      POP ACC
      ADD A,R2
      MOV R2,A
      CLR 2FH.7
      LJMP MOV0
;17
;COSF=
;PSW,A,B,R2-R7,2FH.0.6.7;6
FCOS:   LCALL FABS
      MOV R5,#1
      MOV R6,#0C9H
      MOV R7,#10H
      CLR 2FH.0
      LCALL MOVR0
      CLR F0
      LCALL AS1
      LCALL MOV0
;18
;SINF=
;PSW,A,B,R2-R7,2FH.0.6.7;6
FSIN:   MOV A,@R0
      MOV C,ACC.7
      MOV 2FH.6,C
      CLR ACC.7
      MOV @R0,A
      LCALL MOVR0
      MOV R5,#0
      MOV R6,#0A2H
      MOV R7,#0FAH
      CLR 2FH.0
      LCALL MUL1
      MOV A,R2
      MOV R5,A
      MOV A,R3
      MOV R6,A
      MOV A,R4
      MOV R7,A
      LCALL INT
      MOV A,R2
      JZ SIN2
SIN1:   CLR C
      LCALL RR1
      CJNE R2,#16,SIN1
      MOV A,R4
      JNB ACC.1,SIN2
      CPL 2FH.6
SIN2:   JB ACC.0,SIN3
      CPL 2FH.7
      SJMP SIN4
SIN3:   MOV A,R4
      INC A
      MOV R4,A
      JNZ SIN4
      INC R3
SIN4:   LCALL RLN
      SETB F0
      LCALL AS1
      LCALL MOV0
      LCALL FPLN
      DB 7DH,93H,28H
      DB 0,0,0
      DB 80H,0A4H,64H
      DB 0,0,0
      DB 1,0C9H,2
      DB 0,0,0
      DB 40H
      MOV A,@R0
      JZ SIN5
      JB ACC.7,SIN5
      INC R0
      MOV @R0,#80H
      INC R0
      MOV @R0,#0
      DEC R0
      DEC R0
      MOV A,#1
SIN5:   MOV C,2FH.6
      MOV ACC.7,C
      MOV @R0,A
      RET
;19
;arcctgF=
;PSW,A,B,R2-R7,2FH.0.5.6;7
FATN:   MOV A,@R0
      MOV C,ACC.7
      MOV 2FH.6,C
      CLR ACC.7
      MOV @R0,A
      CLR 2FH.5
      JB ACC.6,ATN1
      JZ ATN1
      SETB 2FH.5
      LCALL FRCP
ATN1:   LCALL FPLN
      DB 0FCH,0E4H,91H
      DB 7FH,8FH,37H
      DB 0FFH,0EDH,0E0H
      DB 7BH,0E8H,77H
      DB 0,0FFH,68H
      DB 72H,85H,0ECH
      DB 40H
      JNB 2FH.5,ATN2
      CPL 2FH.7
      MOV C,2FH.7
      MOV F0,C
      MOV R5,#1
      MOV R6,#0C9H
      MOV R7,#10H
      LCALL AS1
      LCALL MOV0
ATN2:   MOV A,@R0
      MOV C,2FH.6
      MOV ACC.7,C
      MOV @R0,A
      RET
;24
;fBCD=F ;11
BCDTOF: INC R0
      INC R0
      MOV A,@R0
      MOV R7,A
      DEC R0
      MOV A,@R0
      JNZ BTOF0
      DEC R0
      RET
BTOF0:MOV R6,A
      DEC R0
      MOV A,@R0
      MOV C,ACC.7
      MOV 2FH.6,C
      CLR 2FH.7
      MOV C,ACC.6
      MOV ACC.7,C
      MOV @R0,A
      CLR A
      MOV R4,A
      MOV R3,A
      MOV R2,#16
BTOF1:MOV A,R7
      ADD A,R7
      DA A
      MOV R7,A
      MOV A,R6
      ADDC A,R6
      DA A
      MOV R6,A
      MOV A,R4
      RLC A
      MOV R4,A
      MOV A,R3
      RLC A
      MOV R3,A
      DEC R2
      JNB ACC.7,BTOF1
      PUSH ACC
      MOV A,R4
      PUSH ACC
      MOV A,R2
      PUSH ACC
      MOV A,@R0
      MOV C,ACC.7
      MOV 2FH.7,C
      JNC BTOF2
      CPL A
      INC A
BTOF2:MOV R3,A
      MOV R2,#8
      MOV R4,#0
      LCALL RLN
      LCALL MOV0
      LCALL FEXP10
      LCALL MOVR0
      POP ACC
      MOV R5,A
      POP ACC
      MOV R7,A
      POP ACC
      MOV R6,A
      LCALL MUL1
      LCALL MOV0
      MOV C,2FH.6
      MOV ACC.7,C
      MOV @R0,A
      RET
;25
;F=BCDF
FTOBCD: INC R0
      MOV A,@R0
      INC R0
      ORL A,@R0
      DEC R0
      DEC R0
      JNZ FTOB0
      MOV @R0,A
      RET
FTOB0:MOV A,@R0
      MOV C,ACC.7
      MOV 2FH.6,C
      CLR ACC.7
      MOV @R0,A
      LCALL FLOG
      MOV A,R2
      MOV R5,A
      MOV A,R3
      MOV R6,A
      MOV A,R4
      MOV R7,A
      MOV C,2FH.7
      MOV 2FH.0,C
      LCALL INT
      MOV A,R3
      JZ FTOB2
FTOB1:CLR C
      RRC A
      INC R2
      CJNE R2,#8,FTOB1
FTOB2:INC A
      MOV R3,A
      MOV R2,#8
      JNB 2FH.7,FTOB3
      DEC A
      DEC A
      MOV R3,A
      CPL A
      INC A
FTOB3:PUSH ACC
      LCALL RLN
      CPL 2FH.7
      SETB F0
      LCALL AS1
      LCALL MOV0
      LCALL FEXP10
      MOV A,R2
      JZ FTOB5
FTOB4:CLR C
      LCALL RR1
      CJNE R2,#0,FTOB4
FTOB5:LCALL MOV0
      POP ACC
      MOV C,2FH.6
      MOV ACC.7,C
      MOV @R0,A
      INC R0
      MOV @R0,#0
      MOV A,R1
      PUSH ACC
      MOV A,R0
      INC A
      MOV R1,A
      MOV @R1,#0
      MOV R2,#4
FTOB6:MOV A,@R1
      SWAP A
      MOV @R1,A
      CLR A
      XCHD A,@R1
      XCH A,@R0
      SWAP A
      XCHD A,@R0
      MOV @R0,A
      MOV A,R4
      MOV B,#10
      MUL AB
      MOV R4,A
      MOV R5,B
      MOV A,R3
      MOV B,#10
      MUL AB
      ADD A,R5
      MOV R3,A
      CLR A
      ADDC A,B
      XCHD A,@R1
      DJNZ R2,FTOB6
      MOV A,R3
      JNB ACC.7,FTOB7
      MOV A,@R1
      ADD A,#1
      DA A
      MOV @R1,A
      CLR A
      ADDC A,@R0
      DA A
      MOV @R0,A
FTOB7:POP ACC
      MOV R1,A
      DEC R0
      RET
;26
;HuF=DuF
RTOD:   MOV R5,#6
      MOV R6,#0E5H
      MOV R7,#2FH
      SJMP DR
;27
;DuF=HuF
DTOR:   MOV R5,#0FBH
      MOV R6,#8EH
      MOV R7,#0FAH
DR:   LCALL MOVR0
      CLR 2FH.0
      LCALL MUL1
      LJMP MOV0
页: [1]
查看完整版本: 浮点运算子程序库