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



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


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




  • Содержание  Назад  Вперед