Система команд сопроцессора
![]() |
Мнемоническое обозначение команд сопроцессора характеризует особенности их работы и в связи с этим может представлять определенный интерес. Цоэтому коротко рассмотрим основные моменты образования названий команд. Система команд сопроцессора 467 Я Все мнемонические обозначения начинаются с символа F (Float). ® Вторая буква мнемонического обозначения определяет тип операнда в памяти, с которым работает команда: ? I — целое двоичное число; ? В — целое десятичное число; D отсутствие буквы — вещественное число. 9 Последняя буква Р в мнемоническом обозначении команды означает, что по- следним действием команды обязательно является извлечение операнда из стека. Последняя или предпоследняя буква R (reversed) в мнемоническом обозначе- нии команды означает реверсивное следование операндов при выполнении ко- манд вычитания и деления, так как для них важен порядок следования операндов. Полезной может оказаться и информация о машинных форматах команд со- процессора. Если давать им общую характеристику, то важно отметить, что в це- лом система команд сопроцессора отличается большой гибкостью в выборе вари- антов задания команд, реализующих определенную операцию, и их операндов. Минимальная длина команды сопроцессора — 2 байта. При обсуждении команд в тексте данной главы будет приводиться лишь их схема. Детально машинное пред- ставление команд сопроцессора и сами команды описаны в приложении. Методика написания программ для сопроцессора имеет свои особенности. Глав- ная причина здесь — в стековой организации сопроцессора. Для того чтобы напи- сать программу для вычисления некоторого выражения, его необходимо предва- рительно преобразовать в удобный для программирования сопроцессора вид. Процесс преобразования напоминает подготовку выражения для метода трансля- ции, основанного на использовании обратной польской записи (ПОЛИЗ). Рассмот- рим суть ПОЛИЗ на примере вычисления выражения Графически это выражение представляется в виде дерева (рис. 17.17),
![]() |
Листья ветвей дерева соответствуют операндам, а узлы — операциям. Пусть началом обхода будет лист самой левой ветви дерева. Тогда для получения обрат- ной польской записи выражения необходимо двигаться по дереву слева направо, при этом узлы должны просматриваться только после обхода всех исходящих из него ветвей. В результате выражение будет выглядеть так: abc х + dab + / - Другое название такой формы записи — постфиксная запись. Это означает, что знак операции записывается после операндов, участвующих в операции. Постфикс- ная запись позволяет вычислять выражения за один проход с учетом приоритета арифметических операций. Алгоритм вычисления выражений в постфиксной записи имеет следующий вид. 1. Выбрать очередной символ записи выражения в форме ПОЛ ИЗ. 2. Если очередной выбранный символ — операнд, то поместить его в стек, после чего вернуться к шагу 1. 3. Если очередной выбранный символ — знак операции, то выполнить ее с одним или двумя операндами на вершине стека. Результат операции необходимо по- местить обратно на вершину стека. 4. Если в исходной записи выражения в форме ПОЛИЗ еще остались символы, то вернуться к шагу 1, иначе — на вершине стека получить результат вычисле- ния выражения. При разработке программ необходимо учитывать следующие факторы: » ограниченность глубины стека сопроцессора; ϋ несовпадение форматов операндов; в отсутствие поддержки на уровне команд сопроцессора некоторых операций, таких как возведение в степень, вычисление тригонометрических функций. Для решения этих проблем вам придется разрабатывать дополнительный про- граммный код, отклоняясь от классической (последовательной) обработки ариф- метических выражений, представленных в форме ПОЛИЗ. Однако стержнем про- граммы останется строка в форме ПОЛИЗ. Среди файлов к данной главе находятся файлы программы, с помощью кото- рой вы можете облегчить себе задачу преобразования простого арифметического выражения в форму ПОЛИЗ. Она поддерживает ограниченное количество опера- ций, но их набор вы можете расширить, дополнив конфигурационный файл polis.сfg и исходный текст программы. Здесь возникает интересная алгоритмическая задача. В чем ее суть? Для тех операций, которые реализованы на уровне команд сопроцессора, особых проблем нет. И наоборот, для выражений, содержащих операции, не реализованные на уров- не команд сопроцессора, возникает проблема преобразования исходной строки в форму ПОЛИЗ. В качестве примера можно привести такую распространенную операцию, как возведение в степень. В соответствующей программе, которую мы рассмотрим чуть позже, реализуется ряд операций, необходимых для возведения в степень. То есть в выражении, преобразованном в форму ПОЛИЗ, будут записа- ны некоторые операции, отсутствующие в исходной записи этого выражения. Это означает, что при формировании строки ПОЛИЗ программа должна выполнять неявную подстановку дополнительных операндов и операций в соответствии с не- которой формулой приведения.
Еще по теме Система команд сопроцессора:
- Определение команды.
- § 4.5. Деятельность команд в организации
- Признаки команды.
- Пример настройки и реабилитации в футбольной команде
- Работа с другими командами
- Четыре шага по созданию эффективной команды
- Кто становится лидером команды
- ШЕСТЬ СТУПЕНЕЙ НА ПУТИ СОЗДАНИЯ КОМАНДЫ.
- Создание деловой команды «Вероятно, я не лучший советчик в этом вопросе».
- Эд САЛЛИВАН. ВРЕМЯ — ДЕНЬГИ Создание команды разработчиков, программного обеспечения, 2001
- § 39 Классификация договоров в отдельных видах. – Римская классификация. – Система прусского закона, французского и австрийского кодекса. – Система русского свода. – Система настоящего изложения.
- Тема 15 Правова система і система права. Система законодавства та систематизація нормативно-правових актів
- Глава 4. Система права и система законодательства
- §5. Система военных судов в РФ как часть системы судов общей юрисдикции
- Единство и взаимосвязь правовой системы и системы правового общества