Дипломированных специалистов «Информатика и вычислительная техника»



Download 12,06 Mb.
Pdf ko'rish
bet263/357
Sana22.02.2022
Hajmi12,06 Mb.
#115195
TuriДиплом
1   ...   259   260   261   262   263   264   265   266   ...   357
Bog'liq
assembler uchebnik dlya vuzov 2-e izd YuRXUW1

Команды управления сопроцессором
Последняя группа команд предназначена для общего управления работой сопро-
цессора. Команды этой группы имеют особенность — перед началом своего выпол-
нения они не проверяют наличие незамаскированных исключений. Однако такая
проверка может понадобиться, в частности, для того, чтобы при параллельной ра-
боте основного процессора и сопроцессора предотвратить разрушение информа-


Система команд сопроцессора 495
ции, необходимой
корректной обработки исключений, возникающих в сопро-
цессоре. Поэтому
команды управления имеют аналоги, выполняющие
те же действия плюс Дну дополнительную функцию — проверку наличия исклю-
чения в сопроцессоре! Эти команды имеют одинаковые мнемокоды (и машинные
коды тоже),
только вторым символом — символом
мнемокод, не
второго символа п, обозначает команду, которая пе-
ред началом
выполнения проверяет наличие незамаскированных исклю-
чений;
мнемокод, содержащий второй символ п, обозначает команду, которая перед
началом своего выполнения не проверяет наличия незамаскированных исклю-
чений, то есть
немедленно, что позволяет сэкономить несколько
машинных тактов.
Как уже
ось, эти команды имеют одинаковый машинный код. Отли-
чие лишь в
что
командами, не содержащими символа п, транслятор ас-
семблера вставляет
WAIT. Команда WAIT является полноценной командой
основного процессора, и ее при необходимости можно указывать явно. Команда
WAIT имеет аналог
команд сопроцессора — FWAIT. Обеим этим командам со-
ответствует код
9bh.
Команда
— это команда ожидания. Она предназначена для синхро-
низации работы процессора и сопроцессора. Так как основной процессор и сопро-
цессор работают
то может создаться ситуация, когда за командой
сопроцессора,
данные в памяти, следует команда основного процес-
сора, которой эти
требуются. Чтобы синхронизировать работу этих команд,
необходимо включит между ними команду WAIT/FWAIT. Встретив данную коман-
ду в потоке команд, основной процессор приостановит свою работу до тех пор,
пока не поступит
сигнал о завершении очередной команды в сопро-
цессоре. Здесь есть
один эффект, отмеченный ранее. Он касается корректной
обработки исключений и связанной с ними информации.
Далее с
степенью подробности будут рассмотрены команды, вхо-
дящие в группу команд управления. Некоторые из этих команд мы уже применя-
ли в программах этой главы.
Из всех команд
первой логично рассмотреть команду, приводящую
сопроцессор в некоторое начальное состояние, — это команда инициализации со-
процессора
Она инициализирует управляющие регистры сопроцес-
сора определенными значениями.
и Регистр
CWR инициализируется числом 037h, что означает установку
ов:
[я RC = 00 — округление к ближайшему целому;
следующих
D поле
П биты
в единицу, что означает маскирование всех исключе-
ний; '
п поле управления точностью PC = 11 — максимальная точность (64 бита).
Регистр
SWR инициализируется нулевым значением, что означает
отсутствие
и указание на то, что физический регистр стека сопро-
цессора RO
вершиной стека и соответствует логическому регистру


496 Глава
Архитектура и программирование сопроцессора
Регистр тегов
инициализируется единичным значением — это означает, что
все регистры стека сопроцессора пусты.
ii Регистры указателей данных DPR и команд IPR инициализируются нулевыми
значениями.
Данную команду используют перед первой командой сопроцессора в програм-
ме и в других случаях, когда необходимо привести сопроцессор в начальное состо-
яние.
Следующие две команды работают с регистром состояния SWR.
ах — команда сохранения содержимого регистра состояния SWR
в регистре АХ. Эту команду целесообразно использовать для подготовки к услов-
ным переходам по описанной при рассмотрении команд сравнения схеме.
я FSTSW/FNSTSW приемник — команда сохранения содержимого регистра состояния
SWR в ячейке памяти. От рассмотренной ранее команда отличается типом опе-
ранда — теперь это ячейка памяти размером два байта (в соответствии с раз-
мерностью регистра SWR).
Обратите внимание на то, что команды, работающие с регистром SWR, выпол-
няют только считывание содержимого этого регистра. Запись не предусмотрена,
так как она попросту не требуется за исключением, возможно, поля ТОР, которое
является указателем текущей вершины стека. Для изменения этого поля пред-
усмотрены отдельные команды
которые будут рассмотрены да-
лее. Следующие две команды, работающие с информацией в регистре управления
CWR, напротив, поддерживают действие записи и чтения содержимого этого регистра.
приемник — команда сохранения содержимого регистра управле-
ния CWR в ячейке памяти размером два байта. Эту команду целесообразно ис-
пользовать для анализа полей маскирования исключений, управления точнос-
тью и округления. Следует заметить, что операндом не является регистр
в
отличие от команды FSTSW/FNSTSW.
ii FLDCW источник — команда загрузки значения ячейки памяти размером 16 битов
в регистр управления CWR. Эта команда выполняет действие, противополож-
ное действию команды FSTCW/FNSTCW. Команду FLDCW целесообразно использо-
вать для задания или изменения режима работы сопроцессора. Следует отме-
тить, что если в регистре состояния SWR установлен любой бит исключения, то
попытка загрузки нового содержимого в регистр управления CWR приведет
к возбуждению исключения. По этой причине необходимо перед загрузкой ре-
гистра CWR сбросить все флаги исключений в регистре SWR.
Следующая команда — команда без операндов FCLEX/FNCLEX — позволяет сбро-
сить флаги исключений в регистре состояния SWR сопроцессора, которые, в част-
ности, необходимы для корректного выполнения команды FLDCW. Ее также приме-
няют в случаях, когда необходимо сбрасывать флаги исключений в регистре SWR,
например, в конце подпрограмм обработки исключений. Если этого не делать, то
при исполнении первой же команды сопроцессора прерванной программы (кроме
тех команд, которые имеют в названии своего мнемокода второй символ л) опять
возбуждается исключение.


Система команд сопроцессора 497
Как мы отметили ранее, сопроцессор имеет две команды, которые работают
с указателем стека в регистре


указателя стека на единицу (поле ТОР) в регист-
ре SWR. Команда не имеет операндов. Действие команды FINCSTP подобно дей-
ствию команды
но она извлекает значение операнда из стека «в никуда».
Таким образом, эту команду можно использовать для выталкивания ставшего
ненужным операнда из вершины стека. Команда работает только с полем ТОР
и не изменяет
данному регистру поле в регистре тегов TWR, то
есть регистр
занятым и его содержимое из стека не извлекается.


уменьшения указателя стека (поле ТОР) в регистре
Ко-
манда не имеет
Действие команды FDECSTP подобно действию ко-
манды FLD, но
не помещает значения операнда в стек. Таким образом, эту
команду можно использовать для проталкивания внутрь стека операндов, ра-
нее включенных него. Команда работает только с полем ТОР и не изменяет
соответствующее [данному регистру поле в регистре тегов TWR, то есть регистр
остается пустым.
Следующая
FFREE st(i), помечает любой регистр стека сопроцессора
как пустой. Это команда освобождения регистра стека
Команда
в поле регистра
соответствующего регистру ST(i), значение 1 lb, что соответ-
ствует пустому
При этом указатель стека (поле ТОР) в регистре SWR и со-
держимое самого
не изменяются. Применяя эту команду, помните, что
— это
а не физический номер регистра стека сопроцессора.
Необходимость в
команде может возникнуть при попытке записи в регистр
который
как непустой. В этом случае будет возбуждено исключение.
Для
этого применяется команда FFREE.
В сопроцессоре
также команда FNOP, не производящая никаких действий
и влияющая только
регистр указателя команды IPR.
В группе команд
можно выделить подгруппу команд, работающих
с так называемой средой сопроцессора. Среда сопроцессора — это совокупность
регистров
и их значений. Среда сопроцессора может быть частич-

Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   259   260   261   262   263   264   265   266   ...   357




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish