Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
12-12-2013_11-21-32 / пособие_m.doc
Скачиваний:
77
Добавлен:
10.05.2015
Размер:
484.35 Кб
Скачать

6.3. Регистры сопроцессора

Операнды команд арифметического сопроцессора могут находиться в памяти или в одном из восьми численных регистров. Эти регистры хранят числа только в формате с расширенной точностью.

Регистр управления содержит поля, значения в которых влияют на общее поведение сопроцессора. Содержимое этого регистра изменяется только при его явной загрузке программой. Регистр состояния имеет поля, показывающие внутренние условия процессора, например, биты кода условия, фиксирующие результаты сравнений. Регистр признаков применяется для регистрации особенностей содержимого численных регистров. Указатель команд и указатель операндов содержат адреса памяти последней команды сопроцессора и ее операндов.

Численные регистры образуют регистровый стек, состоящий из восьми 80-разрядных регистров данных R0-R7. В этих регистрах хранятся числа, представленные в форме с плавающей запятой в расширенном вещественном формате. Этот формат является единственным внутренним форматом чисел. В любой момент времени трехбитное поле TOP (Top of Stack), расположенное в слове состояния SW определяет регистр, являющийся текущей вершиной стека и обозначаемый ST(0). Если, например, в поле TOP содержится 011В, то вершиной стека является регистр R3 и именно он указывается в командах как ST(0). Регистр R4 находится сразу ниже вершины стека и обозначается как ST(1). Регистр R2 оказывается в самом низу стека и обозначается ST(7). Другими словами, регистр ST(0) содержит последнее включенное в стек значение, регистр ST(1) – предпоследнее и т.д.

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

    1. СИСТЕМА КОМАНД

Команды с плавающей запятой делятся на пять групп: команды передачи данных, арифметические команды, команды сравнения, команды трансцендентных операций и команды управления. Типичная команда воспринимает один или два операнда, выполняет указанную операцию и возвращает результат. Содержимое регистров наиболее часто служат операндами, но может привлекаться и содержимое памяти.

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

Команды загрузки FLD производят декремент вершины стека TOP и передают адресуемый операнд в новую вершину стека. Команды сохранения FST производят передачу содержимого ST(0) в память.

В устройстве с плавающей запятой имеются команды загрузки наиболее часто встречающихся в вычислениях констант: загрузка 0, загрузка 1, загрузка π, загрузка некоторых двоичных и десятичных логарифмов.

Набор арифметических команд включает варианты основных арифметических операций, а также команды извлечения корня квадратного, масштабирования и др. Примерами этих команд служат команды FADD, FSUB, FDIV, FMUL, FSQRT.

Команды группы сравнения предназначены для анализа числа в вершине стека и формирование кода условия. Например, команда FCOM х сравнивает содержимое ST(0) с операндом х и устанавливает коды условия (больше, меньше, равны или не сравнимы).

Команды группы трансцендентных функций выполняют базовые вычисления, относящиеся к тригонометрическим функциям (sin, cos и т.д.), обратным тригонометрическим функциям (arcsin, arcos, arctg и т.д.), логарифмическим функциям (log2, log10, loge), показательным функциям (хy, 2x, ex), гиперболическим функциям (sh, ch, th и т.д.) и обратным гиперболическим функциям (arsh, arch, arcth).

Команды группы управления ориентированы в основном на операции системного уровня. Для прикладных программистов наибольший интерес представляют команды, оперирующие словами управления и состояния. С их помощью можно задать режим работы сопроцессора, а также проанализировать результаты команд сравнения и проверки.

Соседние файлы в папке 12-12-2013_11-21-32