Макропрограммирование и управление ассемблирование

Ассемблер представляет собой программу, основной функцией которой является перевод предложений языка ассемблера в соответствующие машинные команды. Однако на самом деле мы можем требовать от ассемблера выполнения многих других функций. Мы уже познакомились с наиболее часто используемыми псевдокомандами, такими, например, как EQU и PRINT, а также с некоторыми специальными макрокомандами.

В данной главе будет показано, что существует даже целый язык, специально предназначенный для управления обработкой исходных программ, который можно использовать для управления процессом ассемблирования. Этот язык позволяет нам, кроме всего прочего, вводить собственные макрокоманды. Преимущества работы с собственными макрокомандами очевидны. С их помощью можно включить в программу группу команд ассемблера и данных, написав лишь одно предложение. Взгляните на расширение одной из макро DCB, и вы увидите, насколько удобнее записывать каждый раз такое расширение в виде одной команды.

Возможность подобной работы с макрокомандами является лишь одним из удобств, представляемых программистам ассемблером. В принципе, используя лишь макроопределения и управляющие предложения, можно заставить ассемблер целиком сформировать некоторую программу.

Существует три основных понятия, связанные с использованием макро:

1. Макроопределение. Оно состоит из

а) предложения MACRO;

б) прототипа: операнды выступают в виде символических параметров;

в) модельных предложений, определяющих состав макрорасширения;

г) предложения MEND.

2. Макрокоманда: запрос на использование макро в программе. С ее помощью присваиваются значения символическим параметрам.

3. Макрорасширение: предложения макроопределения, вставляемые ассемблером в программу.

SET-переменные и атрибуты служат в качестве вспомогательных средств для организации условного ассемблирования. С помощью предложений AIF и AGO можно управлять порядком ассемблирования команд программы и обработки макроопределений.

Это интересно