Команды управления сопроцессором

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

– мнемокод, не содержащий второго символа n, обозначает команду, которая перед началом своего выполнения проверяет наличие незамаскированных исключений;

– мнемокод, содержащий второй символ n, обозначает команду, которая перед началом своего выполнения не проверяет наличия незамаскированных исключений, то есть выполняется немедленно, что позволяет сэкономить несколько машинных тактов.

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

Команда WAIT/FWAIT — это команда ожидания. Она предназначена для синхронизации работы процессора и сопроцессора.

Команда инициализации сопроцессора FINIT/FNINIT. Она инициализирует управляющие регистры сопроцессора определенными значениями.

Следующие две команды работают с регистром состояния SWR.

FSTSW/FNSTSW ах — команда сохранения содержимого регистра состояния SWR в регистре АХ. Эту команду целесообразно использовать для подготовки к условным переходам по описанной при рассмотрении команд сравнения схеме.

FSTSW/FNSTSW приемник — команда сохранения содержимого регистра состояния SWR в ячейке памяти. От рассмотренной ранее команда отличается типом операнда — теперь это ячейка памяти размером два байта (в соответствии с размерностью регистра SWR).

Как работает процессор


Читать еще…

Понравилась статья? Поделиться с друзьями: