Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#13| Storm King
Demon's Souls |#11| Мaneater part 2
Demon's Souls |#10| Мaneater (part 1)
Demon's Souls |#9| Heart of surprises

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Различные авторы Весь текст 2311.07 Kb

Программирование и кодирование

Предыдущая страница Следующая страница
1 ... 134 135 136 137 138 139 140  141 142 143 144 145 146 147 ... 198
         FopP. Форма POP указывает NPX, что необходимо увеличить указатель
         стека  и определить регистр прежней вершины стека как пустой, что
         существенно понижает вершину стека.  Все это становится ясным да-
         лее.


                                   Префикс FWAIT

             Второе обозначение в таблице 10-3 - это отметка  (N). Отметка
         (N) означает, что соответствующая команда может быть использована
         в форме no-wait,  как в FNop.  Обычно ассемблер  MASM  генерирует
         префикс FWAIT для каждой команды NPX. Форма no-wait указывает ас-
         семблеру MASM,  что надо генерировать префикс FWAIT.  Так что  же
         такое префикс FWAIT?
             Обычно NPX должен ожидать завершения текущей  команды,  перед
         тем  как  он  примет новую.  Это достигается посредством префикса
         FWAIT  кода  операции  (9В  шестнадцатиричное),  который  реально
         представляет собой код  операции  8086!  Выполняя  эту  операцию,
         главный центральный процессор ждет, когда контакт TEST интерфейса
         центральный процессор/NPX станет активным.  Это происходит, когда
         NPX,  завершив выполнение команды,  ожидает новую.  Главный цент-
         ральный процессор вновь приступает к работе и вызывается  следую-
         щая команда NPX, начиная новый цикл.
             Причина использования FWAIT в качестве префикса заключается в
         том,  что главный центральный процессор ждет только тогда,  когда
         хочет направить NPX другую команду.  Как только новая команда по-
         сылается NPX, центральный процессор и NPX могут работать одновре-
         менно,  и,  когда центральный процессор вновь нуждается в NPX, он
         должен проверить готовность последнего.
             Есть еще  один  случай,  когда  главный центральный процессор
         нуждается в использовании команды FWAIT.  Всякий раз,  как только
         центральному процессору необходимо прочитать данные NPX, он посы-

                                      - 10-10 -
         лает соответствующую команду записи данных в память. Главный про-
         цессор должен ждать  (посредством команды FWAIT),  пока данные не
         будут доступны. В этом случае программист должен однозначно зако-
         дировать команду NPX FWAIT,  потому что MASM не знает, какое уст-
         ройство ждет завершения выполнения команды - центральный  процес-
         сор или NPX.
                                                         Таблица 10-3
                    Перечень команд Intel NPX и формы адресации
         ДДДДДДДДВДДДДДДДДДДВДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
         .       ¦Мнемоника ¦Способ     ¦          Имя команды
         Отметки ¦команды   ¦адресации  ¦
         ДДДДДДДДБДДДДДДДДДДБДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

         .               Команды пересылки данных (9)
         -------------------------------------------------------------
         .       ¦FXCH      ¦  //d      ¦Обмен содержимого регистров
         .       ¦FLD       ¦  s        ¦Загрузить вещественное
         (P)     ¦FST       ¦  d        ¦Сохранить вещественное
         .       ¦FILD      ¦  s        ¦Загрузить целое
         (P)     ¦FIST      ¦  d        ¦Сохранить целое
         .       ¦FBLD      ¦  s        ¦Загрузить упакованный BCD
         .       ¦FBSTP     ¦  d        ¦Сохранить упакованный BCD
         --------------------------------------------------------------
         .                 Команды констант (7)
         --------------------------------------------------------------
         .       ¦FLDZ      ¦           ¦Загрузить +0.0
         .       ¦FLD1      ¦           ¦Загрузить +1.0
         .       ¦FLDPI     ¦           ¦Загрузить Pi
         .       ¦FLDL2T    ¦           ¦Загрузить log 10 по основанию 2
         .       ¦FLDL2E    ¦           ¦Загрузить log e по основанию 2
         .       ¦FLDLG2    ¦           ¦Загрузить log 2 по основанию 10
         .       ¦FLDLN2    ¦           ¦Загрузить log 2 по основанию e
         --------------------------------------------------------------
         .            Трансцендентные команды (8)
         --------------------------------------------------------------
         .       ¦FPTAN     ¦           ¦Относительный тангенс
         .       ¦FPATAN    ¦           ¦Относительный арктангенс
         .       ¦F2XM1     ¦           ¦2(x) - 1
         .       ¦FYL2X     ¦           ¦Y x log X по основанию 2
         .       ¦FYL2XP1   ¦           ¦Y x log (X + 1) по основанию 2
         .       ¦FCOS      ¦           ¦Косинус ST(0) (только 80387)
         .       ¦FSIN      ¦           ¦Синус ST(0) (только 80387)
         .       ¦FSINCOS   ¦           ¦Синус и косинус ST(0)
         .       ¦          ¦           ¦(только 80387)
         --------------------------------------------------------------
         .                 Команды сравнения (10)
         --------------------------------------------------------------
         (P)     ¦FCOM      ¦  //s      ¦Сравнить вещественные
         (P)     ¦FICOM     ¦  s        ¦Сравнить целые
         .       ¦FCOMPP    ¦           ¦Сравнить и выполнить POP дважды
         .       ¦FTST      ¦           ¦Проверить вершину стека
         .       ¦FXAM      ¦           ¦Просмотреть вершину стека
         .       ¦FUCOM     ¦           ¦Сравнить вне порядка
         .       ¦          ¦           ¦(только 80387)
         .       ¦FUCOMP    ¦           ¦Сравнить вне порядка и
         .       ¦          ¦           ¦выполнить POP (только 80387)
         .       ¦FUCOMPP   ¦           ¦Сравнить вне порядка и

                                      - 10-11 -
         .                               выполнить POP дважды
         .       ¦          ¦           ¦(только 80387)
         --------------------------------------------------------------
         .                Арифметические команды (26)
         --------------------------------------------------------------
         (P)     ¦FADD      ¦  *        ¦Сложить вещественные
         .       ¦FIADD     ¦  s        ¦Сложить целые
         (P)     ¦FSUB      ¦  *        ¦Вычесть вещественное
         .       ¦FISUB     ¦  s        ¦Вычесть целое
         (P)     ¦FSUBR     ¦  *        ¦Вычесть вещественное (обратное)
         .       ¦FISUBR    ¦  s        ¦Вычесть целое (обратное)
         (P)     ¦FMUL      ¦  *        ¦Несколько вещественных
         .       ¦FIMUL     ¦  s        ¦Несколько целых
         (P)     ¦FDIV      ¦  *        ¦Разделить вещественное
         .       ¦FIDIV     ¦  s        ¦Разделить целое
         (P)     ¦FDIVR     ¦  *        ¦Разделить вещественное
         .       ¦          ¦           ¦(обратное)
         .       ¦FIDIVR    ¦  s        ¦Разделить целое (обратное)
         .       ¦FSQRT     ¦           ¦Квадратный корень
         .       ¦FSCALE    ¦           ¦Масштаб
         .       ¦FPREM     ¦           ¦Частичный остаток
         .       ¦FPREM1    ¦           ¦Частичный остаток
         .       ¦          ¦           ¦(IEEE, только 80387)
         .       ¦FRNDINT   ¦           ¦Округлить до целого
         .       ¦FXTRACT   ¦           ¦Выделить экспоненту и мантиссу
         .       ¦FABS      ¦           ¦Абсолютное значение
         .       ¦FCHS      ¦           ¦Сменить знак
         --------------------------------------------------------------
         .          Команды управления обработкой (16)
         --------------------------------------------------------------
         (N)     ¦FINIT     ¦           ¦Инициализировать процессор
         .       ¦FLDCW     ¦  s        ¦Загрузить управляющее слово
         (N)     ¦FSTCW     ¦  d        ¦Сохранить управляющее слово
         (N)     ¦FSTSW     ¦  d        ¦Сохранить слово состояния
         #(N)    ¦FSTENV    ¦  d        ¦Сохранить среду
         .       ¦FLDENV    ¦  s        ¦Загрузить среду
         #(N)    ¦FSAVE     ¦  d        ¦Сохранить состояние
         .       ¦FRSTOR    ¦  s        ¦Восстановить состояние
         .       ¦FINCSTP   ¦           ¦Увеличить SP
         .       ¦FDECSTP   ¦           ¦Уменьшить SP
         .       ¦FFREE     ¦  d        ¦Освободить регистр
         .       ¦FNOP      ¦           ¦Нет операции
         .       ¦FWAIT     ¦           ¦Центральный процессор ждет
         (N)     ¦FDISI     ¦           ¦Запретить прерывания
         .       ¦          ¦           ¦(только 8087)
         (N)     ¦FENI      ¦           ¦Разрешить прерывания
         .       ¦          ¦           ¦(только 8087)
         (N)     ¦FCLEX     ¦           ¦Сбросить ситуацию
         ДДДДДДДДБДДДДДДДДДДБДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
          * Формы командных операндов для FADD, FSUB, FMUL, FDIV, FDIVR
             :F       ... генерирует FP ST(1),ST
             :Fs      ... генерирует F ST,<память>
             :F d,s   ... только регистры d,s
             :FP d,s  ... только регистры d,s

             (P)  Формы F или FP
             (N)  Формы F или FN

                                      - 10-12 -
             s    Источник
             d    Адресат
             //s  Ничего или источник
             //d  Ничего или адресат
             #    Команда не является самосинхронизируемой

                               Способы адресации NPX

             Способы адресации NPX отражают архитектуру  стека процессора.
         Все  числовые  коды операций NPX,  в отличие от управляющих кодов
         операций,  используют вершину стека как,  по крайней  мере,  один
         операнд. Некоторые команды работают только с  вершиной стека, на-
         пример, FSQRT и FABS. Другие работают как с вершиной стека, так и
         со следующим регистром стека, например, FSCALE и F2XM1. Оставшие-
         ся двухоперандные команды изменяются в соответствии с типом.  Не-
         которые берут свой второй операнд из другого регистра стека. Дру-
         гие могут брать свой второй операнд из памяти.
             В таблице  10-4 продемонстрированы различные разрешенные ком-
         бинации адресации операндов и команд NPX.  Обратите внимание, что
         хотя некоторые математические команды и команды сравнения исполь-
         зуют операнд памяти в качестве источника, операнды памяти никогда
         не  могут применяться в качестве адресата кроме команд сохранения
         (FST

, FIST

и FBSTR). Отметьте также, что операнд источника для любой целой команды (FIop) должен быть операндом памяти пото- му, что регистры NPX всегда содержат вещественные числа. Таблица 10-4 Разрешенные типы для числовых команд NPX ДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД ¦ ВТОРЫЕ ОПЕРАНДЫ ГДДДДДДВДДДДДДДВДДДДДДДДВДДДДДДДДВДДДДДДДВДДДДДДДДДДДДД Пример ¦ ¦ ¦Двухмер-¦ ¦ ¦ Команды команды ¦Слово ¦Двойное¦ное ¦ Десять ¦Регистр¦ математ. и NPX ¦ ¦слово ¦слово ¦ байтов ¦NPX ¦ сравнения ДДДДДДДДД†ДДДДДД†ДДДДДДД†ДДДДДДДД†ДДДДДДДД†ДДДДДДД†ДДДДДДДДДДДДД ¦ ¦ ¦ ¦ ¦ ¦ FLD ¦ ¦ ¦ ¦ ¦ ¦ исто- ¦ ¦ ¦ ¦ ¦ ¦ Веществен- чник ¦ ¦ Да ¦ Да ¦ FLD ¦ Да ¦ ное FST ¦ ¦ ¦ ¦ ¦ ¦ адресат ¦ ¦ Да ¦ Да ¦ FSTP ¦ ¦ Нет FILD ¦ ¦ ¦ ¦ ¦ ¦ источник ¦ Да ¦ Да ¦ Да ¦ ¦ ¦ Целое

Предыдущая страница Следующая страница
1 ... 134 135 136 137 138 139 140  141 142 143 144 145 146 147 ... 198
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 

Реклама