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



Download 12,06 Mb.
Pdf ko'rish
bet166/357
Sana22.02.2022
Hajmi12,06 Mb.
#115195
TuriДиплом
1   ...   162   163   164   165   166   167   168   169   ...   357
Bog'liq
assembler uchebnik dlya vuzov 2-e izd YuRXUW1

Глава
Макросредства языка
ассемблера
Понятие о макросредствах языка ассемблера
Псевдооператоры EQU и =
Макрокоманды и макродирективы
Директивы условной компиляции
Директивы генерации ошибок пользователя
Директивы управления листингом
Язык ассемблера не относится к простым языкам программирования. По истече-
нии некоторого времени после начала программирования на ассемблере становят-
ся видны свойственные этому языку проблемы. Перечислим некоторые из них:
плохая читаемость исходных текстов программы — спустя некоторое время при
недостаточном комментировании могут возникнуть проблемы с пониманием
особенностей алгоритма, лежащего в основе программы;
ограниченность набора команд;
* полная или почти полная повторяемость некоторых фрагментов программы;
9 необходимость включения в каждую новую программу одних и тех же фраг-
ментов кода и т. д.
При написании программы на машинном языке данные проблемы были бы
принципиально неразрешимы. Но язык ассемблера, являясь символическим пред-
ставлением машинного языка, в то же время предоставляет ряд средств более вы-
сокого уровня для их решения. Основной целью, которая при этом преследуется,


294 Глава 14. Макросредства языка ассемблера
является повышение удобства написания программ. В общем случае эта цель до-
стигается за счет:
расширения набора директив;
введения некоторых дополнительных команд, не имеющих аналогов в системе
команд процессора (за примером далеко ходить не нужно — это рассмотренные
в главе 13 команды SETFIELD и GETFIELD, которые скрывают от программиста ру-
тинные действия и генерируют наиболее эффективный код);
введения сложных типов данных.
Однако этот перечень исчерпывает все глобальные направления, по которым
развивается транслятор от версии к версии. Что же делать программисту для ре-
шения его локальной задачи, для адаптации процесса разработки к нуждам опре-
деленной проблемной области? Для этого разработчики компиляторов ассембле-
ра включают в язык и постоянно совершенствуют аппарат макросредств. Этот
аппарат является очень мощным и важным. В общем случае есть смысл говорить о
том, что транслятор ассемблера состоит из двух частей — непосредственно транс-
лятора, формирующего объектный модуль,  макроассемблера (рис.
Если вы
знакомы с языком С или C++, то, конечно, знаете используемый в нем механизм
обработки. Основные принципы его работы аналогичны прин-
ципам работы макроассемблера. Для тех, кто ничего раньше не слышал об этом
механизме, поясню его суть. Основная идея — использование подстановок, когда
определенным образом организованная символьная последовательность заменя-
ется другой символьной последовательностью. Создаваемая последовательность
может описывать как данные, так и программные коды. Главное здесь то, что на
входе макроассемблера текст программы может быть весьма далеким по виду от
ассемблера, но на выходе обязательно будет текст на чистом ассемблере, содержа-
щем символические аналоги машинных команд процессора. Таким образом, обра-
ботка программы на ассемблере с использованием макросредств неявно осуществ-
ляется транслятором в две фазы. На первой фазе работает часть компилятора,
Исходная программа
на ассемблере
(содержит макросы)
Транслятор
1-я фаза трансляции:
макроассемблер
(макрогенератор)
Исходная программа
во внутреннем
представлении
компилятора
(уже без макросов)
2-я фаза трансляции:
ассемблер
| Объектный модуль
Рис.
Макроассемблер в общей схеме трансляции программы для компилятора TASM


Псевдооператоры EQU и = 295
называемая макроассемблером, основные функции которого мы описали
Во второй фазе трансляции участвует непосредственно ассемблер, задачей кото-
рого является формирование объектного кода, содержащего текст исходной про-
граммы в машинном виде.
Далее мы обсудим основной набор макросредств компилятора TASM. Отме-
тим, что большинство этих средств доступно и в компиляторе MASM фирмы
Microsoft. Обсуждение начнем с простейших средств и закончим более сложными.

Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   162   163   164   165   166   167   168   169   ...   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