|
|
|
|
ѕрефикс 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, он посы-
лает соответствующую команду записи данных в пам¤ть. √лавный про-
цессор должен ждать (посредством команды 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 Л Л—равнить вне пор¤дка и
. выполнить 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
s »сточник
d јдресат
//s Ќичего или источник
//d Ќичего или адресат
# оманда не ¤вл¤етс¤ самосинхронизируемой
|
|
|