Начальные установки: открытие файлов, создание пустых таблиц, etc. Признак режима обработки устанавливается в значение "обработка программы".
Признак конца обработки установлен ?
Если признак конца обработки установлен, выполняются завершающие операции...
.. и работа Макропроцессора заканчивается.
Выполняется разбор строки.
Проверяется признак режима обработки.
Если признак режима установлен в значение "обработка макроопределения", то проверяется мнемоника оператора.
Если в режиме обработки макроопределения встречается мнемоника MEND, то режим переключается в "обработка программы", все прочие операторы в режиме обработки макроопределения игнорируются.
Если признак режима работы установлен в значение "обработка программы", происходит ветвление алгоритма в зависимости от мнемоники оператора.
Обработка оператора MACRO заключается в установке режима обработки в значение "обработка программы".
Обработка директивы Ассемблера END заключается в установке признака окончания работы и выводе оператора в выходной файл.
Любая другая мнемоника ищется в Таблице машинных команд и в Таблице директив Ассемблера. Если мнемоника найдена в одной из этих таблиц, то...
... оператор просто выводится в выходной файл.
Если оператор не является оператором языка Ассемблера, то предполагается, что это макровызов и соответствующее мнемонике имя ищется в Таблице имен макроопределений.
Если имя не найдено в Таблице имен макроопределений, то оно ищется в библиотеках макроопределений (см. ниже).
Если имя не найдено и в библиотеках макроопределений, вырабатывается сообщение об ошибке и управление передается на чтение следующего оператора программы.
Если имя не найдено в библиотеках макроопределений, соответствующие элементы включаются в Таблицу имен макроопределений и в Таблицу макроопределений.
Если имя есть в Таблице макроопределений, выполняется обработка макровызова (см. ниже), после чего управление передается на чтение следующего оператора программы.