wcools почитай в Зубкове про FPU. В двух словах не расскажешь, ну напишу я "fadd st0,st1", а ты спросишь "что такое st0?"...
только st0 - это не double, а extended (10 байт, а не 8, на кухарском). а для double скорее так Код (Text): dq A, B, C ; dq читай double ... fld qword [A] fadd qword [b] fstp qword [C] хоть промежеточный результат и будет 10 байт, но все же в примере фигурируют только переменные типа double
max7C4 для FPU пофигу - dword, qword,.. - все равно он все считает tword'ами (10 байт). В предложенном тобой кодом все равно используются st-регистры: wcools а вообще работа с вещественными числами на асме - геморрой полный, поэтому я бы на твоем месте написал нужную процедуру в Си.
просто это вариант ответа Ra!N'а без явного использования стековых регистров сопроцессора, а то, что они будут 10 байтовыми, я и сам отмечаю
если понемногу - то да, но когда нужно писать серьезную ф-цию, работующую с вещ. числами, то эта развлекуха превращается в механическую скушную работу. У меня был опыт написания таких ф-ций (числ. методы) - я за неделю сделал половину работы, потом все надоело страшно, и за два дня все написал на Си.
полностью ЧМ в прошлом году, все лабы курса сделал на ФПУ, при чем неделями не сидел. на этих выходных делал обращение матрицы комплексных чисел средствами ФПУ, около 300 строк в итоге получилось за 3 часа. и не сказать что я делал механическую скушную работу, держать стек ФПУ в голове довольно не привычно и интересна, и надо пожалуй действительно несколько дней подряд сидеть, чтоб надоело. в си вроде 64бита (long) double максимум, фпу - 80бит.
fpu x87 - 80 бит (10 байт). В стандарте Си нет строго установленных размеров для double, вообще он следует стандарту IEEE (не помню какой точно) - там размер вещ. типов определены косвенно - "чтобы можно хранить числа от стольки то до столькито с такой то точностью", а как будет реализация - не важно. Но если брать практику - то можно быть уверенным на 99%, что в выбранном компиляторе размер double на x86 будет 8 байт (64 бит).