Разделы:


Best links:

Система команд арифметического процессора

Команды запоминания. Эти команды (табл. 2.10) осуществляют передачу данных из вершины стека ST(0) в память. Существуют две разновидности команд запоминания: запоминание без выталкивания данных (FST, FIST) и запоминание с выталкиванием данных (FSTP, FISTP, FBSTP) из вершины стека. После запоминания автоматически изменяется содержимое TAG-11 (е - пусто) и увеличивается значение указателя ST=ST+1. При запоминании с выталкиванием сопроцессор автоматически переводит данные из ВВФ в любой желаемый формат. Такой перевод может вызвать исключительные ситуации, связанные с потерей точности (взводится флаг PE), денормализацией (взводится флаг UE) и переполнением (взводится флаг OE). На рис. 2.8 показаны операции загрузки и запоминания.

  Таблица 2.10

Мнемокод команды

Тип данных

Выполняемые действия

 FST addr

КВФ, ДВФ

 ST(0) -> (аddr)

 FIST addr

Целые 16 и 32- разрядные

 ST(0) -> (аddr)

 FSTP addr

КВФ, ДВФ, ВВФ

 ST(0) -> (аddr) + POP

 FISP addr

Целые 16, 32 и 64 - разрядные

 ST(0) -> (аddr) + POP

 FBSTP addr

Двоично-десятичные

 ST(0) -> (аddr) + POP

Рис. 2.7. Обобщенный формат команд арифметического процессора

 

Рис. 2.8. Пример выполнения операций загрузки и запоминания: а – исходное состояние, б – состояние после загрузки, в – состояние стека после запоминания

 
Image

Команды пересылки. Эти команды (табл. 2.11) позволяют осуществлять

      Таблица 2.11

Мнемокод команды

Выполняемые действия

     FLD ST(i)

ST(i) -> ST(0) + PUSH

     FST ST(i)

ST(0) -> SТ(i)

     FSTP ST(i)

ST(0) ->  ST(i ) + PUSH

     FXCH ST(i)

ST(0) <-> ST(i)

передачу данных между различными регистрами стека. Команды FLD ST(i)и FSTP ST(i)выполняются как стеновые операции, т. е. загрузка сопровождается операцией записи в стек PUSH, а запоминание - операцией выталкивания из стека POP. Например, команда FLD ST (0) позволяет задублировать содержимое вершины стека в двух регистрах ST(0) и ST(1). Две другие команды, FST ST(i) и FXCH ST(i), осуществляют пересылку и обмен без изменения указателя стека, т. е. обращаются к регистрам ST(0) и ST(i) не как к стеку.

предыдущаяследующая