Page 2 of 5

Posted: Wed Feb 22, 2006 2:03 pm
by Heavyiron
Выложил слегка доработанный калькулятор. Качать тут: http://heavyiron.kolibrios.org/files/calc.7z. Просьба протестировать на наличие новых глюков :) ! Что не исправлено: cos pi по-прежнему равен -0 (как и sin pi/2). Как это исправить не знаю, по крайней мере пока. Думаю, временно приостановлю работу над калькулятором и займусь чем-нибудь другим.

Posted: Wed Feb 22, 2006 5:46 pm
by willow
Попробуй в процедуре ftoa

Code: Select all

    ...
    cmp    ax, 0100h
    jne    no_neg
;=>
    fldz
    fcomip st1
    jne    no_neg
;=>
    mov    [sign],1

no_neg:
    ...

Posted: Wed Feb 22, 2006 7:39 pm
by Heavyiron
Вот, что получилось: cos pi = 0,967296; sin pi/2 = 0 :) - не совсем то, что нужно! :( А можно подробнее, что делает этот код? Просто в той литературе, которая у меня есть, нет функций fcomip и fldz! :oops:

Posted: Thu Feb 23, 2006 1:18 am
by Mario79
Heavyiron
FLDZ - загрузить 0 в ST(0)
FCOMIP - а ты уверен, что именно такая команда с такой мнемоникой существует в природе?

а вообще смотри http://asm.shadrinsk.net/- сайт Владислава Пирогова.
а еще точнее файл pentium.zip

Posted: Thu Feb 23, 2006 11:27 am
by mike.dld
FCOMIP - сравнение целых чисел (compare integers), FCOMP - сравнение дробных чисел (compare). Обе команды освобождают ST(0).
Так что я думаю, что FCOMP тут лучше подойдёт

Posted: Thu Feb 23, 2006 12:23 pm
by willow
FCOMP устанавливает флаги FPU, которые сложнее анализировать. FCOMIP - сравнение 2 регистров FPU.
FICOMP - сравнение целых чисел (compare integers)! Смотрите Fasm Manual.
А алгоритм нужно отлаживать еще

Posted: Thu Feb 23, 2006 11:21 pm
by Heavyiron
>а алгоритм нужно отлаживать еще
попытаюсь, конечно, по мере возможности :)!
сенкс за ответы!

Posted: Mon Mar 27, 2006 12:42 pm
by Heavyiron
Выложил новую версию калькулятора. На этот раз изменения не только косметические ;). добавлено несколько полезных функций.
Качать здесь: http://heavyiron.kolibrios.org/files/calc.7z
cos pi пока так и не исправил. Планирую переписать процедуру преобразования числа из FPU формата для повышения точности вычислений, после чего эта проблема исчезнет сама собой.
Willow, как у тебя дела, кстати, с выводом числа с плавающей точкой? Ты вроде работал над этим? Если не трудно, поделись исходником. Заранее благодарен.

Posted: Mon Mar 27, 2006 2:36 pm
by willow
Ой, не готово, пока не занимаюсь этим

Posted: Mon Mar 27, 2006 7:35 pm
by Mario79
Heavyiron
Хорошая работа.

Posted: Fri Apr 28, 2006 6:41 pm
by Heavyiron
Новая версия: http://heavyiron.kolibrios.org/files/calc.7z
Программа оптимизирована плюс дополнительно сжата Mtapppack, поэтому занимает вдвое меньше места.
Надеюсь, что скоро мне удастся отладить процедуру вывода чисел с плавающей точкой. Наработки уже есть. Кстати, спасибо Willow за помощь.

Posted: Sun Apr 30, 2006 12:44 pm
by Mario79
Heavyiron
Хорошая работа. Удачи.

Posted: Sun Apr 30, 2006 2:46 pm
by camper
отличная штука! В "большие перемены" стоит включить историю вычислений :)

Posted: Sun Apr 30, 2006 9:23 pm
by Mario79
Heavyiron
Только я не понял шутки - ссылка и сам архив версии 1.3, а скриншон на версию 1.5...

Posted: Mon May 01, 2006 8:52 am
by Heavyiron
1.5 - это и есть будущие перемены, а 1.3 - это то, что более-менее работает на сегодняшний день