7.2.5反正切函数
FATN:
MOV A,@R0
MOV C,ACC.7 MOV 1DH,C CLR ACC.7 MOV @R0,A
CLR 1CH JB ACC.6,ATN1
JZ ATN1
SETB 1CH LCALL FRCP
ATN1:
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 1FH
PLN1: CLR A
MOVC A,@A+DPTR MOV C,ACC.7 MOV 1EH,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,1EH RRC A
XRL A,23H
RLC A
MOV F0,C AS1: MOV A,R6 ORL A,R7
JZ AS2 MOV A,R3
ORL A,R4
JNZ EQ1
MOV A,R6 MOV R3,A
MOV A,R7
MOV R4,A
MOV A,R5
MOV R2,A
MOV C,1EH
MOV 1FH,C
CLR A
MOVC A,@A+DPTR CJNE A,#40H,PLN2
XCH A,R0 XCH A,R1
XCH A,R0
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,1FH
MOV ACC.7,C MOV @R0,A
CLR ACC.7 CLR OV
CJNE A,#3FH,MV01
SETB OV MV01:
MOV A,@R0
CLR A INC DPTR
JMP @A+DPTR
PLN2:
MOV A,@R1 XRL A,23H RLC A
MOV 1FH,C LCALL MUL0 SJMP PLN1 FLOG:
MOV A,@R0 MOV C,ACC.7 MOV 1FH,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
JB 1FH,LNOV
MOV A,R3 ORL A,R4 JNZ LN0 LNOV:
SETB OV
JNB OV,LOG RET
MUL0:
LCALL MVR1 MUL1:
MOV A,R3 ORL A,R4 JZ MUL6
MOV A,R6 ORL A,R7 JZ MUL5
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
JB ACC.7,MUL2
MOV A,R7
RLC A
MOV R7,A
LCALL RL1 MUL2:
MOV A,R7
JNB ACC.7,MUL3
INC R4
MOV A,R4
JNZ MUL3 INC R3
MOV A,R3
JNZ MUL3 MOV R3,#80H INC R2
MUL3: MOV A,R2
ADD A,R5 MD:
MOV R2,A
JB ACC.7,MUL4 JNB ACC.6,MUL6 MOV R2,#3FH SETB OV
RET
MUL4:
JB ACC.6,MUL6 MUL5:
CLR A
MOV R3,A
MOV R4,A
MOV R2,#41H
MUL6:
CLR OV
RET
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 1CH,ATN2 CPL 1FH MOV C,1FH
MOV F0,C MOV R5,#1
MOV R6,#0C9H MOV R7,#10H
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,1FH
MOV ACC.7,C
MOV @R0,A
CLR ACC.7 CLR OV
CJNE A,#3FH,MV01 SETB OV MV01:
MOV A,@R0
CLR A
INC DPTR
JMP @A+DPTR RET