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



Download 12,06 Mb.
Pdf ko'rish
bet251/357
Sana22.02.2022
Hajmi12,06 Mb.
#115195
TuriДиплом
1   ...   247   248   249   250   251   252   253   254   ...   357
Bog'liq
assembler uchebnik dlya vuzov 2-e izd YuRXUW1

Команды загрузки констант
Основным назначением сопроцессора является поддержка вычислений с плаваю-
щей точкой. В математических вычислениях довольно часто встречаются предопре-
деленные константы, и сопроцессор хранит значения некоторых из них. Другая
причина использования этих констант заключается в том, что для определения их
в памяти (в расширенном формате) требуется 10 байт, а это для хранения, напри-
мер, единицы расточительно (сама команда загрузки константы, хранящейся в со-
процессоре, занимает два байта). В формате, отличном от расширенного, эти кон-
станты хранить не имеет смысла, так как теряется время на их преобразование в тот
же расширенный формат. Для каждой предопределенной константы существует
специальная команда, которая производит загрузку ее на вершину регистрового
стека сопроцессора:
FLDZ — загрузка нуля;
FLD1 — загрузка единицы;
FLDPI — загрузка числа
FLDL2T — загрузка двоичного логарифма десяти;
— загрузка двоичного логарифма экспоненты (числа
FLDLG2 — загрузка десятичного логарифма двойки;
— загрузка натурального логарифма двойки.


472 Глава 17.
программирование сопроцессора
Команды сравнения данных
Команды сравнения данных сравнивают значение числа в вершине стека и опе-
ранда, указанного в команде.
FCOM
— команда без операндов сравнивает два значения: одно
находится в регистре
другое в регистре
Если указан операнд [опе-
то сравнивается значение в регистре
стека сопроцессора
со значением в памяти.
II FCOMP операнд — команда сравнивает значение в вершине стека сопроцессора
со значением операнда, который находится в регистре или в памяти. По-
следним действием команды является выталкивание значения из
FCOMPP операнд — команда аналогична по действию команде
без операн-
дов, но последним ее действием является выталкивание из стека значений обо-
их регистров,
и
я FICOM
— команда сравнивает значение в вершине стека сопро-
цессора ST(0) с целым операндом в памяти. Длина целого операнда — 16 или
32 бита, то есть это целое слово и короткое целое (см. табл. 17.1).
II FICOMP операнд
сравнивает значение в вершине стека сопроцессора
с целым операндом в памяти. После сравнения и установки битов
команда выталкивает значение
Длина целого операнда —
бита,
то есть это целое слово и короткое целое (см. табл. 17.1).
9
— команда не имеет операндов и сравнивает значения в
с нулем
чением 00).
Предыдущие команды сравнения работают корректно, если операнды в них
являются целыми или вещественными числами. Когда один из операндов оказы-
вается нечислом, то фиксируется исключение недействительной ситуации, а коды
условия
соответствуют исключительной ситуации несравнимых или неупо-
рядоченных операндов. Само же действие сравнения не производится. Процессор
предоставляет три команды, позволяющие все же произвести сравнение таких опе-
рандов, но как вещественных чисел без учета их порядков.
st(i) — команда сравнивает значения (без учета их порядков) в регистрах
стека сопроцессора
и
9 FUCOMP st(i) — команда сравнивает значения (без учета их порядков) в регист-
рах стека сопроцессора ST(0) и
Последним действием команды является
выталкивание значения из вершины стека.
Я
st(i) — команда сравнивает значения (без учета их порядков) в регист-
рах стека сопроцессора ST(0) и
Последние два действия команды одинако-
вы — выталкивание значения из вершины стека.
В результате работы команд сравнения в регистре состояния устанавливаются
следующие значения битов кода условия СЗ, С2, СО:
если
> операнда, то 000;
если ST(0) < операнда, то
если
операнду, то 100;
если операнды неупорядочены, то


Система команд сопроцессора 473
Для того Чтобы получить возможность реагировать на эти коды командами ус-
ловного перехода основного процессора (вспомните, что они реагируют на флаги
в EFLAGS), нужно как-то записать сформированные биты условия СЗ, С2, СО в ре-
гистр FLAGS. В системе команд сопроцессора существует команда
которая
позволяет запомнить слово состояния сопроцессора в регистре АХ или ячейке па-
мяти. Далее значения нужных битов извлекаются и анализируются командами
основного процессора. Например, запись старшего байта слова состояния, в кото-
ром находятся биты
в младший байт регистра EFLAGS/FLAGS осуществляет-
ся командой
Эта команда записывает содержимое АН в младший байт регист-
ра EFLAGS/FLAGS. После этого бит СО записывается на место флага CF, C2 — на место
PF, СЗ — на место ZF. Бит С1 выпадает из общего правила, так как в регистре флагов
на месте соответствующего ему бита находится единица. Анализ этого бита нужно
проводить с помощью логических команд основного процессора. Зная все это, вам
остается, исходя из особенностей своего алгоритма, применять те команды услов-
ного перехода, которые анализируют состояние указанных флагов.
В качестве иллюстрации рассмотрим программу разбиения массива веществен-
ных чисел в формате двойного слова на два массива. В первый массив поместим
все элементы, которые больше или равны нулю, а во второй — меньше нуля (лис-
тинг 17.2).

Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   247   248   249   250   251   252   253   254   ...   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