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
SW,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>+,A=0FFH>-,A=0>0
SW,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
SW,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
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
;PSW,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
;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`[R0]=[R0],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[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
|