Здрассьте всем! В WIN32 приложении в оконной процедуре вызывал функцию, содержащую примерно такой код (пешу на VC++ 6): Код (Text): //*********************// double dtemp; long ltemp; char stemp[256]; //*********************// __asm { fld dtemp; frndint; fist ltemp; }; Программулина должна определять частоту процессора с точностью до десятой доли мегагерца (получаю значение частоты в герцах и делю на 10000, полученный результат по-идее должен округляться приведенной ассемблерной вставкой и выдавать частоту в сотнях килогерц). Извращаюсь так потому, что пользуюсь чистым API с полной "липосакцией" и отказом от стандартных библиотечных функций: wsprintf(stemp, "%d.%d MHz", ltemp/10, ltemp%10); Пробовал - работает на iP733, Athlon 3800 x2, Sempron 3200 (все под ХР)... А вот запустил на сервере с двумя двухяйцевыми Xeon и Win Server2003 - работает нормально секунды 2-3, а потом начинает выдавать всякую бяку... В чем дело? Заранее спасибо.
Код (Text): fist ltemp 1) может все таки fistp - стек fpu за собой "подметать" надо 2) Раз есть fistp, то frndint не нужен
:/ Такое мне даже и в голову не приходило... Все гениальное просто! Пробовал - работает! Век живи - век учись! Пасибки! ЗЫЖ правильный ответ - вторая часть вопроса!