Числа с плавающей точкой

Тема в разделе "WASM.BEGINNERS", создана пользователем wcools, 3 ноя 2008.

  1. wcools

    wcools New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2008
    Сообщения:
    89
    Подскажите пожалуйста как складывать в фасме double числа с плавающей точкой.
     
  2. Ra!N

    Ra!N New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2006
    Сообщения:
    111
    wcools
    fadd
     
  3. wcools

    wcools New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2008
    Сообщения:
    89
    А можно по точнее , ну откуда куда... может пример какой.
     
  4. Ra!N

    Ra!N New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2006
    Сообщения:
    111
    wcools
    почитай в Зубкове про FPU. В двух словах не расскажешь, ну напишу я "fadd st0,st1", а ты спросишь "что такое st0?"...
     
  5. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    только st0 - это не double, а extended (10 байт, а не 8, на кухарском). а для double скорее так
    Код (Text):
    1. dq A, B, C ; dq читай double
    2. ...
    3. fld qword [A]
    4. fadd qword [b]
    5. fstp qword [C]
    хоть промежеточный результат и будет 10 байт, но все же в примере фигурируют только переменные типа double
     
  6. Ra!N

    Ra!N New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2006
    Сообщения:
    111
    max7C4
    для FPU пофигу - dword, qword,.. - все равно он все считает tword'ами (10 байт). В предложенном тобой кодом все равно используются st-регистры:
    wcools
    а вообще работа с вещественными числами на асме - геморрой полный, поэтому я бы на твоем месте написал нужную процедуру в Си.
     
  7. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    просто это вариант ответа Ra!N'а без явного использования стековых регистров сопроцессора, а то, что они будут 10 байтовыми, я и сам отмечаю
     
  8. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    а помоему развлекуха неплохая и соображалку напрягает больше чем mov туда, сюда.
     
  9. Ra!N

    Ra!N New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2006
    Сообщения:
    111
    если понемногу - то да, но когда нужно писать серьезную ф-цию, работующую с вещ. числами, то эта развлекуха превращается в механическую скушную работу. У меня был опыт написания таких ф-ций (числ. методы) - я за неделю сделал половину работы, потом все надоело страшно, и за два дня все написал на Си.
     
  10. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    полностью ЧМ в прошлом году, все лабы курса сделал на ФПУ, при чем неделями не сидел.
    на этих выходных делал обращение матрицы комплексных чисел средствами ФПУ, около 300 строк в итоге получилось за 3 часа. и не сказать что я делал механическую скушную работу, держать стек ФПУ в голове довольно не привычно и интересна, и надо пожалуй действительно несколько дней подряд сидеть, чтоб надоело.
    в си вроде 64бита (long) double максимум, фпу - 80бит.
     
  11. Ra!N

    Ra!N New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2006
    Сообщения:
    111
    fpu x87 - 80 бит (10 байт).
    В стандарте Си нет строго установленных размеров для double, вообще он следует стандарту IEEE (не помню какой точно) - там размер вещ. типов определены косвенно - "чтобы можно хранить числа от стольки то до столькито с такой то точностью", а как будет реализация - не важно. Но если брать практику - то можно быть уверенным на 99%, что в выбранном компиляторе размер double на x86 будет 8 байт (64 бит).
     
  12. wcools

    wcools New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2008
    Сообщения:
    89
    Спасибо, разобрался.
    PS: Можно и всю программу на СИ писать.
     
  13. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    wcools
    http://www.wasm.ru/article.php?article=edfpu01
    http://www.wasm.ru/article.php?article=edfpu02
     
  14. allex7

    allex7 New Member

    Публикаций:
    0
    Регистрация:
    10 ноя 2008
    Сообщения:
    20
  15. allex7

    allex7 New Member

    Публикаций:
    0
    Регистрация:
    10 ноя 2008
    Сообщения:
    20