📄 float.asm
字号:
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,B
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
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 PFA
PLN1: CLR A
MOVC A,@A+DPTR
MOV C,ACC.7
MOV PFB,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,PFB
RRC A
XRL A,FLAG
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,FLAG
RLC A
MOV PFA,C
LCALL MUL0
SJMP PLN1
FLOG: LCALL FLN
JNB OV,LOG
RET
LOG: MOV R5,#0FFH
MOV R6,#0DEH
MOV R7,#5CH
LCALL MUL1
LJMP MOV0
FLN: LCALL MVR0
JB PFA,LNOV
MOV A,R3
ORL A,R4
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 PFB
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
FE10: MOV R5,#2
MOV R6,#0D4H
MOV R7,#9AH
SJMP EXP
FEXP: MOV R5,#1
MOV R6,#0B8H
MOV R7,#0ABH
EXP: CLR PFB
LCALL MVR0
LCALL MUL1
SJMP E20
FE2: LCALL MVR0
E20: MOV A,R3
ORL A,R4
JZ EXP1
MOV A,R2
JB ACC.7,EXP2
SETB C
SUBB A,#6
JC EXP2
JB PFA,EXP0
MOV @R0,#3FH
INC R0
MOV @R0,#0FFH
INC R0
MOV @R0,#0FFH
DEC R0
DEC R0
SETB OV
RET
EXP0: MOV @R0,#41H
CLR 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,PFA
MOV PFB,C
LCALL INT
MOV A,R3
JZ EXP4
EXP3: CLR C
RRC A
INC R2
CJNE R2,#8,EXP3
EXP4: MOV R3,A
JNB PFA,EXP5
CPL A
INC A
EXP5: PUSH ACC
LCALL RLN
CPL PFA
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 PFA
LJMP MOV0
DTOF: MOV R2,A
MOV A,@R0
MOV R3,A
INC R0
MOV A,@R0
MOV R4,A
DEC R0
LCALL RLN
LJMP MOV0
FTOD: LCALL MVR0
MOV A,R2
JZ FTD4
JB ACC.7,FTD4
SETB C
SUBB A,#10H
JC FTD1
SETB OV
RET
FTD1: SETB C
MOV A,R2
SUBB A,#8
JC FTD3
FTD2: MOV B,#10H
LCALL FTD8
SETB F0
CLR C
CLR OV
RET
FTD3: MOV B,#8
LCALL FTD8
SETB C
CLR F0
CLR OV
RET
FTD4: MOV B,#0
LCALL FTD8
CLR OV
CLR F0
CLR C
RET
FTD8: MOV A,R2
CJNE A,B,FTD9
MOV A,R3
MOV @R0,A
INC R0
MOV A,R4
MOV @R0,A
DEC R0
RET
FTD9: CLR C
LCALL RR1
SJMP FTD8
BTOF: INC R0
INC R0
MOV A,@R0
MOV R7,A
DEC R0
MOV A,@R0
MOV R6,A
DEC R0
ORL A,R7
JNZ BTF0
MOV @R0,#41H
RET
BTF0: MOV A,@R0
MOV C,ACC.7
MOV PFC,C
CLR PFA
MOV C,ACC.6
MOV ACC.7,C
MOV @R0,A
JNC BTF1
ADD A,#19
JC BTF2
MOV @R0,#41H
INC R0
MOV @R0,#0
INC R0
MOV @R0,#0
DEC R0
DEC R0
RET
BTF1: SUBB A,#19
JC BTF2
MOV A,#3FH
MOV C,PFC
MOV ACC.7,C
MOV @R0,A
INC R0
MOV @R0,#0FFH
INC R0
MOV @R0,#0FFH
DEC R0
DEC R0
RET
BTF2: CLR A
MOV R4,A
MOV R3,A
MOV R2,#10H
BTF3: 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,BTF3
MOV A,R6
ADD A,#0B0H
CLR A
ADDC A,R4
MOV R4,A
CLR A
ADDC A,R3
MOV R3,A
JNC BTF4
MOV R3,#80H
INC R2
BTF4: MOV DPTR,#BTFL
MOV A,@R0
ADD A,#19
MOV B,#3
MUL AB
ADD A,DPL
MOV DPL,A
JNC BTF5
INC DPH
BTF5: CLR A
MOVC A,@A+DPTR
MOV C,ACC.6
MOV ACC.7,C
MOV R5,A
MOV A,#1
MOVC A,@A+DPTR
MOV R6,A
MOV A,#2
MOVC A,@A+DPTR
MOV R7,A
LCALL MUL1
MOV C,PFC
MOV PFA,C
LJMP MOV0
FTOB: INC R0
MOV A,@R0
INC R0
ORL A,@R0
DEC R0
DEC R0
JNZ FTB0
MOV @R0,#41H
RET
FTB0: MOV A,@R0
MOV C,ACC.7
MOV PFC,C
CLR ACC.7
MOV @R0,A
LCALL MVR0
MOV DPTR,#BFL0
MOV B,#0
MOV A,R2
JNB ACC.7,FTB1
MOV DPTR,#BTFL
MOV B,#0EDH
ADD A,#16
JNC FTB1
MOV DPTR,#BFLN
MOV B,#0FAH
FTB1: CLR A
MOVC A,@A+DPTR
MOV C,ACC.6
MOV ACC.7,C
MOV R5,A
MOV A,#1
MOVC A,@A+DPTR
MOV R6,A
MOV A,#2
MOVC A,@A+DPTR
MOV R7,A
MOV A,R5
CLR C
SUBB A,R2
JB ACC.7,FTB2
JNZ FTB3
MOV A,R6
CLR C
SUBB A,R3
JC FTB2
JNZ FTB3
MOV A,R7
CLR C
SUBB A,R4
JC FTB2
JNZ FTB3
MOV R5,B
INC R5
MOV R6,#10H
MOV R7,#0
SJMP FTB6
FTB2: INC DPTR
INC DPTR
INC DPTR
INC B
SJMP FTB1
FTB3: PUSH B
LCALL DIV3
FTB4: MOV A,R2
JZ FTB5
CLR C
LCALL RR1
SJMP FTB4
FTB5: POP ACC
MOV R5,A
LCALL HB2
MOV R6,A
LCALL HB2
MOV R7,A
MOV A,R3
RLC A
CLR A
ADDC A,R7
DA A
MOV R7,A
CLR A
ADDC A,R6
DA A
MOV R6,A
JNC FTB6
MOV R6,#10H
INC R5
FTB6: INC R0
INC R0
MOV A,R7
MOV @R0,A
DEC R0
MOV A,R6
MOV @R0,A
DEC R0
MOV A,R5
MOV C,PFC
MOV ACC.7,C
MOV @R0,A
RET
HB2: MOV A,R4
MOV B,#100
MUL AB
MOV R4,A
MOV A,B
XCH A,R3
MOV B,#100
MUL AB
ADD A,R3
MOV R3,A
JNC HB21
INC B
HB21: MOV A,B
MOV B,#10
DIV AB
SWAP A
ORL A,B
RET
BTFL: DB 41H,0ECH,1EH
DB 45H,93H,93H
DB 48H,0B8H,78H
DB 4BH,0E6H,96H
DB 4FH,90H,1DH
DB 52H,0B4H,25H
DB 55H,0E1H,2EH
DB 59H,8CH,0BDH
DB 5CH,0AFH,0ECH
DB 5FH,0DBH,0E7H
DB 63H,89H,70H
DB 66H,0ABH,0CCH
DB 69H,0D6H,0C0H
BFLN: DB 6DH,86H,38H
DB 70H,0A7H,0C6H
DB 73H,0D1H,0B7H
DB 77H,83H,12H
DB 7AH,0A3H,0D7H
DB 7DH,0CCH,0CDH
BFL0: DB 1,80H,00H
DB 4,0A0H,00H
DB 7,0C8H,00H
DB 0AH,0FAH,00H
DB 0EH,9CH,40H
DB 11H,0C3H,50H
DB 14H,0F4H,24H
DB 18H,98H,97H
DB 1BH,0BEH,0BCH
DB 1EH,0EEH,6BH
DB 22H,95H,03H
DB 25H,0BAH,44H
DB 28H,0E8H,0D5H
DB 2CH,91H,85H
DB 2FH,0B5H,0E6H
DB 32H,0E3H,60H
DB 36H,8EH,1CH
DB 39H,31H,0A3H
DB 3CH,0DEH,0BH
DB 40H,8AH,0C7H
FCOS: LCALL FABS
MOV R5,#1
MOV R6,#0C9H
MOV R7,#10H
CLR PFB
LCALL MVR0
CLR F0
LCALL AS1
LCALL MOV0
FSIN: MOV A,@R0
MOV C,ACC.7
MOV PFC,C
CLR ACC.7
MOV @R0,A
LCALL MVR0
MOV R5,#0
MOV R6,#0A2H
MOV R7,#0FAH
CLR PFB
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,#10H,SIN1
MOV A,R4
JNB ACC.1,SIN2
CPL PFC
SIN2: JB ACC.0,SIN3
CPL PFA
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 41H,0,0
DB 80H,0A4H,64H
DB 41H,0,0
DB 1,0C9H,2
DB 41H,0,0
DB 40H
MOV A,@R0
JZ SIN5
JB ACC.6,SIN5
INC R0
MOV @R0,#80H
INC R0
MOV @R0,#0
DEC R0
DEC R0
MOV A,#1
SIN5: MOV C,PFC
MOV ACC.7,C
MOV @R0,A
RET
FATN: MOV A,@R0
MOV C,ACC.7
MOV PFC,C
CLR ACC.7
MOV @R0,A
CLR PFD
JB ACC.6,ATN1
JZ ATN1
SETB PFD
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 PFD,ATN2
CPL PFA
MOV C,PFA
MOV F0,C
MOV R5,#1
MOV R6,#0C9H
MOV R7,#10H
LCALL AS1
LCALL MOV0
ATN2: MOV A,@R0
MOV C,PFC
MOV ACC.7,C
MOV @R0,A
RET
RTOD: MOV R5,#6
MOV R6,#0E5H
MOV R7,#2FH
SJMP DR
DTOR: MOV R5,#0FBH
MOV R6,#8EH
MOV R7,#0FAH
DR: LCALL MVR0
CLR PFB
LCALL MUL1
LJMP MOV0
;------------------------------
t0serv:
nop
reti
;------------------------------
t2serv:
nop
reti
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -