cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1371|回复: 1

51浮点程序库

[复制链接]
发表于 2004-11-6 02:49:38 | 显示全部楼层 |阅读模式
<>;浮点运算子程序库
;整理:聂小猛。该资料来自“51单片机世界”http://go.163.com/~dz2000,欢迎访问。
;1,FSDT浮点数格式化     F[R0]-&gt;[RO]GeShiHua *
;2,FADD浮点数加法       F[R0]+[R1]=[R0],OV
;3,FSUB浮点数减法       F[R0]-[R1]=[R0],OV
;4,FMUL浮点数乘法       F[R0]x[R1]=[R0],OV
;5,FDIV浮点数除法       F[R0]/[R1]=R0,OV
;6,FSQR浮点数开平方     /--F[R0]=[R0],OV
;7,FPLN浮点数多项式     F[R0]DuoXiangShi=[R0],OV
;8,FABS浮点数绝对值     |F[R0]|=[R0] *COS
;9,FSGN浮点数符号       [R0] A=1&gt;+,A=0FFH&gt;-,A=0 *  
;10,FINT浮点取整函数    F[R0]QuZheng *SIN  
;11,FRCP浮点倒数函数    1/F[R0]=R0,OV *arcctg
;12,FLOG以10为底对数函数LogF[R0]=[R0],OV
;13,FLN以e为底对数函数  LnF[R0]=[R0],OV
;14,FEXP10以10为底指数函数10`[R0]=[R0],OV
;15,FEXP以e为底指数函数 e`[R0]=[R0],OV
;16,FEXP2以2为底指数函数2`[R0]=[R0],OV
;17,FCOS浮点余弦函数    COSF[R0]=[R0]
;18,FSIN浮点正弦函数    SINF[R0]=[R0]
;19,FATN浮点正切函数    arcctgF[R0]=[R0]
;24,BCDTOF浮点bcd转格式化BCDf[R0]=F[R0]  
;25,FTOBCD格式化转浮点  bcd F[R0]=BCDF[R0]
;26,RTOD浮点弧度数转度数HuF[R0]=DuF[R0]
;27,DTOR浮点度数转弧度数DuF[R0]=HuF[R0] </P>
<>
;1
;F[R0]-&gt;[RO]GeShiHua
SW,A,R2,R3,R4,2FH.7;6
FSDT:   LCALL MOVR0 ;;
        LCALL RLN
        LJMP MOV0
;2
;F[R0]+[R1]=[R0],OV
;PSW,A,R2-R7,2FH.0,2FH.7;6
FADD:   CLR F0
        SJMP AS ;;
;3
;F[R0]-[R1]=[R0],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</P>
<P>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</P>
<P>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</P>
<P>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</P>
<P>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
;F[R0]x[R1]=[R0],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</P>
<P>;5
;F[R0]/[R1]=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[R0]=[R0],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
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
;F[R0]DuoXiangShi=[R0],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[R0]|=[R0]
;A;2
FABS:   MOV A,@R0
        CLR ACC.7
        MOV @R0,A
        RET
;9
;[R0] A=1&gt;+,A=0FFH&gt;-,A=0&gt;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
;F[R0]QuZheng
;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]=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[R0]=[R0],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[R0]=[R0],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
</P>
 楼主| 发表于 2004-11-6 02:49:56 | 显示全部楼层
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`[R0]=[R0],OV
SW,A,B,R2-R7,2FH.0.7;6
FEXP10: MOV R5,#2
        MOV R6,#0D4H
        MOV R7,#9AH
        SJMP EXP
;15
;e`[R0]=[R0],OV
SW,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`[R0]=[R0],OV
SW,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[R0]=[R0]
;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[R0]=[R0]
;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[R0]=[R0]
;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[R0]=F[R0] ;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[R0]=BCDF[R0]
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[R0]=DuF[R0]
RTOD:   MOV R5,#6
        MOV R6,#0E5H
        MOV R7,#2FH
        SJMP DR
;27
;DuF[R0]=HuF[R0]
DTOR:   MOV R5,#0FBH
        MOV R6,#8EH
        MOV R7,#0FAH
DR:     LCALL MOVR0
        CLR 2FH.0
        LCALL MUL1
        LJMP MOV0
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2025-4-4 20:04 , Processed in 1.304040 second(s), 7 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表