Тема: VC++ inline assembler, як додати 2 floata використовуючи FPU?
Хай. Ото завдання було, розібратись з тим, як перевести float в 80-розрядне бінарне, а потім зробити щось з float'ами використовуючи Float Point Unit.
Ну, з просто ассемблеру я знаю, що два числа мона додати от так
int integer = 4;
__asm {
mov eax, integer
add eax,2
mov integer,eax
}
cout << integer;
І це дуже-дуже просто.
А як таке саме зробити, але вже з float'ом?
Написав от так
float fl = 4.0f;
__asm {
fild fl // тіпо запихуємо fl до отого стеку, чи як його там
fadd fl, st(0) // а тот тіпо додаємо st(0) до fl і результат заносимо в fl
}
Але мене спіткала помилка
error C2415: improper operand type
І вона вказує на строку
fadd fl, st(0)
Що робити, аби було файно?