Мы будем обозначать все семейство математических сопроцессоров 80x87 термином "сопроцессор"

Turbo C++ Programer`s guide
Первый символ должен являться буквой или символом подчеркивания Тело функции, представляющее собой коды, выполняемые при вызове функции Выражение-приведения это пустой (null) указатель Е1 является указателем, а Е2 - константой типа пустого указателя Выражение-инремента выполняет приращения одного или нескольких цикловых счетчиков Вызвать конструктор тем же образом, что и обычную функцию, нельзя. Вызов деструктора допустим только с полностью квалифицированным именем Инициализатор конструктора (см. "инициализатор-конструктора" в описании синтаксиса декларатора класса в таблице Или 16). Ноль означает по умолчанию десятичную Мы будем обозначать все семейство математических сопроцессоров 80x87 термином "сопроцессор" В режиме эмуляции 80Х87 циклический переход в регистрах, а также ряд других особенностей 80х87 не поддерживается GrOk No error Нет ошибки Кроме того, обратите внимание на то, что функция прерывания выполняет выход с помощью команды IRET (возврата из прерывания) Как идентифицировать диагностические сообщения Что происходит, когда доступ к компоненту объекта типа объединения происходит при помощи компонента другого типа Печатаемые диагностические сообщения и поведение при завершении функции assert
668870
знаков
13
таблиц
0
изображений

80387. Мы будем обозначать все семейство математических сопроцессоров 80x87 термином "сопроцессор".

В случае процессора80487вы имеете математический сопроцессор уже встроенным в основной.

80х87 представляет собой специальный аппаратно-реализованный числовой процессор, которыйможно установить на вашем PC. Он служит для выполненияс большой скоростью команд с плавающей точкой. При большомколичестве в вашей программе операций с плавающей точкой вам, безусловно,нуженсопроцессор. Блок центрального процессора в вашем компьютере осуществляет интерфейс с 80х87 по специальным шинам интерфейса.

Эмулирование платы 80х87

По умолчанию в Turbo C++ устанавливается опция генерации кода "эмуляция" (опция компилятора командной строки -f). Эта опция предназначена для программ, которые могут вообще не иметь операций с плавающей точкой, а также для программ, которые должны идти и на машинах, на которых сопроцессор 808 х87 не установлен.

В случае опции эмуляции компилятор генерирует код, как если бы сопроцессор имелся, но при компоновке подключает библиотеку эмуляции операций сплавающей точкой (EMU.LIB). При выполнении такой программы сопроцессор 80х87, если он установлен, будет использоваться; если же во время выполнения процессора не окажется, то программа будет использовать специальноепрограммное обеспечение, эмулирующее 80х87.

Получение кода только для машин с 80х87

Если вы планируете использовать вашу программу исключительно на машинах с установленным математическим сопроцессором 80х87, то можно сэкономить около 10К памяти программы, опустив из нее логику автоматического определения присутствия 80х87 и эмулятора. Для этого следует просто выбратьопцию генерации кодаопераций с плавающей точкой при наличии 80 х87 (или опциюкомпилятора командной строки -f87). Turbo C++ в этом случае скомпонует вашу программу с библиотекой FP87.LIB вместо EMU.LIB.

Получение кода без операций с плавающей точкой

При отсутствии в программе операций с плавающей точкой вы можете сэкономить немного времени компиляции, выбрав опцию генерации операций с плавающей точкой None ("отсутствуют") (или опцию компилятора командной строки -f-). Тогда Turbo C++ не будет выполнять компоновку ни с EMU.LIB, ни с FP87.LIB, ни с MATHx.LIB.

Опция быстрых вычислений с плавающей точкой

Turbo C++ имеет опцию быстрых вычислений с плавающей точкой (опция компилятора командной строки -ff). Выключить эту опцию можнопри помощи опции командной строки -ff-. Ее назначение состоит в выполнении некоторой оптимизации, противоречащей правильной семантике С. Например,

double x;

x = (float)(3.5*x);

Для вычисления по обычным правилам x умножается на 3.5, давая точность результата double,которая затем усекается до точности float, после чего x записывается какdouble. При использовании опции быстрых вычислений с плавающей точкой произведение типа long double преобразуетсянепосредственно в double. Поскольку лишь очень немногие программы чувствительны к потере точностипри преобразовании от более точного к менее точному типу с плавающей точкой, то данная опция является умолчанием.

Переменная операционной среды 87

При построении программы с эмуляцией 80x87, которая устанавливается по умолчанию, ваша программа станет автоматически проверять наличие 80х87 и использовать его, если он установлен в машине.

Существует ряд ситуаций, в которых вам может понадобиться отменить режим автоматического определения наличия сопроцессора по умолчанию. Например, вашасобственная исполняющая система можетиметь 80х87, но вам требуется проверить, будет ли программа работать так, как вы предполагали, в системебез соопроцессора. Либоваша программа предназначена дляработыв системе, совместимой с PC, но данная конкретная система возвращает логике автоматического определения наличия сопроцессора неверную информацию (либо при оссутствии 80х87 говорит, что он на месте, либо наоборот).

Turbo C++ имеет опцию для переопределения логики определения наличия сопроцессорапри загрузке программыж эта опция - соответствующая переменная операционной среды системы

87.

Переменная операционной среды 87 устанавливается по приглашению DOS при помощи команды SET:

C>SET 87=N

или

C>SET 87=X

Ни с какой стороны знака равенства не должно быть пробелов. Установка переменной операционной среды 87 в N (это значит "Нет") говорит загрузочному коду исполняющей системы о том,что вы не хотите использовать 80х87 даже в том случае, если он установлен в системе.

Установка переменной операционной среды в Y ("Да") означает, что сопроцессор на месте и вы желаете, чтобы программа его использовала.Программист должен знать следующее: !!! Если установить 87=Y, а физически 80х87 в системе не установлен, то система повиснет.

Если переменная операционной среды 86 была определена (в любоезначение), и вы желаете сделать ее неопределенной, введите на приглашение DOS:

C>SET=

Непосредственно после знака равенстванажмите Enter, и переменная 87 станет неопределенной.

Регистры и 80х87

Существует два момента, связанных с использованием регистров, которые вы должны учитывать при работе с плавающей точкой:


Информация о работе «Turbo C++ Programer`s guide»
Раздел: Информатика, программирование
Количество знаков с пробелами: 668870
Количество таблиц: 13
Количество изображений: 0

Похожие работы

Скачать
14945
0
7

... к сожалению, обратное утверждение не верно. C++ Builder содержит инструменты, которые при помощи drag-and-drop действительно делают разработку визуальной, упрощает программирование благодаря встроенному WYSIWYG - редактору интерфейса и пр. Delphi — язык программирования, который используется в одноимённой среде разработки. Сначала язык назывался Object Pascal. Начиная со среды разработки Delphi ...

Скачать
225728
6
0

... ориентированы на 32 разрядные шинные архитектуры компьютеров с процессорами 80386, 80486 или Pentium. Фирма Novell также подготовила варианты сетевой ОС NetWare, предназначенные для работы под управлением многозадачных, многопользовательских операционных систем OS/2 и UNIX. Версию 3.12 ОС NetWare можно приобрести для 20, 100 или 250 пользователей, а версия 4.0 имеет возможность поддержки до 1000 ...

Скачать
49224
0
9

... завдання поширюється на розробку системи обліку зареєстрованих автомобілів в ДАІ, призначеної для збору, зберігання, а також полегшення для доступу та використання інформації. Програма з обліку зареєстрованих автомобілів в ДАІ, представляє собою, перехід від паперових носіїв інформації до електронних. Система обліку зареєстрованих автомобілів значно допоможе працівникам ДАІ з обліку, аналізу та ...

Скачать
132529
1
5

... меньше времени и ответ клиенту агентство может дать уже в день подачи заявки. Каждая турфирма разрабатывает индивидуальный образец листа бронирования. Согласно Федеральному Закону «Об основах туристской деятельности в Российской Федерации» (гл. IV, ст. 9) – это конкретный заказ туриста или лица, уполномоченного представлять группу туристов, туроператору на формирование туристского продукта. ...

0 комментариев


Наверх