I want to multiply two fixed point numbers. After the multiplication I have to shift the result so that the binary point is correct. Example:
int a; int b; int c; c = (a * b) >> 10
I don't know the '166, but I suspect this is a 'C' issue rather than a processor issue. You could look up the promotion rules in K&R, or you could just try experimenting with casting a, b, and/or the product to long.