Показать полную графическую версию : assembler арифм. сопроцессор
ferrum2688
08-06-2009, 13:00
Делаю лабу по ассемблеру, Использую tasm. Программирую арифметический сопроцессор.
Почему при попытке вычесть из 8 число 8, в результате получается -8.6736173....e-19, а не ноль. Это сильно мешает.
Как это исправить?
DillerInc
08-06-2009, 19:11
ferrum2688, вы в курсе,что есть различия между целочисленными и вещественными данными?
Я думаю,что проблема кроется именно в этом.
Вот код для примера:
local dwTempValue:DWORD
mov dwTempValue, 08
finit
fild dwTempValue ; Загружаем в стек сопроцессора целочисленное значение
fisub dwTempValue ; Выполняем целочисленное вычитание
fistp dwTempValue ; Выталкиваем из стека сопроцессора целочисленный результат
У меня в локальную переменную сохраняется нуль,как и должно быть.
Почему при попытке вычесть из 8 число 8, в результате получается -8.6736173....e-19, а не ноль »
Можно код? у меня и с плавающей точкой нуль получается
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.