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



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

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


Система команд сопроцессора 469
Команды этой группы имеют такое же значение для программирования сопроцес-
сора, как команда
— для программирования основного процессора. С помо-
щью команд передачи данных осуществляются все перемещения значений опе-
рандов в сопроцессор и из него. По этой причине для каждого из трех типов данных,
с которыми может работать сопроцессор, существует своя подгруппа команд пере-
дачи данных. Собственно, на этом уровне все его умения по работе с различными
форматами данных и заканчиваются. Главной функцией всех команд загрузки дан-
ных в сопроцессор является преобразование данных к единому представлению
в виде вещественного числа расширенного формата. Это же касается и обратной
операции — сохранения в памяти данных из сопроцессора.
Команды передачи данных можно разделить на следующие группы:
команды передачи данных в вещественном формате;
команды передачи данных в целочисленном формате;
команды передачи данных в десятичном формате.
Далее перечислены команды передачи данных в вещественном формате.
FLD источник — загрузка вещественного числа из области памяти на вершину
стека сопроцессора.
п р и е м н и к — сохранение вещественного числа из вершины стека сопроцессо-
ра в память. Как следует из анализа мнемокода команды (отсутствует символ
Р), сохранение числа в памяти не сопровождается выталкиванием его из
стека, то есть текущая вершина стека сопроцессора не меняется (поле ТОР
не меняется).
FSTP приемник — сохранение вещественного числа из вершины стека сопроцес-
сора в память. В отличие от
команды, в конце мнемонического
обозначения данной команды присутствует символ Р, что означает выталкива-
ние вещественного числа из стека после его сохранения в памяти. Команда из-
меняет поле ТОР, увеличивая его на единицу. Вследствие этого вершиной стека
становится следующий больший по своему
номеру регистр стека
сопроцессора.
Далее перечислены команды передачи данных в целочисленном формате.
ш FILD источник — загрузка целого числа из памяти на вершину стека сопро-
цессора.
FIST п р и е м н и к — сохранение целого числа из вершины стека сопроцессора в па-
мять. Сохранение целого числа в памяти не сопровождается выталкиванием
его из стека, то есть текущая вершина стека сопроцессора не изменяется.
приемник — сохранение целого числа из вершины стека в память. Анало-
гично
ранее о команде FSTP,
действием команды являет-
ся выталкивание числа из стека с
преобразованием его в целое
значение.
И наконец, осталось перечислить команды передачи данных в десятичном фор-
мате.
FBLD источник — загрузка десятичного числа из памяти на вершину стека сопро-
цессора.


470 Глава
Архитектура и программирование сопроцессора
в
приемник — сохранение десятичного числа из вершины стека сопроцессо-
ра в области памяти. Значение выталкивается из стека после преобразования
его в формат десятичного числа. Заметьте, что для десятичных чисел нет ко-
манды сохранения значения в памяти без выталкивания из стека.
К группе команд передачи данных можно отнести также команду обмена вер-
шины регистрового стека
с
другим регистром стека сопроцессора
f x c h st(i)
Действие команд загрузки FLD, FILD и FBLD можно сравнить с командой PUSH
основного процессора. Аналогично ей (PUSH уменьшает значение в регистре SP)
команды загрузки сопроцессора перед сохранением значения в регистровом стеке
сопроцессора вычитают из содержимого поля ТОР регистра состояния
едини-
цу. Это означает, что вершиной стека становится регистр с физическим номером
на единицу меньше. При этом возможно переполнение стека. Так как стек сопро-
цессора состоит из ограниченного числа регистров, то в него может быть записано
максимум восемь значений. Из-за кольцевой организации стека девятое записы-
ваемое значение затирает первое. Программа должна иметь возможность обрабо-
тать такую ситуацию. По этой причине почти все команды, помещающие свой опе-
ранд в стек сопроцессора, после уменьшения значения поля ТОР проверяет регистр —
кандидат на новую вершину стека — на предмет его занятости. Для анализа этой
и подобных ситуаций используется регистр TWR, содержащий слово тегов (см.
рис. 17.1). Наличие регистра тегов в архитектуре сопроцессора позволяет освобо-
дить программиста от разработки сложной процедуры распознавания содержимо-
го регистров сопроцессора и дает самому сопроцессору возможность фиксировать
определенные ситуации, например попытку чтения из пустого регистра или за-
пись в непустой регистр. Возникновение таких ситуаций фиксируется в регистре
состояния SWR (см. рис. 17.2), предназначенном для сохранения общей информа-
ции о сопроцессоре. Используя специальные команды сопроцессора, можно из-
влечь из него или, напротив, записать в него информацию (см. далее подраздел
«Команды управления сопроцессором» данного раздела).
В качестве примера определим несколько констант и выполним их пересылки
между оперативной памятью и регистрами сопроцессора, а также между регистра-
ми стека. При этом будем следить за состоянием стека сопроцессора. В ходе реали-
зации этих операций вполне закономерно возникает вопрос о том, имеются ли
какие-либо средства для наблюдения за состоянием регистров сопроцессора,
аналогично тому, как это делалось при работе с основным процессором. Для него,
как вы помните, мы использовали отладчик Turbo Debuger. Оказывается, что да-
леко ходить не нужно. Тот же Turbo Debuger предоставляет нам эту возможность.
Чтобы не нарушать структуру общего изложения, материал по Turbo Debuger вы-
несен в отдельный раздел «Использование отладчика». С ним можно ознакомить-
ся прямо сейчас, после чего вернуться обратно. При наличии у вас другого отлад-
чика, отличного от Turbo Debuger, следует обратиться к его описанию и поискать
аналогичные средства.
Введите программу из листинга
Выполните ее под управлением отладчи-
ка и проследите за тем, как меняется состояние регистров сопроцессора в окне
Numeric processor.


Система команд сопроцессора 471
Листинг
Исследование команд передачи данных
masm
model usel6 small
100h
dt 43567
x dw 3
у real dq 34e7
dt st dt 0
x_st dw 0
y_real_st dq 0
main proc
mov ax,
mov ds, ax
ch dt
x
у real
st(2)
fbstp ch_dt_st
x_st
fstp y_real_st
mov ax,
int
m a i n endp
end main
; сегмент данных
;ch dt=00 00 00 00 00 00
;x=00 03
;y_real=41 b4 43 fd 00 00
процедуры main
;st(0)=43S67
;st(l)=43567, st(0)=3
00 04 35 67
00 00
;st(2)=43567, st(l)=3,
;st(2)=340000000, st(l)=3
;st(l)=340000000, st(0)=3
dt st=00 00 00 00 00
;st(0)=340000000, x st=00
;y real
b4 43 fd 00
, st(0)=43567
00 00 04 35 67
03
00 00 00
Исследовать работу этой программы полезно с открытым окном Dump, так как
при этом хорошо видны различия в представлении типов данных.

Download 12,06 Mb.

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