Общие рекомендации
по программированию сопроцессора
В заключение главы
нию программ для
Первый
с команды
фрагментов с
наться с команды
• При написании
цессор работают
сформулируем некоторые общие рекомендации по написа-
программы с командами сопроцессора должен начинаться
программа содержит несколько независимых
от друга
сопроцессора, каждый такой фрагмент должен начи-
FINIT.
команд обоих
общих операндов
Рекомендуется
исключения неде:
жить ошибки
При написании
позволит
Для повышения
программы вы должны учитывать то, что процессор и сопро-
То есть вам необходимо особенно тщательно
программировать
на которых планируется параллельное выполнение
процессоров. Особое внимание обращайте на синхронизацию
и обработку возможных исключительных ситуаций.
обработку исключений доверять самому сопроцессору, кроме
операции, что позволит своевременно обнару-
алгоритма.
программ следует установить такой режим округления, кото-
учить максимально точный результат.
г роизводительности процессора при передаче данных необхо-
димо использовать директиву EVEN. Ее действие заключается в том, что данные,
508 Глава 17. Архитектура и программирование сопроцессора
описываемые следующей за ней одной из директив резервирования инициа-
лизации данных, размещаются по ближайшему адресу, значение которого крат-
но 2. Так как все типы данных сопроцессора имеют длину,
двум, то
желательно все ячейки памяти, содержащие значения для обработки сопроцес-
сором, размещать в сегменте данных одним
предваряя их описание ди-
рективой EVEN, например:
even
35.78
ch 2 dt 0987687686
Итоги
к Математический сопроцессор значительно расширяет возможности компью-
тера по выполнению вычислений над числами из очень большого диапазона
значений.
Центром программной модели сопроцессора является регистровый стек, кото-
рый является наиболее эффективной структурой программирования вычисли-
тельных алгоритмов. Использование стека предполагает, что программист пред-
варительно преобразует исходное выражение в форму
Форма ПОЛИЗ,
в частности, используется в трансляторах при разборе и генерации кода раз-
личных синтаксических конструкций программы (не только математических
выражений).
т Сопроцессор на уровне своей системы команд поддерживает большую номен-
клатуру типов данных: три формата целых чисел, три формата вещественных
чисел, десятичные числа. При разработке вычислительных алгоритмов и под-
боре для их реализации команд сопроцессора следует помнить, что сопроцес-
сор поддерживает только один внутренний формат представления данных —
вещественные числа расширенного формата. По этой причине команды сопро-
цессора, работающие с форматами, отличными от расширенного, вынуждены
выполнять дополнительное преобразование данных. Операция преобразования
требует дополнительного количества (и немалого) машинных
что не
может не сказаться на общем времени выполнения программы.
Система команд сопроцессора состоит из нескольких групп, призванных удов-
летворить основные потребности программиста в средствах реализации боль-
шинства вычислительных алгоритмов. При отсутствия поддержки на уровне
команд сопроцессора каких-либо математических операций они довольно про-
сто могут быть реализованы с помощью математических формул приведения
через существующие команды.
В процессе работы внутри сопроцессора могут возникать различные ситуации,
требующие внешнего вмешательства. Их называют исключениями. Исключе-
ния разбиты на б типов, которым соответствуют по 6 битов в регистрах
и CWR. Эти биты позволяют управлять обработкой соответствующих исключе-
Итоги 509
ний. Биты в SWR фиксируют возникновение исключений определенного типа.
Биты в CWR определяют способ обработки возникших исключений. Если при
возникновении исключения некоторого типа соответствующий этому исклю-
чению бит в CWR равен это означает, что обработка исключения данного типа
замаскирована и сопроцессор должен сам исправить ошибочную ситуацию. Если
соответствующий возникшему исключению
в CWR равен 0, это означает, что
программист сам желает исправить ошибочную ситуацию. Для этого он дол-
жен написать обработчик исключения.
Разработку программ удобно вести с использованием отладчика Turbo Debuger,
который предоставляет полную информацию о состоянии вычислительного
процесса, использующего команды процессора и сопроцессора.
Do'stlaringiz bilan baham: |