Системное программирование. Конспект лекций


Алгоритм выполнения 2-го прохода следующий:


  1. 2-й проход макропроцессора
  2. Начальные установки: открытие файлов, создание пустых таблиц, etc. Признак режима обработки устанавливается в значение "обработка программы".
  3. Признак конца обработки установлен ?
  4. Если признак конца обработки установлен, выполняются завершающие операции...
  5. .. и работа Макропроцессора заканчивается.
  6. Выполняется разбор строки.
  7. Проверяется признак режима обработки.
  8. Если признак режима установлен в значение "обработка макроопределения", то проверяется мнемоника оператора.
  9. Если в режиме обработки макроопределения встречается мнемоника MEND, то режим переключается в "обработка программы", все прочие операторы в режиме обработки макроопределения игнорируются.
  10. Если признак режима работы установлен в значение "обработка программы", происходит ветвление алгоритма в зависимости от мнемоники оператора.
  11. Обработка оператора MACRO заключается в установке режима обработки в значение "обработка программы".
  12. Обработка директивы Ассемблера END заключается в установке признака окончания работы и выводе оператора в выходной файл.
  13. Любая другая мнемоника ищется в Таблице машинных команд и в Таблице директив Ассемблера. Если мнемоника найдена в одной из этих таблиц, то...
  14. ... оператор просто выводится в выходной файл.
  15. Если оператор не является оператором языка Ассемблера, то предполагается, что это макровызов и соответствующее мнемонике имя ищется в Таблице имен макроопределений.
  16. Если имя не найдено в Таблице имен макроопределений, то оно ищется в библиотеках макроопределений (см. ниже).
  17. Если имя не найдено и в библиотеках макроопределений, вырабатывается сообщение об ошибке и управление передается на чтение следующего оператора программы.
  18. Если имя не найдено в библиотеках макроопределений, соответствующие элементы включаются в Таблицу имен макроопределений и в Таблицу макроопределений.
  19. Если имя есть в Таблице макроопределений, выполняется обработка макровызова (см. ниже), после чего управление передается на чтение следующего оператора программы.




- Начало -  - Назад -  - Вперед -