| 
| 
 | Вопрос # 5 456/ вопрос решён / | 
 |  Здравствуйте!Пишу на BASM в Delphi следующий код (см. прил).
 Появляется ошибка во время исполнения:
 Invalid floating point operation.
 Примечание #1 (28 июня 2011, 08:58): Почему появляется ошибка, что я не так делаю? 
 
|  |   Вопрос задал: Gooddy (статус: 3-ий класс)Вопрос отправлен: 28 июня 2011, 08:57
 Состояние вопроса: решён, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 1; последнее сообщение — 28 июня 2011, 09:02; участников в обсуждении: 1. 
|   | Gooddy (статус: 3-ий класс), 28 июня 2011, 09:02 [#1]:Как оказалось сама функция работает нормально. Вызываю её как показано ниже и ошибка: 
 
 procedure TForm1.Button1Click(Sender: TObject);
var
  t: Cardinal;
  i: Integer;
  d: Double;
begin
  t := GetTickCount();
  for i:=1 to 1000000 do
    d := One( );
  t := GetTickCount() - t;
end;Если убрать цикл, то всё нормально. Добавляю цикл - ошибка.
 Чисти код! Чисти код! Чисти код! |  28 июня 2011, 09:08: Статус вопроса изменён на решённый (изменил автор вопроса — Gooddy): Оказалось команда fst не снимает значение st(0) со стека и происходит банальное переполнение.Надо было использовать fstp
 Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |