Calc - калькулятор

...
  • Попробуй в процедуре ftoa

    Code: Select all

        ...
        cmp    ax, 0100h
        jne    no_neg
    ;=>
        fldz
        fcomip st1
        jne    no_neg
    ;=>
        mov    [sign],1
    
    no_neg:
        ...
    
    Vivat assembler et KolibriOS!
  • Вот, что получилось: cos pi = 0,967296; sin pi/2 = 0 :) - не совсем то, что нужно! :( А можно подробнее, что делает этот код? Просто в той литературе, которая у меня есть, нет функций fcomip и fldz! :oops:
  • Heavyiron
    FLDZ - загрузить 0 в ST(0)
    FCOMIP - а ты уверен, что именно такая команда с такой мнемоникой существует в природе?

    а вообще смотри http://asm.shadrinsk.net/- сайт Владислава Пирогова.
    а еще точнее файл pentium.zip
  • FCOMIP - сравнение целых чисел (compare integers), FCOMP - сравнение дробных чисел (compare). Обе команды освобождают ST(0).
    Так что я думаю, что FCOMP тут лучше подойдёт
  • FCOMP устанавливает флаги FPU, которые сложнее анализировать. FCOMIP - сравнение 2 регистров FPU.
    FICOMP - сравнение целых чисел (compare integers)! Смотрите Fasm Manual.
    А алгоритм нужно отлаживать еще
  • >а алгоритм нужно отлаживать еще
    попытаюсь, конечно, по мере возможности :)!
    сенкс за ответы!
  • Выложил новую версию калькулятора. На этот раз изменения не только косметические ;). добавлено несколько полезных функций.
    Качать здесь: http://heavyiron.kolibrios.org/files/calc.7z
    cos pi пока так и не исправил. Планирую переписать процедуру преобразования числа из FPU формата для повышения точности вычислений, после чего эта проблема исчезнет сама собой.
    Willow, как у тебя дела, кстати, с выводом числа с плавающей точкой? Ты вроде работал над этим? Если не трудно, поделись исходником. Заранее благодарен.
    Last edited by Heavyiron on Fri Oct 10, 2008 1:39 am, edited 3 times in total.
  • Ой, не готово, пока не занимаюсь этим
  • Heavyiron
    Хорошая работа.
  • Новая версия: http://heavyiron.kolibrios.org/files/calc.7z
    Программа оптимизирована плюс дополнительно сжата Mtapppack, поэтому занимает вдвое меньше места.
    Надеюсь, что скоро мне удастся отладить процедуру вывода чисел с плавающей точкой. Наработки уже есть. Кстати, спасибо Willow за помощь.
    Last edited by Heavyiron on Fri Oct 10, 2008 1:40 am, edited 3 times in total.
  • Heavyiron
    Хорошая работа. Удачи.
  • отличная штука! В "большие перемены" стоит включить историю вычислений :)
  • Heavyiron
    Только я не понял шутки - ссылка и сам архив версии 1.3, а скриншон на версию 1.5...
  • 1.5 - это и есть будущие перемены, а 1.3 - это то, что более-менее работает на сегодняшний день
  • Who is online

    Users browsing this forum: No registered users and 4 guests