ThaSanta, Here is a snipit of code I wrote about 4 years ago to do exactly what you are requesting..

ASM
PutMulResult macro Const32
MOVE?CB low Const32, R2
MOVE?CB low (Const32 >> 8), R2 + 1
MOVE?CB low (Const32 >> 16), R0
MOVE?CB low (Const32 >> 24), R0 + 1
endm
ENDASM

PULSIN B_IN,1,POINTER1 'MEASURE HIGH PULSE
IF POINTER1 > 0 THEN
@ PutMulResult 15000000 ' Load PBP internal vars Max= 2,147,483,648
POINTER2 = DIV32 POINTER1 ' Divide 15000000/(PERIOD/2)
SCRATCH = R2 ' Get remainder of Div32
' Change remainder to Decimals
SCRATCH = SCRATCH * 10000 ' Multiply remainder * 10,000
SCRATCH = DIV32 POINTER1 ' Divide remainder by original divisor
ELSE
POINTER2 = 0
SCRATCH = 0
ENDIF
LCDOUT $FE,LINE(1)
PAUSEUS 100
LCDOUT DEC5 POINTER2,".",DEC4 SCRATCH

I hope it works for you... It did for me...

Dave Purola,
N8NTA