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!
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 - это то, что более-менее работает на сегодняшний день