Ответить на комментарий

Вопиющий случай с функцией now

Уважаемый Александр,

Я столкнулся с ситуацией, когда now начинает выдавать чудовищно округленные значения (до нескольких минут !). В результате расследования выяснилось, что это наблюдается после выполнения функции Direct3D.CreateDevice. Если же сразу после этой функции вставить
asm FNINIT end;
т.е. сбросить FPU, то тогда последующие вызовы now работают нормально со своей обычной точностью. Отсюда я делаю выводы: либо функция CreateDevice просто забыла вернуть FPU в прежнее состояние, либо она это сделала намеренно, чтобы ускорить работу по трехмерным расчетам, либо в функции now не предусмотрена инициализация FPU перед началом расчетов. У меня просто не укладывается в голове, как в XXI веке, работая на Delphi XE возможны такие подставы ! И еще мне не понятно почему на уровне пользователя Windows дает возможность выполнить инструкции сопроцессора, они разве не привилегированные?

С уважением,
Дмитрий Шеховцов
dima@transinf.ru

Ответить

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <h1> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <pre>, <code>, <asm>, <c>, <cpp>, <delphi>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <python>, <ruby>, <mytext>. Beside the tag style "<foo>" it is also possible to use "[foo]".

Подробнее о форматировании

CAPTCHA
Ведите текст с изображения. (вводить еще раз после предпросмотра а то не добавится комментарий)
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.