На главную Назад
Добро пожаловать, уважаемый посетитель!

Команды сопроцессора 8087 должны рассматриваться как расширение

набора команд микропроцессора 8088, т.е.микросхема 8087 добавляет

команды к общему набору.Адресация памяти выполняется так же, как

и в микропроцессоре 8088.Как мы уже видели ранее, так происходит

потому, что в действительности микропроцессор 8088 сам порождает

адреса памяти, а сопроцессор 8087 только выполняет требуемые

опреции над данными.

 

Сороцессор 8087 имеет набор регистров для чисел с плавающей

точкой, организованный в виде стека.Вершину стека микросхема 8087

локализует с помощью 3=битового указателя, содержащегося в слове

состояния.Прочитав слово состояния, вы сможете узнать, какой из

восьми регистров является текущей вершиной стека; но, как будет

видно далее, эта информация в программе требуется редко.

 

Вся адресация регистрового стека микросхемы 8087 делается

относительно текущей вершины стека.Мнемонически на ассемблере

вершина стека называется ST(0) или просто ST.Элемент, лежащий

прямо под вершиной стека, называется ST(1), второй элемент - ST(2),

и так далее, вплоть до последнего элемента, ST(7).Для простоты

использования мы будем опускать скобки в обозначениях элементов

стека, используя ST0, ST1, ST2 и так далее.

 

А теперь давайте посмотрим, как программа может добраться к

элементам стека.Команда

 

FADDST0, ST3

 

складывает вершину стека и четвертый его элемент, помещая

результат в вершину стека.На Фиг. 7.9а показаны действия этой

команды.Ссылка на регистры ST0 и ST3 жестко связана с указателем

стека.На рисунке складываются значения A и D, а результат A + D

замещает значение A, так как оно лежит в вершине стека.На

Фиг. 7.9б до выполнения той же самой команды в стек был помещен

элемент E.Команда по=прежнему складывает содержимое вершины стека

с его четвертым элементом; но, как показано на Фиг. 7.9б, она теперь

складывает значения E и C, замещая результатом E + C зеачение E.В

результате помещения элемента E в стек перераспределения операндов

внутри сопроцессора 8087 не произошло, но произошло их перемещение

по отношению к вершине стека.То есть элемент ST3 всегда является

четвертым элементом стека, независимо от того, где расположен

указатель стека.

Мы можем разбить команды сопроцессора 8087 на три широкие

группы.В первой группе находятся пересылки данных - загрузки и

записи данных в сопроцессор 8087 и из него.Вторая группа -

управление сопроцессором, команды, которые служат для нужд

внутреннего сервиса 8087.В третьей группе команд сосредоточены

все возможности сопроцессора 8087, это команды числовой обработки.

Далее мы рассмотрим каждую группу детальнее.Этот текст не

содержит исчерпывающего описания команд микросхемы 8087.Мы будем

использовать примеры, чтобы с их помощью сообщить достаточное

количество информации о значении той или иной команды, а

рассмотрение всех вычислительных возможностей сопроцессора 8087

выходит за рамки данной книги.

ЪДДДДДДДДДДДДДДДДДДДДДїЪДДДДДДДДДДДДДДДДДДДДДї

іііі

іЪДДДДДДДДДДДДїііЪДДДДДДДДДДДДїі

АДДґ AГДДДД +АДДґEГДДДД +

ГДДДДДДДДДДДДґіГДДДДДДДДДДДДґі

і BіііAіі

ГДДДДДДДДДДДДґіГДДДДДДДДДДДДґі

і CіііBіі

ГДДДДДДДДДДДДґіГДДДДДДДДДДДДґі

і DГДДДДДЩіCГДДДДДЩ

ГДДДДДДДДДДДДґГДДДДДДДДДДДДґ

іііDі

ГДДДДДДДДДДДДґ

іі

(a)(b)

 

Фиг. 7.9 Действие FADD ST0,ST3


 

Mail.ru