ОК, это должно сделать это:
void Convert32To80(float *value, void *outValue)
{
__asm
{
mov eax,dword ptr [value]
fld dword ptr [eax]
mov ecx,dword ptr [outValue]
fstp tbyte ptr [ecx]
}
}
Все, что я сделал, написал некоторый код на C, чтобы сделать то же самое, но для преобразования с плавающей запятой в двойное, посмотрел на разборку и затем изменил при необходимости.
Обратите внимание, что я не специалист по MSVC, и я не уверен на 100%, что могу использовать регистры EAX и ECX без их сохранения / восстановления. Другие могут знать больше и предлагать исправления.