📄 intf.asm
字号:
INTF:MOV A,30H
MOV R2,A
MOV A,31H
MOV R3,A
MOV R1,#36H
LCALL INF
MOV A,32H
MOV R2,A
MOV A,33H
MOV R3,A
MOV R1,#39H
LCALL INF
MOV R0,#36H
MOV R1,#39H
CALL FMUL ;@R0(3031)*@R1(3233)----R4R2R3
MOV R1,#3CH ;R4R2R3----@R1(3C-3E)
CALL FSTR
ITF:MOV A,40H ;ITF-INT:4041/4243送入4C-4E
MOV R2,A
MOV A,41H
MOV R3,A
MOV R1,#46H
LCALL INF
MOV A,42H
MOV R2,A
MOV A,43H
MOV R3,A
MOV R1,#49H
LCALL INF
NF:MOV R0,#46H
MOV R1,#49H
CALL FDIV
MOV R1,#4CH
CALL FSTR
INT:MOV R0,#49H
MOV R1,#4CH
LCALL FADD
MOV R1,#4CH
LCALL FSTR
EE:MOV R0,#4CH
LCALL FINT
ED:SJMP $
INF:MOV R6,#16
SETB C
CLR F0
CALL FSDT
MOV A,R6
MOV R4,A
CALL FSTR
RET
FINT:MOV R6,#00H
MOV R7,#00H
CLR F0
INC R0
MOV A,@R0
MOV R2,A
INC R0
MOV A,@R0
MOV R3,A
DEC R0
DEC R0
MOV A,@R0
MOV C,ACC.7
MOV 3CH,C
CLR ACC.7
JNB ACC.6,FIN1
MOV R2,#00H
MOV R3,#00H
RET
FIN1:CJNE A,#11H,$+3
JC FIN3
SETB F0
MOV R2,#00H
MOV R3,#00H
RET
FIN3:CJNE A,#10H,FIN4
MOV A,R6
ANL A,#80H
JZ FIN5
CLR C
MOV A,R3
ADDC A,#01H
MOV R3,A
MOV A,R2
ADDC A,#00H
MOV R2,A
FIN5:RET
FIN4:CLR C
XCH A,R2
RRC A
XCH A,R2
XCH A,R3
RRC A
XCH A,R3
MOV B,A
MOV A,R6
RRC A
MOV R6,A
MOV A,R7
RRC A
MOV R7,A
MOV A,B
INC A
SJMP FIN3
ORG 0900H
DMUL:MOV A,R3
MOV B,R5
MUL AB
MOV R7,B
MOV A,R3
MOV B,R4
MUL AB
ADD A,R7
MOV R7,A
CLR A
ADDC A,B
MOV R3,A
MOV A,R2
MOV B,R5
MUL AB
ADD A,R7
MOV R7,A
MOV A,R3
ADDC A,B
MOV R3,A
MOV 0D5H,C
MOV A,R2
MOV B,R4
MUL AB
ADD A,R3
MOV R3,A
CLR A
ADDC A,B
MOV C,0D5H
ADDC A,#00H
MOV R2,A
RET
DDIV:MOV A,R1
PUSH ACC
MOV B,#10H
DV0:CLR C
MOV A,R6
RLC A
MOV R6,A
MOV A,R7
RLC A
MOV R7,A
MOV A,R3
RLC A
MOV R3,A
XCH A,R2
RLC A
XCH A,R2
MOV 0D5H,C
CLR C
SUBB A,R5
MOV R1,A
MOV A,R2
SUBB A,R4
JB 0D5H,DV1
JC DV2
DV1:MOV R2,A
MOV A,R1
MOV R3,A
INC R6
DV2:DJNZ B,DV0
POP ACC
MOV R1,A
MOV A,R7
MOV R2,A
MOV A,R6
MOV R3,A
RET
FMLD:MOV A,@R0
MOV R6,A
INC R0
MOV A,@R0
MOV R2,A
INC R0
MOV A,@R0
MOV R3,A
DEC R0
DEC R0
MOV A,@R1
MOV R7,A
INC R1
MOV A,@R1
MOV R4,A
INC R1
MOV A,@R1
MOV R5,A
DEC R1
DEC R1
RET
FABP:MOV A,R6
MOV C,0E7H
MOV 38H,C
XRL A,R7
JNB 0E7H,ABP0
CPL 3AH
ABP0:MOV A,R6
MOV C,0E6H
MOV 0E7H,C
MOV R6,A
MOV A,R7
MOV C,0E6H
MOV 0E7H,C
MOV R7,A
CLR C
MOV A,R6
SUBB A,R7
JZ ABP1
CLR 0D5H
CLR 39H
JB 0E7H,ABP5
CJNE R4,#00H,ABP6
CJNE R5,#00H,ABP6
ABP1:JB 3AH,ABP8
MOV A,R3
ADD A,R5
MOV R3,A
MOV A,R2
ADDC A,R4
MOV R2,A
JNC ABP3
SETB 39H
CLR C
ABP2:CLR 0D5H
LCALL FSDT
ABP3:CJNE R2,#00H,ABP4
CJNE R3,#00H,ABP4
MOV R4,#41H
RET
ABP4:MOV A,R6
MOV C,38H
MOV 0E7H,C
XCH A,R4
MOV R6,A
RET
ABP5:CJNE R2,#00H,ABP7
CJNE R3,#00H,ABP7
MOV A,R7
MOV R6,A
SJMP ABP1
ABP6:CPL 0D5H
ABP7:CLR C
LCALL FSDT
SJMP ABP0
ABP8:MOV A,R3
CLR C
SUBB A,R5
MOV R3,A
MOV A,R2
SUBB A,R4
MOV R2,A
JNC ABP9
CLR A
CLR C
SUBB A,R3
MOV R3,A
CLR A
SUBB A,R2
MOV R2,A
CPL 38H
ABP9:SETB C
SJMP ABP2
FADD:CLR 3AH
LCALL FMLD
LCALL FABP
RET
FSUB:SETB 3AH
LCALL FMLD
LCALL FABP
RET
FMUL: LCALL FMLD
MOV A,R6
XRL A,R7
MOV C,0E7H
MOV 38H,C
LCALL DMUL
MOV A,R7
MOV C,0E7H
MOV 0D5H,C
MOV A,@R0
ADD A,@R1
MOV R6,A
SETB C
LCALL FSDT
MOV A,R6
MOV C,38H
MOV 0E7H,C
MOV R4,A
RET
FDIV:LCALL FMLD
MOV A,R6
XRL A,R7
MOV C,0E7H
MOV 38H,C
CLR A
MOV R6,A
MOV R7,A
CJNE R4,#00H,FDV0
CJNE R5,#00H,FDV0
SETB C
RET
FDV0:MOV A,R3
SUBB A,R5
MOV A,R2
SUBB A,R4
JC FDV1
CLR 0D5H
CLR 39H
LCALL FSDT
MOV A,R7
RRC A
MOV R7,A
CLR C
SJMP FDV0
FDV1:CLR A
XCH A,R6
PUSH ACC
LCALL DDIV
POP ACC
ADD A,@R0
CLR C
SUBB A,@R1
MOV C,38H
MOV 0E7H,C
MOV R4,A
CLR C
RET
FSTR:MOV A,R4
MOV @R1,A
INC R1
MOV A,R2
MOV @R1,A
INC R1
MOV A,R3
MOV @R1,A
DEC R1
DEC R1
RET
FSQR:MOV A,@R0
JB 0E7H,FQR2
MOV @R1,A
INC R0
INC R1
MOV A,@R0
MOV @R1,A
INC R0
INC R1
MOV A,@R0
MOV @R1,A
DEC R0
DEC R0
DEC R1
DEC R1
FQR0:LCALL FDIV
MOV R6,A
MOV A,@R1
MOV R7,A
INC R1
MOV A,@R1
MOV R4,A
INC R1
MOV A,@R1
MOV R5,A
DEC R1
DEC R1
CLR 3AH
LCALL FABP
CLR 0D5H
MOV A,R4
DEC A
CLR 0E7H
MOV R4,A
MOV B,R7
CLR 0F7H
CJNE A,B,FQR1
MOV A,R5
SUBB A,R3
ANL A,#0FCH
MOV R7,A
MOV A,R6
SUBB A,R2
JNZ FQR1
CJNE R7,#00H,FQR1
SETB 0D5H
FQR1:LCALL FSTR
JNB 0D5H,FQR0
RET
FQR2:CLR 0D5H
RET
FSDT:JC FDT1
MOV C,39H
JB 0D5H,FDT0
MOV A,R2
RRC A
MOV R2,A
MOV A,R3
RRC A
MOV R3,A
INC R6
RET
FDT0:MOV A,R4
RRC A
MOV R4,A
MOV A,R5
RRC A
MOV R5,A
INC R7
RET
FDT1:MOV A,R2
JNZ FDT3
CJNE R3,#00H,FDT4
MOV R6,#42H
FDT2:RET
FDT3:JB 0E7H,FDT2
FDT4:MOV C,0D5H
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
CLR 0D5H
DEC R6
SJMP FDT1
FPLN: POP DPH
POP DPL
CLR A
MOVC A,@A+DPTR
MOV R6,A
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV R2,A
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV R3,A
INC DPTR
FPL2: MOV A,@R0
XRL A,R6
MOV C,0E7H
MOV 38H,C
INC R0
MOV A,@R0
MOV R4,A
INC R0
MOV A,@R0
MOV R5,A
DEC R0
DEC R0
LCALL DMUL
MOV A,R2
JB 0E7H,FPL1
MOV A,R7
RLC A
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
DEC R6
FPL1: MOV A,R6
ADD A,@R0
MOV C,38H
MOV 0E7H,C
MOV R6,A
CLR A
MOVC A,@A+DPTR
MOV R7,A
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV R4,A
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV R5,A
INC DPTR
CLR 3AH
LCALL FABP
MOV A,R4
MOV R6,A
CLR A
MOVC A,@A+DPTR
CJNE A,#40H,FPL2
LCALL FSTR
INC DPTR
CLR A
JMP @A+DPTR
FBTD: MOV A,@R0
MOV C,0E7H
MOV 3CH,C
MOV C,0E6H
MOV 0E7H,C
MOV R6,A
INC R0
MOV A,@R0
MOV R2,A
INC R0
MOV A,@R0
MOV R3,A
DEC R0
DEC R0
CJNE R2,#00H,FBT1
CJNE R3,#00H,FBT1
CLR A
MOV @R1,A
INC R1
MOV @R1,A
INC R1
MOV @R1,A
INC R1
MOV @R1,A
INC R1
MOV @R1,A
INC R1
MOV @R1,A
FB13: DEC R1
DEC R1
DEC R1
DEC R1
DEC R1
RET
FBT1: MOV @R1,#00H
JB 3EH,FBT2
DEC @R1
FBT2: INC R1
MOV @R1,#01H
JNB 3EH,FBT3
INC @R1
JNB 3FH,FBT3
INC @R1
FBT3: MOV A,R6
CLR C
SUBB A,@R1
JZ FBT4
JNB 0E6H,FBT5
FBT0:DEC @R1
DEC @R1
DEC @R1
DEC @R1
FB15: MOV A,R6
CLR C
SUBB A,@R1
JZ FBT6
JB 0E6H,FBT7
FB16: JNB 3EH,FBT8
DEC R6
JNB 3FH,FBT8
DEC R6
FBT8: CJNE R6,#00H,FBT9
MOV R6,#05H
JNB 3EH,FB10
MOV R7,#01H
JNB 3FH,FB11
INC R7
FB11: CLR A
CLR C
FB12: XCH A,R3
RLC A
XCH A,R3
XCH A,R2
RLC A
XCH A,R2
RLC A
DJNZ R7,FB12
DEC R6
MOV @R1,A
INC R1
FB10: MOV A,R3
MOV B,#0AH
MUL AB
MOV R3,A
MOV R7,B
MOV A,R2
MOV B,#0AH
MUL AB
ADD A,R7
MOV R2,A
CLR A
ADDC A,B
MOV @R1,A
INC R1
DJNZ R6,FB10
DEC R1
SJMP FB13
FBT4: MOV A,R2
SUBB A,#80H
JC FBT0
FBT5: MOV R5,#0CDH
MOV R4,#0CCH
LCALL DMUL
MOV A,R2
JB 0E7H,FB14
MOV A,R7
MOV C,0E7H
ORL C,0E6H
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
DEC R6
FB19: MOV A,R6
ADD A,#0FDH
MOV R6,A
DEC R1
INC @R1
INC R1
SJMP FBT3
FB18: SJMP FB15
FBT9: MOV A,R2
RRC A
MOV R2,A
MOV A,R3
RRC A
MOV R3,A
INC R6
SJMP FBT8
FBT6: MOV A,#0CBH
CLR C
SUBB A,R3
MOV A,#0CCH
SUBB A,R2
JC FB16
FBT7: MOV R4,#0A0H
MOV R5,#00H
LCALL DMUL
MOV A,R2
JB 0E7H,FB17
MOV A,R7
MOV C,0E7H
ORL C,0E6H
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
DEC R6
FB20: MOV A,R6
ADD A,#04H
MOV R6,A
DEC R1
DEC @R1
INC R1
SJMP FB18
FB14: MOV A,R7
JNB 0E7H,FB19
MOV A,R3
ORL A,#01H
MOV R3,A
SJMP FB19
FB17: MOV A,R7
JNB 0E7H,FB20
MOV A,R3
ORL A,#01H
MOV R3,A
SJMP FB20
FSIN: MOV @R1,#7FH
INC R1
MOV @R1,#0A2H
INC R1
MOV @R1,#0FAH
DEC R1
DEC R1
LCALL FMUL
MOV A,R0
PUSH ACC
INC SP
MOV A,SP
INC SP
INC SP
XCH A,R1
MOV R0,A
MOV A,R4
CLR 0E7H
MOV R4,A
JZ FSN1
JNB 0E6H,FSN2
FSN1: MOV R4,#42H
MOV R2,#00H
MOV R3,#00H
SJMP FSN3
FSN4: CLR C
MOV A,R2
RRC A
MOV R2,A
MOV A,R3
RRC A
MOV R3,A
INC R4
FSN2: CJNE R4,#10H,FSN4
FSN3: MOV A,R3
MOV C,0E0H
MOV 3BH,C
JNB 38H,FSN5
CPL 3BH
FSN5: MOV A,R4
MOV R6,A
SETB C
CLR 0D5H
LCALL FSDT
MOV A,R6
MOV C,38H
MOV 0E7H,C
MOV R4,A
LCALL FSTR
MOV @R0,#02H
INC R0
MOV @R0,#0C9H
INC R0
MOV @R0,#10H
DEC R0
DEC R0
LCALL FMUL
MOV A,R0
XCH A,R1
DEC A
MOV SP,A
LCALL FSTR
POP ACC
PUSH ACC
MOV R0,A
LCALL FSUB
MOV A,R4
CLR 0E7H
MOV R4,A
LCALL FSTR
MOV A,R1
MOV R0,A
LCALL FPLN
DB 0F7H
DB 0A8H,70H
DB 7AH,0C6H
DB 70H,0F9H
DB 0C5H,68H
DB 0FEH
DB 0A5H
DB 41H,0FAH
DB 26H
DB 0A0H,01
DB 80H,0EH
DB 0FBH
DB 00
DB 1CH
DB 40H
MOV A,@R1
MOV C,3BH
MOV 0E7H,C
MOV @R1,A
POP ACC
MOV R0,A
RET
MOV A,R1
PUSH ACC
IMUL: MOV A,R2
MOV C,0E7H
MOV 0D5H,C
MOV A,R5
MOV C,0E7H
ORL C,0D5H
MOV 0D5H,C
MOV A,R3
MOV B,R6
MUL AB
MOV R4,A
MOV R7,B
MOV A,R2
CLR 0E7H
MOV B,A
MOV A,R6
MUL AB
ADD A,R7
MOV R7,A
MOV A,R5
CLR 0E7H
MOV B,R3
MUL AB
ADD A,R7
MOV C,0D5H
MOV 0E7H,C
MOV R2,A
MOV A,R4
MOV R3,A
RET
DSIN: MOV A,R4
PUSH ACC
MOV R2,A
MOV A,R5
PUSH ACC
MOV R3,A
LCALL DMUL
MOV R4,A
MOV A,R3
MOV R5,A
MOV R2,#12H
MOV R3,#65H
LCALL DMUL
MOV A,#64H
CLR C
SUBB A,R3
MOV R3,A
MOV A,#0A4H
SUBB A,R2
MOV R2,A
LCALL DMUL
MOV A,#03H
CLR C
SUBB A,R3
MOV R3,A
MOV A,#92H
SUBB A,R2
MOV R2,A
POP ACC
MOV R5,A
POP ACC
MOV R4,A
LCALL DMUL
MOV A,R3
ADD A,R5
MOV R3,A
MOV A,R2
ADDC A,R4
MOV R2,A
JNC DSN1
MOV R2,#0FFH
MOV R3,#0FFH
DSN1: RET
FEXP: MOV @R1,#01H
INC R1
MOV @R1,#0B8H
INC R1
MOV @R1,#0ABH
DEC R1
DEC R1
LCALL FMUL
LCALL FSTR
MOV C,38H
MOV 3BH,C
MOV A,R4
CLR 0E7H
MOV R4,A
JNB 0E6H,EXP1
MOV R2,#00H
SJMP EXP2
EXP1: CJNE R4,#07H,EXP3
EXP3: JC EXP4
SETB 0D5H
RET
EXP5: CLR C
MOV A,R2
RRC A
MOV R2,A
MOV A,R3
RRC A
MOV R3,A
INC R4
EXP4: CJNE R4,#08H,EXP5
EXP2: MOV A,R0
PUSH ACC
INC SP
MOV A,SP
INC SP
INC SP
XCH A,R1
MOV R0,A
MOV A,R2
PUSH ACC
MOV R3,#00H
MOV R6,#08H
SETB C
CLR 0D5H
LCALL FSDT
MOV A,R6
MOV C,3BH
MOV 0E7H,C
MOV R4,A
LCALL FSTR
LCALL FSUB
LCALL FSTR
MOV A,R0
XCH A,R1
MOV R0,A
LCALL FPLN
DB 77H,0B1H
DB 0C9H
DB 7AH,0A1H
DB 68H
DB 7CH,0E3H
DB 4FH
DB 7EH,0F5H
DB 0E7H
DB 00
DB 0B1H,72H
DB 01,80H
DB 00
DB 40H
POP ACC
JNB 3BH,EXP6
CPL A
INC A
EXP6: ADD A,@R1
CLR 0E7H
MOV @R1,A
DEC R0
MOV SP,R0
POP ACC
MOV R0,A
RET
FLNX: CLR 0D5H
MOV A,@R0
JNB 0E7H,FLX1
SETB 0D5H
FLX2: RET
FLX1: LCALL NORM
JB 0D5H,FLX2
MOV A,R0
PUSH ACC
MOV A,@R0
PUSH ACC
CLR A
PUSH ACC
INC R0
MOV A,@R0
MOV R2,A
INC R0
MOV A,@R0
MOV R0,SP
CLR C
RLC A
XCH A,R2
RLC A
PUSH ACC
MOV A,R2
PUSH ACC
LCALL FPLN
DB 7BH,0F4H
DB 30H,0FEH,85H
DB 13H
DB 7FH,91H
DB 51H,0FFH
DB 0FAH
DB 0BAH,00,0FFH
DB 0CAH
DB 7BH,00
DB 18H
DB 40H
DEC R0
MOV A,@R0
DEC A
JZ FLX3
MOV C,0E6H
MOV 3BH,C
MOV 0E7H,C
JNC FLX4
CPL A
INC A
FLX4: MOV R5,A
MOV B,#72H
MUL AB
XCH A,R5
MOV R3,B
MOV B,#0B1H
MUL AB
ADD A,R3
MOV R3,A
CLR A
ADDC A,B
MOV R2,A
MOV R4,#08H
MOV A,R2
FLX6: JB 0E7H,FLX5
MOV A,R5
RLC A
MOV R5,A
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
DEC R4
SJMP FLX6
FLX5: MOV A,R4
MOV C,3BH
MOV 0E7H,C
MOV R4,A
MOV A,R0
XCH A,R1
MOV R0,A
LCALL FSTR
MOV A,R0
XCH A,R1
MOV R0,A
LCALL FADD
LCALL FSTR
FLX3: DEC R0
MOV SP,R0
POP ACC
MOV R0,A
RET
NORM: MOV A,@R0
MOV C,0E7H
MOV 0D5H,C
INC R0
MOV C,0E6H
MOV 0E7H,C
MOV R2,A
MOV A,@R0
INC R0
JNZ NOM1
MOV A,@R0
JNZ NOM2
DEC R0
DEC R0
MOV A,#45H
NOM4: MOV C,0D5H
MOV 0E7H,C
MOV @R0,A
RET
NOM1: JB 0E7H,NOM3
NOM2: CLR C
MOV A,@R0
RLC A
MOV @R0,A
DEC R0
MOV A,@R0
RLC A
MOV @R0,A
INC R0
DEC R2
CJNE R2,#0C0H,NOM1
NOM3: DEC R0
DEC R0
MOV A,R2
SJMP NOM4
FATN: CLR 3BH
MOV A,R0
PUSH ACC
MOV A,@R0
MOV C,0E7H
MOV 3DH,C
CLR 0E7H
PUSH ACC
INC R0
MOV A,@R0
PUSH ACC
INC R0
MOV A,@R0
PUSH ACC
MOV R0,SP
DEC R0
DEC R0
MOV A,@R0
DEC A
JB 0E6H,FAT1
MOV A,R0
XCH A,R1
MOV R0,A
MOV @R0,#01H
INC R0
MOV @R0,#80H
INC R0
MOV @R0,#00H
DEC R0
DEC R0
LCALL FDIV
LCALL FSTR
SETB 3BH
MOV A,R0
XCH A,R1
MOV R0,A
FAT1: LCALL FPLN
DB 82H,0CCH
DB 0A0H,05
DB 80H,38H
DB 85H,0D4H,0F4H
DB 01,0D0H
DB 16H
DB 06H
DB 0E4H
DB 0A7H,77H
DB 0EFH
DB 0C9H
DB 40H
JNB 3BH,FAT2
MOV @R0,#07H
INC R0
MOV @R0,#0B4H
INC R0
MOV @R0,#00H
DEC R0
DEC R0
LCALL FSUB
LCALL FSTR
FAT2: MOV A,@R1
MOV C,3DH
MOV 0E7H,C
MOV @R1,A
DEC R0
MOV SP,R0
POP ACC
MOV R0,A
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -