Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   assembler арифм. сопроцессор (http://forum.oszone.net/showthread.php?t=142173)

ferrum2688 08-06-2009 13:00 1138193

assembler арифм. сопроцессор
 
Делаю лабу по ассемблеру, Использую tasm. Программирую арифметический сопроцессор.
Почему при попытке вычесть из 8 число 8, в результате получается -8.6736173....e-19, а не ноль. Это сильно мешает.
Как это исправить?

DillerInc 08-06-2009 19:11 1138473

ferrum2688, вы в курсе,что есть различия между целочисленными и вещественными данными?
Я думаю,что проблема кроется именно в этом.
Вот код для примера:
Код:

local dwTempValue:DWORD

      mov    dwTempValue, 08
      finit
      fild    dwTempValue  ;  Загружаем в стек сопроцессора целочисленное значение
      fisub  dwTempValue  ;  Выполняем целочисленное вычитание
      fistp  dwTempValue  ;  Выталкиваем из стека сопроцессора целочисленный  результат

У меня в локальную переменную сохраняется нуль,как и должно быть.

pva 09-06-2009 07:23 1138890

Цитата:

Цитата ferrum2688
Почему при попытке вычесть из 8 число 8, в результате получается -8.6736173....e-19, а не ноль »

Можно код? у меня и с плавающей точкой нуль получается


Время: 07:33.

Время: 07:33.
© OSzone.net 2001-