Calc - калькулятор
-
Выложил слегка доработанный калькулятор. Качать тут: http://heavyiron.kolibrios.org/files/calc.7z. Просьба протестировать на наличие новых глюков ! Что не исправлено: cos pi по-прежнему равен -0 (как и sin pi/2). Как это исправить не знаю, по крайней мере пока. Думаю, временно приостановлю работу над калькулятором и займусь чем-нибудь другим.Last edited by Heavyiron on Fri Oct 10, 2008 1:38 am, edited 2 times in total.
Попробуй в процедуре 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!
Heavyiron
FLDZ - загрузить 0 в ST(0)
FCOMIP - а ты уверен, что именно такая команда с такой мнемоникой существует в природе?
а вообще смотри http://asm.shadrinsk.net/- сайт Владислава Пирогова.
а еще точнее файл pentium.zip
FLDZ - загрузить 0 в ST(0)
FCOMIP - а ты уверен, что именно такая команда с такой мнемоникой существует в природе?
а вообще смотри http://asm.shadrinsk.net/- сайт Владислава Пирогова.
а еще точнее файл pentium.zip
FCOMIP - сравнение целых чисел (compare integers), FCOMP - сравнение дробных чисел (compare). Обе команды освобождают ST(0).
Так что я думаю, что FCOMP тут лучше подойдёт
Так что я думаю, что FCOMP тут лучше подойдёт
FCOMP устанавливает флаги FPU, которые сложнее анализировать. FCOMIP - сравнение 2 регистров FPU.
FICOMP - сравнение целых чисел (compare integers)! Смотрите Fasm Manual.
А алгоритм нужно отлаживать еще
FICOMP - сравнение целых чисел (compare integers)! Смотрите Fasm Manual.
А алгоритм нужно отлаживать еще
>а алгоритм нужно отлаживать еще
попытаюсь, конечно, по мере возможности !
сенкс за ответы!
попытаюсь, конечно, по мере возможности !
сенкс за ответы!
Выложил новую версию калькулятора. На этот раз изменения не только косметические . добавлено несколько полезных функций.
Качать здесь: http://heavyiron.kolibrios.org/files/calc.7z
cos pi пока так и не исправил. Планирую переписать процедуру преобразования числа из FPU формата для повышения точности вычислений, после чего эта проблема исчезнет сама собой.
Willow, как у тебя дела, кстати, с выводом числа с плавающей точкой? Ты вроде работал над этим? Если не трудно, поделись исходником. Заранее благодарен.
Качать здесь: 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 за помощь.
Программа оптимизирована плюс дополнительно сжата 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.3, а скриншон на версию 1.5...
1.5 - это и есть будущие перемены, а 1.3 - это то, что более-менее работает на сегодняшний день
Who is online
Users browsing this forum: No registered users and 2 guests