русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

E.2.4 Кодирование полей команд для вещественных вычислений


Дата добавления: 2015-06-12; просмотров: 498; Нарушение авторских прав


 

 

Команды вещественной арифметики предполагают использование одной из пяти

приведенных в следующей таблице форм. Во всех случаях, команды имеют

размер не менее двух байт и начинаются с битов, содержащих 11011B.

+--------------------------------------------------------------+

| Команда |Необязательные|

+-----------------------------------------------| поля |

| Первый байт | Второй байт | |

+-----------------------+-----------------------+--------------|

1| 11011 | OPA | 1 | mod | 1 |OPB| r/m | s-i-b | смещ.|

+-------+-------+-------+-------+-------+-------+-------+------|

2| 11011 | MF | OPA | mod | OPB | r/m | s-i-b | смещ.|

+-------+-------+-------+-------+-------+-------+--------------+

3| 11011 | d | P | OPA | 1 | 1 | OPB | ST(i) |

+-------+---+---+-------+---+---+---------------|

4| 11011 | 0 | 0 | 1 | 1 | 1 | 1 | OP |

+-------+---+---+-------+---+---+---+-----------|

5| 11011 | 0 | 1 | 1 | 1 | 1 | 1 | OP |

+-----------------------------------------------+

15-11 10 9 8 7 6 5 4 3 2 1 0

 

OP - код операциии; можно разбить на два поля: OPA и OPB.

MF - Формат операнда в памяти

 

00 - 32-разрядное вещественное

01 - 32-разрядное целое

10 - 64-разрядное вещественное

11 - 16-разрядное целое

 

P - Занести в стек

 

0 - Не заносить в стек

1 - Занести в стек после операции

 

D - Приемник

 

0 - Приемник в ST(0)

1 - Приемник в ST(i)

 

R XOR d = 0 - Приемник (операция) Источник

R XOR d = 1 - Источник (операция) Приемник

 

ST(i) = i-тый элемент стека

000 = Вершина стека

001 = Второй элемент стека

...

111 = Восьмой элемент регистрового стека

 

mod (поле режима) и r/m (описатель Регистр/Память) интерпретируются также,

как соответствующие поля команд целочисленной арифметики.



 

Байт s-i-b (Масштабирование - Индекс - База) и смещ. (смещение) являются

необязательными. Они присутствуют в некоторых командах, имеющих поля mod и

r/m. Их наличие или отсутствие в команде зависит от значиения полей mod и

r/m (аналогично командам целочисленной арифметики).

 

Приложение F. Краткое описание числовых исключений

В следующей таблице приводится список мнемонических обозначений команд в алфавитном порядке. Для каждого мнемонического обозначения приводится список исключений, которые может порождать эта команда. Если вы пишете программы численных вычислений, которые могут эксплуатироваться на оборудовании, включающем в себя средства обработки исключений, то программисты на ассемблере должны знать все возможные исключения для каждой команды для того, чтобы определить потребность в синхронизации исключений. Глава 18 объясняет потребности синхронизации исключений.

+-----------------------------------------------------------------+| Мнемоническое | Команда | IS | I | D | Z | O | U | P || обозначение | | | | | | | | |+-----------------+------------------+----+---+---+---+---+---+---|| F2XM1 | 2**X - 1 | Y | Y | Y | | | Y | Y || FABS | Абсолютное значе-| Y | | | | | | || | ние | | | | | | | || FADD(P) | Сложение вещест- | Y | Y | Y | | Y | Y | Y || | венных | | | | | | | || FBLD | Загрузить BCD | Y | | | | | | || FBSTR | Сохранить и вос- | Y | Y | | | | | Y || | становить из сте-| | | | | | | || | ка BCD | | | | | | | || FCHS | Изменить знак | Y | | | | | | || FCLEX | Очистить все ис- | | | | | | | || | ключения | | | | | | | || FCOM(P)(P) | Сравнение вещест-| Y | Y | Y | | | | || | венных | | | | | | | || FCOS | Косинус | Y | Y | Y | | | Y | Y || FDECSTP | Уменьшить значе- | | | | | | | || | ние указателя | | | | | | | || | стека | | | | | | | || FDIV(R)(P) |Деление веществен-| Y | Y | Y | Y | Y | Y | Y || | ных | | | | | | | || FFREE |Освободить регистр| | | | | | | || FIADD | Целое сложение | Y | Y | Y | | Y | Y | Y || FICOM(P) | Сравнение целых | Y | Y | Y | | | | || FIDIV | Деление целых | Y | Y | Y | Y | | Y | Y || FIDIVR | Обратное деление | Y | Y | Y | Y | Y | Y | Y || | целых | | | | | | | || FILD | Загрузка целого | Y | | | | | | || FIMUL | Умножение целых | Y | Y | Y | | Y | Y | Y || FINCSTP |Увеличить значение| | | | | | | || | указателя стека | | | | | | | || FINIT | Инициализация | | | | | | | || | процессора | | | | | | | || FIST(P) | Запомнить целое | Y | Y | | | | | Y || FISUB(R) | Вычитание целых | Y | Y | Y | | Y | Y | Y || FLD расширенное | Загрузить ве- | Y | | | | | | || или стековое | щественное | | | | | | | || FLD одиночное | Загрузить ве- | Y | Y | Y | | | | || или двойное | щественное | | | | | | | || FLD1 | Загрузить и сло- | Y | | | | | | || | жить с 1.0 | | | | | | | || FLDCW | Загрузить управ- | Y | Y | Y | Y | Y | Y | Y || | ляющее слово | | | | | | | || FLDENV | Загрузить среду | Y | Y | Y | Y | Y | Y | Y || FLDL2E | Загрузить log2(e)| Y | | | | | | || FLDL2T |Загрузить log2(10)| Y | | | | | | || FLDLG2 |Загрузить log10(2)| Y | | | | | | || FLDLN2 |Загрузить loge(2) | Y | | | | | | || FLDPI |Загрузить число ПИ| Y | | | | | | || FLDZ | Загрузить и сло- | Y | | | | | | || | жить с 0.0 | | | | | | | || FMUL(P) | Умножение вещест-| Y | Y | Y | | Y | Y | Y || | венных | | | | | | | || FNOP | Нет операции | | | | | | | || FPATAN | Неполный арктан- | Y | Y | Y | | | Y | Y || | генс | | | | | | | || FPREM | Неполный остаток | Y | Y | Y | | | Y | || FPREM1 | Неполный остаток | Y | Y | Y | | | Y | || | в формате IEEE | | | | | | | || FPTAN | Неполный тангенс | Y | Y | Y | | | Y | Y || FRNDINT | Округление до це-| Y | Y | Y | | | | Y || | лого | | | | | | | || FRSTOR | Восстановить сос-| Y | Y | Y | Y | Y | Y | Y || | тояние | | | | | | | || FSAVE | Запомнить состо- | | | | | | | || | яние | | | | | | | || FSCALE | Масштабирование | Y | Y | Y | | Y | Y | Y || FSIN | Синус | Y | Y | Y | | | Y | Y || FSINCOS | Синус и косинус | Y | Y | Y | | | Y | Y || FSQRT | Квадратный корень| Y | Y | Y | | | | Y || FST(P) стековое | Запомнить вещест-| Y | | | | | | || или расширенное | венное | | | | | | | || FST(P) одиночное| Запомнить вещест-| Y | Y | Y | | Y | Y | Y || или двойное | венное | | | | | | | || FSTCW | Запомнить управ- | | | | | | | || | ляющее слово | | | | | | | || FSTENV | Запомнить среду | | | | | | | || FSTSW(AX) | Запомнить слово | | | | | | | || | состояния | | | | | | | || FSUB(R)(P) | Вычитание вещест-| Y | Y | Y | | Y | Y | Y || | венных | | | | | | | || FTST | Тест | Y | Y | Y | | | | || FUCOM(P)(P) | Неупорядоченное | Y | Y | Y | | | | || | сравнение вещест-| | | | | | | || | венных | | | | | | | || FWAIT | Ожидание ЦПУ | | | | | | | || FXAM | Проверить | | | | | | | || FXCH | Поменять содержи-| Y | | | | | | || | мое регистров | | | | | | | || FXTRACT | Выделить | Y | Y | Y | Y | | | || FYL2X | Y*log2(X) | Y | Y | Y | Y | Y | Y | Y || FYL2XP1 | Y*log2(X+1) | Y | Y | Y | | | Y | Y |+-----------------------------------------------------------------+ IS - неверный операнд, вызванный переполнением стека или потерей значащихразрядов.I - неверный операнд, вызванный другими причинами.D - ненормализованный операнд.Z - деление на ноль.O - переполнение.U - потеря значащих разрядов.P - неточный результат (потеря точности).

 

Приложение G. Оптимизация кода

Процессор i486 совместим по коду и по данным с процессорами 386(TM) DX и SX. Были добавлены всего лишь три команды уровня прикладного программирования, которые полезны в специальных ситуациях. Любая существующая прикладная программа для процессора 8086/8088, 80286 и 386 может быть выполнена на процессоре i486 немедленно, без всякой дополнительной модификации и перекомпиляции. Любой компилятор, который генерирует код для процессоров семейства 386, будет также генерировать код, который будет выполняться на процессоре i486 без какой-либо модификации.

Тем не менее, сушествует несколько способов оптимизации кода, которые сделают выполнение прикладных программ на процессоре i486 более быстрым, при помощи всего лишь минимальных изменений или вообще безо всяких изменений по отношению к их реализации для процессоров 386 DX или SX, за исключением, быть может, различий в размере кода. Эти способы следует применять по отношению к выбору последовательности команд и командам управления для того, чтобы получить преимущества встроенного модуля режима конвейерной обработки процессора i486 и большой кэш-памяти, расположенной на одной микросхеме.



<== предыдущая лекция | следующая лекция ==>
E.2.3.7 Кодирование поля условия проверки (tttn) | G.1 Режимы адресации


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.352 сек.