Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
К лабораторной работе № 5
Препроцессоры Макроопределения Макрокоманда представляет собой текстовую подстановку, в ходе выполнения которой каждый идентификатор определенного вида заменяется на цепочку символов из некоторого хранилища данных. Процесс выполнения макрокоманды называется макрогенерацией, а цепочка символов, получаемая в результате выполнения макрокоманды, — макрорасширением. Процесс выполнения макрокоманд заключается в последовательном просмотре текста исходной программы, обнаружении в нем определенных идентификаторов и их замене на соответствующие строки символов. Причем выполняется именно текстовая замена одной цепочки символов (идентификатора) на другую цепочку символов (строку). Такая замена называется макроподстановкой. Для того чтобы указать, какие идентификаторы на какие строки необходимо заменять, служат макроопределения. Макроопределения представляют собой последовательность операторов на языке Ассемблера, которые могут несколько раз появиться в программе. Тем самым они очень похожи на подпрограммы. Макроопределения присутствуют непосредственно в тексте исходной программы. Они выделяются специальными ключевыми словами либо разделителями, которые не могут встречаться нигде больше в тексте программы. В процессе обработки все макроопределения полностью исключаются из текста входной программы, а содержащаяся в них информация запоминается для обработки при выполнении макрокоманд.
Например, пусть необходимо сложить содержимое двух ячеек памяти размером в слово, используя макроопределение: ; макроопределение для сложения двух значений ADD_WORDS MACRO TERM1, TERM2, SUM MOV AX, TERM1 ADD AX, TERM2 MOV SUM, AX ENDM Тогда в программе можно использовать оператор: ADD_WORDS PRICE, TAX, COST Вместо этого оператора Ассемблер после трансляции вставит в программу следующие команды: MOV AX, PRICE ADD AX, TAX MOV COST, AX Макроопределения при написании программы на языке ассемблера не включаются ни в один сегмент. Их описывают перед сегментами после заголовка. Структура программы, содержащей макроопределения, может иметь следующий вид:
Библиотека макроопределений. Библиотека макроопределений представляет собой файл с расширением lib, в котором заданы макроопределения, необходимые для нескольких программ. Этот файл можно создать с помощью любого текстового редактора точно так же, как и любую программу. После того как такой файл создан, его содержимое можно считывать в любую исходную программу. Тем самым все макроопределения библиотеки становятся доступными для этой программы. Чтобы использовать какой-либо из них, достаточно указать его имя. Включаемые в библиотеку макроопределения должны быть процедурами общего пользования, которыми можно воспользоваться практически в любой программе. Поэтому, создавая библиотеку макроопределений, придерживайтесь следующих указаний: · Старайтесь делать макроопределения как можно более универсальными. · Если макроопределение содержит метки, перечислите их в операторе LOCAL. · Сохраняйте все используемые в макроопределении регистры, за исключением выходных, с помощью операторов PUSH и РОР.
|
Последнее изменение этой страницы: 2019-05-07; Просмотров: 218; Нарушение авторского права страницы