FILTER4:
MOV	R6,#40H				
MOV	R2,#00H
MOV	R3,#00H
MOV	A,COUNT
PUSH	ACC					
MOV	R0,#DATA
LOOP:
MOV	36H,R6
MOV	37H,R2
MOV	38H,R3
MOV	A,@R0
MOV	R3,A
INC		R0					
MOV	R1,#MED1
CLR		3AH					
INTF:
MOV	R6,#10H
SETB	C					
CLR		PSW.5
FSDT:
JC		LOOP2
MOV	C,39H				
JB		PSW.5,LOOP1
MOV	A,R2
RRC		A
MOV	R2,A	
MOV	A,R3
RRC		A
MOV	R3,A
INC		R6
LOOP1:						
MOV	A,R4
RRC		A
MOV	R4,A
MOV	A,R5
RRC		A
MOV	R5,A
INC		R7
LOOP2:						
MOV	A,R2
JNZ		LOOP4
CJNE	R3,#0,LOOP5
MOV	R6,#41H				
LOOP3:
RET
LOOP4:
JB		ACC.7,LOOP3
LOOP5:
MOV	C,PSW.5
MOV	A,R3
RLC		A					
MOV	R3,A
MOV	A,R2
RLC		A					
MOV	R2,A
CLR		PSW.5				
DEC		R6
SJMP	LOOP2
MOV	A,R6
MOV	C,3CH
MOV	ACC.7,C
MOV	R4,A
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
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
MOV	R6,36H				
MOV	R2,37H
MOV	R3,38H
CLR		3AH					
MOV	A,R6
MOV	C,ACC.7
MOV	38H,C				
XRL		A,R7
JNB		ACC.7,LOOP6
CPL		3AH				
MOV	A,R6
MOV	C,ACC.6				
MOV	ACC.7,C
MOV	R6,A
MOV	A,R7
MOV	C,ACC.6
MOV	ACC.7,C
MOV	R7,A
CLR		C					
MOV	A,R6
SUBB	A,R7
JZ		LOOP7
CLR		PSW.5				
CLR		39H
JB		ACC.7,LOOP10
CJNE	R4,#0,LOOP11
CJNE	R5,#0,LOOP11
LOOP7:
JB		3AH,LOOP13
MOV	A,R3					
ADD		A,R5
MOV	R3,A
MOV	A,R2
ADDC	A,R4
MOV	R2,A
JNC		LOOP9
SETB	39H					
CLR		C
LOOP8:
CLR		PSW.5
LCALL	FSDT
LOOP9:
CJNE	R2,#0,FAB
CJNE	R3,#0,FAB
MOV	R4,#41H				
RET
FAB:
MOV	A,R6
MOV	C,38H
MOV	ACC.7,C
XCH		A,R4				
MOV	R6,A
RET
LOO10:
CJNE	R2,#0,LOOP12
CJNE	R3,#0, LOOP12
MOV	A ,R7
MOV	R6,A
SJMP	LOOP7				
LOOP11:
CPL		PSW.5	
LOOP12:
CLR		C					
LCALL	FSDT
SJMP	LOOP6
LOOP13:
MOV	A,R3					
CLR		C
SUBB	A,R5
MOV	R3,A
MOV	A,R2
SUBB	A,R4
MOV	R2,A
JNC		LOOP14
CLR		A					
CLR		C					
SUBB	A,R3
MOV	R3,A
CLR		A
SUBB	A,R2
MOV	R2,A
CPL		38H					
LOOP14:
SETB	C
SJMP	LOOP8
MOV	A,R4					
MOV	R6,A
DJNZ	COUNT,LOOP			
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
POP		ACC					
MOV	R2,#00H				
MOV	R3,A
MOV	A,#MED2
XCH		A,R1
MOV	R0,A					
CLR		3CH
LCALL	INTF					
FDIV: 						
INC		R0 
MOV	A,@R0
INC		R0
ORL		A,@R0
DEC		R0
DEC		R0
JNZ		DIV1
MOV	@R0,#41H				
CLR		OV      			
RET
DIV1:   
INC		R1 
MOV	A,@R1 
INC		R1 
ORL		A,@R1 
DEC		R1 
DEC		R1 
JNZ		DIV2 
SETB	OV 					
RET 
DIV2: 
LCALL	MVR0 				
MOV	A,@R0 
XRL		A,@R1 				 
RLC		A 
MOV	1FH,C 				
LCALL	MVR1 				 
LCALL	DIV3 				
LJMP	MOV0 				
DIV3: 
CLR		C 					
MOV	A,R4 
SUBB	A,R7 
MOV	A,R3 
SUBB	A,R6 
JC		DIV4 
LCALL	RR1 				
SJMP	DIV3 
DIV4: 
CLR		A 					 
XCH		A,R0 				 
PUSH	ACC 
CLR		A 
XCH		A,R1 
PUSH	ACC 
MOV	A,R2 
PUSH	ACC 
MOV	B,#10H 				
DIV5: 
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		DIV6 
MOV	R3,A 
MOV	A,R2 
MOV	R4,A 
INC		R1 					
DIV6: 
DJNZ	B,DIV5 
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     RLN 				 
MOV	A,R0
MOV	R1,A
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							
DATA	EQU		20H
MED1	EQU		30H
MED2	EQU		33H
COUNT	EQU		38H



