Here's some quite ugly inline asm, VS style. Hopefully you'll get the idea:
float mul(float f, int p)
{
__asm {
mov eax, f
mov ecx, p
shl ecx, 23
add eax, ecx
mov f, eax
}
return f;
}
This obviously does no checking for overflow, etc.