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



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

Листинг 17.3. Исследование целочисленных арифметических команд
masm
model
small
данных
исходный массив
a dw 0
х
8
у dw 4
dt 0
main proc
ax, @data
mov ds, ax
сопроцессора в начальное состояние
а ;загрузка значение а в st(0)
fxam
тип а
ах
в регистре ах sahf
;запись
регистр флагов
продолжение


476 Глава 17. Архитектура и программирование сопроцессора
Листинг
 (продолжение)
jp
формулы u=x+y:
f
x
fiadd у
fbstp
exit
формулы
f ild x
у
f d i v a
fbstp u
exi
mov ax,
int 21h
main endp
end m a i n
Вещественные арифметические команды
Схема
операндов вещественных команд
для команд
сопроцессора. Один из операндов располагается в вершине стека сопроцессора —
регистре
куда после выполнения команды записывается и результат, а вто-
рой операнд может быть расположен либо в
либо в другом регистре стека
сопроцессора. Допустимыми типами операндов в памяти являются все перечис-
ленные ранее вещественные форматы за исключением расширенного.
В отличие от целочисленных арифметических команд, вещественные арифме-
тические команды допускают большее разнообразие в сочетании местоположения
операндов и самих команд для выполнения конкретного арифметического дей-
ствия. Так, например, можно выделить три возможных варианта команды сложе-
ния. В дополнение к этим трем вариантам существует еще одна команда сложе-
ния, производящая дополнительное действие — удаление значения из стека.
FADD — команда складывает значения в ST(0) и ST(1). Результат сложения запо-
минается в регистре стека сопроцессора ST(0).
источник — команда складывает значения
и источника, представляю-
щего адрес ячейки памяти. Результат сложения запоминается в регистре стека
сопроцессора ST(0).
FADD
— команда складывает значение в регистре стека сопроцессора
со значением в вершине стека ST(0). Результат сложения
 в регис-
тре
FADDP
— команда производит сложение вещественных операндов анало-
гично команде FADD
однако последним действием команды является
выталкивание значения из вершины стека сопроцессора ST(0). Результат сло-
жения остается в регистре
Для выполнения операции вычитания также имеется большой набор команд.
FSUB — команда вычитает значение в ST(1) из значения в
Результат вычи-
тания запоминается в регистре стека сопроцессора ST(0).


Система команд сопроцессора 477
и FSUB источник — команда вычитает значение источника из значения в ST(0). Ис-
точник представляет адрес ячейки памяти, содержащей допустимое веществен-
ное число. Результат сложения запоминается в регистре стека сопроцессора
и
st(i),st — команда вычитает значение в вершине стека
из значения
в регистре стека сопроцессора
Результат вычитания запоминается в реги-
стре стека сопроцессора
* FSUBP st(i),st — команда вычитает вещественные операнды аналогично команде
FSUB
Последним действием команды является выталкивание значения
из вершины стека сопроцессора
Результат вычитания остается в регистре
Для удобства группа команд вычитания вещественных чисел дополнена коман-
дами реверсивного вычитания.
я
st(i),st — команда вычитает значение в вершине стека
из значения
в регистре стека сопроцессора ST(i). Результат вычитания запоминается в вер-
шине стека сопроцессора — регистре
FSUBRP st(i),st — команда производит вычитание подобно команде FSUBR st(i),st.
Последним действием команды является выталкивание значения из вершины
стека сопроцессора
Результат вычитания остается в регистре
Изучая команды умножения вещественных операндов, обратите внимание не
то, что операнды располагаются исключительно в стеке сопроцессора.
— команда не имеет операндов. Умножает значения в ST(0) на содержимое
в
Результат умножения запоминается в регистре стека сопроцессора ST(0).
II FMUL st(i) — команда умножает значение в
на содержимое регистра стека
ST(i). Результат умножения запоминается в регистре стека сопроцессора
st(i),st — команда умножает значения в
на содержимое произвольно-
го регистра стека
Результат умножения запоминается в регистре стека
сопроцессора
FMULP
— команда производит умножение подобно команде FMUL st(i),st.
Последним действием команды является выталкивание значения из вершины
стека сопроцессора
Результат умножения остается в регистре
И наконец, рассмотрим команды, реализующие деление вещественных данных.
Подобно командам умножения, операнды этих команд располагаются в стеке со-
процессора:
FDIV — команда (без операндов) делит содержимого регистра
на значение
регистра сопроцессора
Результат деления запоминается в регистре стека
сопроцессора ST(0).
FDIV st(i) — команда делит содержимое регистра
на содержимое регистра
сопроцессора
Результат деления запоминается в регистре стека сопроцес-
st(0).
FDIV st(i),st — команда производит деление аналогично команде FDIV st(i), но
результат деления запоминается в регистре стека сопроцессора


478 Глава
Архитектура и программирование сопроцессора

st(i),st — команда производит деление аналогично команде
st(i),st.
Последним действием команды является выталкивание значения
вершины
стека сопроцессора
Результат деления остается в регистре
Для реализации деления в сопроцессоре также предусмотрены две реверсив-
ные команды, отличительным признаком которых является наличие символа R
в качестве последнего или предпоследнего символа мнемокода:
I!
— команда делит содержимое регистра
на содержимое верши-
ны регистра сопроцессора
Результат деления запоминается в регистре
стека сопроцессора
FDIVRP st(i),st — команда делит содержимое регистра
на содержимое вер-
шины регистра сопроцессора
Результат деления запоминается в регистре
стека сопроцессора ST(i), после чего производится выталкивание содержимого
из стека. Результат деления остается в регистре
Разработаем программу вычисления факториала числа 10 (листинг 17.4):
Напомним, что вычисление факториала заключается в выполнении последова-
тельного умножения 1 • 2 • 3
• (г — 1) • г.

Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   250   251   252   253   254   255   256   257   ...   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