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


Привет! Ну, как вам процесс разработки приложения на



Download 12,06 Mb.
Pdf ko'rish
bet261/357
Sana22.02.2022
Hajmi12,06 Mb.
#115195
TuriДиплом
1   ...   257   258   259   260   261   262   263   264   ...   357
Bog'liq
assembler uchebnik dlya vuzov 2-e izd YuRXUW1

Привет! Ну, как вам процесс разработки приложения на
Рис.
Результат работы приложения (пункт меню Графика Эффекты Кружева)
Несущественные детали алгоритма вы легко восстановите по фрагменту про-
граммы, приведенному в листинге
Полный текст программы можно найти
среди файлов, прилагаемых к книге, в каталоге данной главы.


Система команд сопроцессора 489
Листинг
Фрагмент программы для изображения фигуры «Кружева»
для фигуры "Кружева"
;N - число вершин
многоугольника
;его можно менять -
N
18

Хс
equ
Yc
equ 100
N dup (0}
dd N dup
N
R
99
DTT dd
0
t dd 0
i dd 0
j dd 0
dw
2
от меню
MenuProc proc
;очистим окно
первичное
дескриптор
push
call
eax
растра серым цветом
:ерой кисти
кисть в контекст памяти
push
push memdc
call
заполняем
виртуальное окно
BOOL
int nXLeft, int nYLeft,
int
DWORD
push PATCOPY
push
push maxX
push NULL
push NULL
push memdc
call PatBlt
f i n i t
Pi
DTT
t, 0
i, 0
v
f istp
mov
mov
массивы
и masY координатами вершин прямоугольника
mov
i
add eax,
mov t, eax
t
f cos
fimul R
mov esi , i
продолжение


490 Глава 17. Архитектура и программирование сопроцессора
Листинг
 (продолжение)
fistp
add
fsin
f
fistp
mov
sub
mov
inc
cmp
mov
mov
mov
t
R
masY[esi*4]
eax, Yc
eax, masY[esi
i
i, N
Xc
*4]
eax
вершины
i, 0
eax, i
eax
@@m4: inc j
отрезок:
push
mov
push
push
push
mov
push
push
push
cmp
inc
cmp
NULL
esi, i
memdc
edi , j
masY[edi*4]
memdc
N
i
i, N
сообщения
для вывода строки на экран
push 0
push NULL
push
call InvalidateRect
@@exit
Отметим еще две команды сопроцессора, FPREM и FPREM1.
Команда FPREM — команда получения частичного остатка от деления. Исход-
ные значения делимого и делителя размещаются в стеке — делимое в ST(0), дели-
тель в
Делитель рассматривается как некоторый модуль. Поэтому в резуль-
тате работы команды получается остаток от деления по модулю. Но произойти это
может не сразу, так как этот результат в общем случае достигается за несколько
последовательных обращений к команде FPREM, если значения операндов сильно
различаются. Физически работа команды заключается в реализации хорошо из-
вестного всем действия: деления в столбик. При этом каждое промежуточное де-
ление осуществляется отдельной командой FPREM. Цикл, центральное место в ко-
тором занимает команда FPREM, завершается, когда очередная полученная разность
в
становится меньше значения модуля в ST(1). Судить об этом можно по со-
стоянию флага с2 в регистре состояния SWR:
* если С2 = 0, то работа команды FPREM полностью завершена, так как разность
в
меньше значения модуля в


Система команд сопроцессора
если С2 = 1, то
продолжить выполнение команды FPREM, так как раз-
ность в
больше значения модуля в
Таким образом,
анализировать флаг С2 в теле цикла. Для этого С2
записывается в регистр флагов основного процессора с последующим анализом
его командами
ого перехода. Другой способ заключается в сравнении
Необходимость в
частичном исполнении команды FPREM возникает из-за
того, что если делимое слишком велико, а делитель
то время получения ко-
нечного частичного остатка, удовлетворяющего условию
<
может быть
достаточно большим. При этом становится невозможной своевременная реакция
на поступающие запросы прерываний, возможно, достаточно важные для того, что-
бы быть
в обработке.
В
рассмотрения нами
команд пример исполь-
зования команды
является наиболее показательным. При рассмотрении ко-
манды FPTAN мы
о том, что аргумент z функции tg должен находиться
в диапазоне 0  z  л/4. Исходя из того, что данная тригонометрическая функция
является
возникает необходимость понижения размерности аргу-
мента z,
рамками указанного диапазона допустимых значений Для
команды FPTAN, что и
с помощью команды FPREM.
Важно отметить, то команда FPREM не соответствует последнему стандарту
IEEE-754 на вычисления с плавающей точкой. По этой причине в систему команд
сопроцессора
введена команда FPREM1, которая отличается от команды
FPREM тем, что накладывается дополнительное требование на значение остатка
в
Это значение не должно превышать половины модуля в
В остальном
работа команды
1 аналогична работе FPREM.
Команды FPREM и
имеют еще одну особенность, представляющую инте-
рес для команд, вычисляющих значения периодических тригонометрических функ-
ций. После полного завершения работы команды FPREM/FPREM1 (когда С2 = 0) биты
СО, СЗ, С1 содержат
трех младших битов частного, которые логически пред-
ставляют собой численное значение номера одного из восьми октантов единично-
го круга. Это,
важная информация при работе с тригонометрически-
ми функциями.
Далее
трансцендентные команды.
Команда F2XM1 —
вычисления значения функции у = 2

Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   257   258   259   260   261   262   263   264   ...   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