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



Download 12,06 Mb.
Pdf ko'rish
bet176/357
Sana22.02.2022
Hajmi12,06 Mb.
#115195
TuriДиплом
1   ...   172   173   174   175   176   177   178   179   ...   357
Bog'liq
assembler uchebnik dlya vuzov 2-e izd YuRXUW1

Листинг 14.5. Инициализация значения идентификатора из командной строки
model small
stack 256
def_tab_50 macro
ifndef len
display
не определено, задайте значение
else
if
len GE 50
GOTO
endif
if
len LT 10
:exit
endif
rept len
db
0
endif
endm
def_tab_50 size_m
e x i t :
mov
int 21h
end main
Запустив этот пример на трансляцию, вы получите сообщение о том, что забы-
ли определить значение переменной size_m. Исправить эту
можно одним
из двух способов:


Директивы условной компиляции 313
ii в начале исходного текста программы определите значение этой переменной
с помощью
EQU:
15
ii запустите программу на трансляцию командной строкой вида
В листинге 14.5 мы использовали еще одну возможность транслятора — дирек-
тиву DISPLAY, с помощью которой можно формировать пользовательское сообще-
ние в процессе трансляции программы. Директива DISPLAY будет рассмотрена
в конце данной главы.
Директивы IFB и IFNB
Синтаксис директив IFB и
следующий:
IF(N)B аргумент
ELSE
ENDIF
Данные директивы используются для проверки фактических параметров, пе-
редаваемых в макрос. При вызове макрокоманды они анализируют значение аргу-
мента и в зависимости от того, равно оно пробелу или нет, транслируется либо
первый фрагмент программы
либо второй
Какой именно фрагмент будет
зависит от кода директивы.
Директива IFB проверяет равенство аргумента пробелу. В качестве аргумента
могут выступать имя или число. Если его значение равно пробелу (то есть фак-
тический аргумент при вызове макрокоманды не был задан), то транслируется
и помещается в объектный модуль первый фрагмент программы. В противном
случае при наличии директивы ELSE в объектный код помещается второй фраг-
мент программы. Если же директивы ELSE нет, то при равенстве аргумента про-
белу вся часть программы между директивами IFB и
и в объ-
ектный модуль не включается.
Действие IFNB обратно действию IFB. Если значение аргумента в программе не
равно пробелу, то транслируется первый фрагмент программы. В противном
случае при наличии директивы ELSE в объектный код помещается второй фраг-
мент программы. Если же директивы ELSE нет, то вся часть программы (при
неравенстве аргумента пробелу) между директивами IFNB и ENDIF игнорирует-
ся и в объектный модуль не включается.
Типичным примером применения этих директив являются строки в макроопре-
делении, проверяющие, указывается ли фактический аргумент при вызове соот-
ветствующей макрокоманды:
show macro reg
ifb 
display "не задан регистр"
exi


 Глава
Макросредства языка ассемблера
Если теперь в сегменте кода вызвать макрос SHOW без аргументов, то будет вы-
ведено сообщение о том, что не задан регистр, и генерация макрорасширения пре-
кратится директивой

Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   172   173   174   175   176   177   178   179   ...   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