Пишу процедуру преобразования float значения в строку. я знаю что есть куча готовых исходников, пишу чисто от балды После некоторого времени команды загрузки чисел загружают ерунду (-NAN FFFF C0000000 00000000). Ну например, команда fld1 загружает -NAN FFFF C0000000 00000000. Почему?
Мне кажется с балдой чтото не так. Помоему для начало в балду нужно поместить хотябы базовые информационные данные про работу с FPU, ну и другие исходники посомтреть. И тогда ошибка балды ликвидируется.
rpy3uH, попробуй перед загрузкой числа (при условии что данные в st(0)-st(7) уже не нужны) поставить команду FINIT
FNINIT лучше. Но это не выход - при нормальном написании кода глюков быть не может (сколько раз уже в этом убеждался).
А почему бы не использовать для преобразования вещественных чисел в строку команды обычного процессора, а на счет ошибки с сопроцессором - посмотри регистр состояния, скорее всего у вас действительно переполнение стека.
JAPH Наверное при этом происходит переполнение стэка сопроцессора?.. - не наверное, а действительно стек переполнен. Прав на 100%. Помогает только инициализация ФПУ, как правильно выше заметили. rpy3uH Пишу процедуру преобразования float значения в строку - сам прошел/написал это. Кстати, потратил довольно много времени. И не потому, что это сложно написать. Искал алгоритм, дающий всегда максимальную точность. Поэтому и прога получилась не очень короткая. В результате написал резидентную прожку - показ состояния ФПУ, незаменима при отладке прог для ФПУ.