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


 Глава Команды передачи управления PROC ] язык] [расстояние ] процедуры [ARG



Download 12,06 Mb.
Pdf ko'rish
bet127/357
Sana22.02.2022
Hajmi12,06 Mb.
#115195
TuriДиплом
1   ...   123   124   125   126   127   128   129   130   ...   357
Bog'liq
assembler uchebnik dlya vuzov 2-e izd YuRXUW1

220 Глава
Команды передачи управления
PROC
] язык] [расстояние ]
процедуры
[ARG
 1
[RETURN
команды,
директивы
ассемблера
процедуры
] ENDP Конец
Тело
процедуры
Рис.
Синтаксис описания процедуры в программе
потока и, соответственно, начнет выполнять эти команды. Учитывая это обстоя-
тельство, есть следующие варианты размещения процедуры в программе:
в
программы (до первой исполняемой команды);
в конце программы (после команды, возвращающей управление операционной
системе);
промежуточный вариант — внутри другой процедуры или основной програм-
мы (в этом случае необходимо предусмотреть обход процедуры с помощью ко-
манды безусловного перехода
Р);
в другом модуле (библиотеке DLL).
Размещение процедуры в начале сегмента кода предполагает, что последова-
тельность команд, ограниченная парой директив PROC и
будет размещена до
метки, обозначающей первую команду, с которой начинается выполнение програм-
мы. Эта метка должна быть указана как параметр директивы END, обозначающей
конец программы:
model
my_proc procnear
ret
endp
start:
end start
Объявление имени процедуры в программе равнозначно объявлению метки,
поэтому директиву PROC в частном случае можно рассматривать как завуалиро-
ванную форму определения программной метки. Поэтому сама исполняемая про-
грамма также может быть оформлена в виде процедуры, что довольно часто и де-
лается с целью пометить первую команду программы, с которой должно начаться
выполнение. При этом не забывайте, что имя этой процедуры нужно обязательно
указывать в заключительной директиве END. Такой синтаксис мы уже неоднократ-
но использовали в своих программах. Так, последний рассмотренный фрагмент
эквивалентен следующему:
model small


Безусловные
221
procnear
ret
endp
start proc
start endp
end start
В этом фрагменте после загрузки программы в память управление будет пере-
дано первой команде процедуры с именем start.
Размещение процедуры в конце программы предполагает, что последователь-
ность команд, ограниченная директивами PROC и
находится следом за коман-
дой, возвращающей управление операционной системе:
model small
100h
start:
int 21h ;возврат управления операционной системе
procnear
ret
my_proc endp
end start
Промежуточный вариант расположения тела процедуры предполагает ее раз-
мещение внутри другой процедуры или основной программы. В этом случае необ-
ходимо предусмотреть обход тела
ограниченного директивами PROC
и ENDP, с помощью команды безусловного перехода ЗМР:
model small
100h
start:
ml
procnear
ret
endp
m l :
mov
int 21h
управления операционной системе
end start
Последний вариант расположения описаний процедур — в
 сегменте
кода — предполагает, что часто используемые процедуры выносятся в отдельный
файл, который должен быть оформлен как обычный исходный файл и подвергнут
трансляции для получения объектного кода. Впоследствии этот объектный файл
с помощью утилиты
можно объединить с файлом, в котором данные процеду-
ры используются. С утилитой tlink мы познакомились в главе 6. Этот способ пред-
полагает наличие в исходном тексте программы еще некоторых элементов, свя-
занных с особенностями реализации концепции модульного программирования


222 Глава
Команды передачи управления
в языке ассемблера. Поэтому в полном объеме этот способ будет рассмотрен в гла-
ве 15.
Как обратиться к процедуре? Так как имя процедуры обладает теми же атрибу-
тами, что и обычная метка в команде перехода, то обратиться к процедуре, в прин-
ципе, можно с помощью любой команды перехода. Но есть одно важное свойство,
которое можно использовать благодаря

Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   123   124   125   126   127   128   129   130   ...   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