First find the point midway between the two points at the ends of the arc.
X = (x1+x2)/2, Y = (y1+y2)/2.
Now find the point on the perpendicular bisector of this line at a distance equal to half the distance between the two points. Check if the distance from this point to the end points is more or less than the target radius. If less, step out by this distance again. Keep stepping out as necessary until you have two points; one where the radius is greater than the target, the other where the radius is less than the target. (Don't actually compute the radius; compute the square of the radius and compare those.)
Now find the point midway between the two points that you have. Its distance will be either less than or greater than the radius. Replace one of the other points with this point and continue the process of successive halving of the distance until you are close enough. Since you have 24 bits of precision, it is clear that you will need fewer than that number of iterations.
Around three decades ago, I was involved in writing a floating point package for an Intel 8080 processor. You might consider using such a package for parts of your application.
Ken
Kenneth Lerman
55 Main Street
Newtown, CT 06470