3. Описание основного алгоритма макропроцессора
Алгоритм основного просмотра проверяет каждую строку входного текста. Если в поле команд встретилась псевдооперация «MACRO», все следующее за ней макроопределение запоминается в ближайших свободных ячейках таблицы макроопределений до тех пор, пока не встретилась директива «ENDM». Первая строка макроопределения — строка имени макро. Имя заносится в таблицу имен вместе с указателем на первую и последнюю ячейки элемента ТМО, содержащего это определение.
При обработке основного текста проверяем мнемонический код операции каждого входного предложения, не содержится ли имя этого предложения в ТИМ. Если обнаружена макрокоманда то процессор устанавливает указатель таблиц макроопределений (ТМО) на соответствующее макроопределение, хранящееся в ТМО. Начальное значение берется из поля «Индекс ТИМ» соответствующего элемента таблицы ТМО(нач. адрес).
Чтение производится из ТМО; в процессе чтения текста макроопределения из ТМО значения из списка параметров подставляются в макроопределение вместо индексов формальных параметров. Чтение предложения ENDМ приводит к прекращению расширения и возобновлению просмотра входного файла. Когда встречается псевдокоманда END, расширенный исходный текст передается ассемблеру для дальнейшей обработки.