<<
>>

Система команд сопроцессора

Система команд сопроцессора включает около 80 машинных команд. Рассмотрим их классификацию (рис. 17.16).
Рис.
17.16. Функциональная классификация команд сопроцессора

Мнемоническое обозначение команд сопроцессора характеризует особенности их работы и в связи с этим может представлять определенный интерес. Цоэтому коротко рассмотрим основные моменты образования названий команд. Система команд сопроцессора 467 Я Все мнемонические обозначения начинаются с символа F (Float). ® Вторая буква мнемонического обозначения определяет тип операнда в памяти, с которым работает команда: ? I — целое двоичное число; ? В — целое десятичное число; D отсутствие буквы — вещественное число. 9 Последняя буква Р в мнемоническом обозначении команды означает, что по- следним действием команды обязательно является извлечение операнда из стека. Последняя или предпоследняя буква R (reversed) в мнемоническом обозначе- нии команды означает реверсивное следование операндов при выполнении ко- манд вычитания и деления, так как для них важен порядок следования операндов.

Полезной может оказаться и информация о машинных форматах команд со- процессора. Если давать им общую характеристику, то важно отметить, что в це- лом система команд сопроцессора отличается большой гибкостью в выборе вари- антов задания команд, реализующих определенную операцию, и их операндов. Минимальная длина команды сопроцессора — 2 байта. При обсуждении команд в тексте данной главы будет приводиться лишь их схема. Детально машинное пред- ставление команд сопроцессора и сами команды описаны в приложении. Методика написания программ для сопроцессора имеет свои особенности. Глав- ная причина здесь — в стековой организации сопроцессора.
Для того чтобы напи- сать программу для вычисления некоторого выражения, его необходимо предва- рительно преобразовать в удобный для программирования сопроцессора вид. Процесс преобразования напоминает подготовку выражения для метода трансля- ции, основанного на использовании обратной польской записи (ПОЛИЗ). Рассмот- рим суть ПОЛИЗ на примере вычисления выражения Графически это выражение представляется в виде дерева (рис. 17.17),
Рис. 17.17. Представление выражения в виде дерева

Листья ветвей дерева соответствуют операндам, а узлы — операциям. Пусть началом обхода будет лист самой левой ветви дерева. Тогда для получения обрат- ной польской записи выражения необходимо двигаться по дереву слева направо, при этом узлы должны просматриваться только после обхода всех исходящих из него ветвей. В результате выражение будет выглядеть так: abc х + dab + / - Другое название такой формы записи — постфиксная запись. Это означает, что знак операции записывается после операндов, участвующих в операции. Постфикс- ная запись позволяет вычислять выражения за один проход с учетом приоритета арифметических операций. Алгоритм вычисления выражений в постфиксной записи имеет следующий вид. 1. Выбрать очередной символ записи выражения в форме ПОЛ ИЗ. 2. Если очередной выбранный символ — операнд, то поместить его в стек, после чего вернуться к шагу 1. 3. Если очередной выбранный символ — знак операции, то выполнить ее с одним или двумя операндами на вершине стека. Результат операции необходимо по- местить обратно на вершину стека. 4. Если в исходной записи выражения в форме ПОЛИЗ еще остались символы, то вернуться к шагу 1, иначе — на вершине стека получить результат вычисле- ния выражения. При разработке программ необходимо учитывать следующие факторы: » ограниченность глубины стека сопроцессора; ϋ несовпадение форматов операндов; в отсутствие поддержки на уровне команд сопроцессора некоторых операций, таких как возведение в степень, вычисление тригонометрических функций.

Для решения этих проблем вам придется разрабатывать дополнительный про- граммный код, отклоняясь от классической (последовательной) обработки ариф- метических выражений, представленных в форме ПОЛИЗ. Однако стержнем про- граммы останется строка в форме ПОЛИЗ. Среди файлов к данной главе находятся файлы программы, с помощью кото- рой вы можете облегчить себе задачу преобразования простого арифметического выражения в форму ПОЛИЗ. Она поддерживает ограниченное количество опера- ций, но их набор вы можете расширить, дополнив конфигурационный файл polis.сfg и исходный текст программы. Здесь возникает интересная алгоритмическая задача. В чем ее суть? Для тех операций, которые реализованы на уровне команд сопроцессора, особых проблем нет. И наоборот, для выражений, содержащих операции, не реализованные на уров- не команд сопроцессора, возникает проблема преобразования исходной строки в форму ПОЛИЗ. В качестве примера можно привести такую распространенную операцию, как возведение в степень. В соответствующей программе, которую мы рассмотрим чуть позже, реализуется ряд операций, необходимых для возведения в степень. То есть в выражении, преобразованном в форму ПОЛИЗ, будут записа- ны некоторые операции, отсутствующие в исходной записи этого выражения. Это означает, что при формировании строки ПОЛИЗ программа должна выполнять неявную подстановку дополнительных операндов и операций в соответствии с не- которой формулой приведения.
<< | >>
Источник: В. И. Юров. Assembler. Учебник для вузов. 2-е изд. 2003

Еще по теме Система команд сопроцессора:

  1. Определение команды.
  2. § 4.5. Деятельность команд в организации
  3. Признаки команды.
  4. Пример настройки и реабилитации в футбольной команде
  5. Работа с другими командами
  6. Четыре шага по созданию эффективной команды
  7. Кто становится лидером команды
  8. ШЕСТЬ СТУПЕНЕЙ НА ПУТИ СОЗДАНИЯ КОМАНДЫ.
  9. Создание деловой команды «Вероятно, я не лучший советчик в этом вопросе».
  10. Эд САЛЛИВАН. ВРЕМЯ — ДЕНЬГИ Создание команды разработчиков, программного обеспечения, 2001
  11. § 39 Классификация договоров в отдельных видах. – Римская классификация. – Система прусского закона, французского и австрийского кодекса. – Система русского свода. – Система настоящего изложения.
  12. Тема 15 Правова система і система права. Система законодавства та систематизація нормативно-правових актів
  13. Глава 4. Система права и система законодательства
  14. §5. Система военных судов в РФ как часть системы судов общей юрисдикции
  15. Единство и взаимосвязь правовой системы и системы правового общества