АССЕМБЛЕР. Компоновщик. Загрузчик. Макрогенератор

         

ВТОРОЙ ПРОХОД АССЕМБЛЕРА.


Теперь рассмотрим действия ассемблера на 2-м проходе. К этому моменту в ТИ и ТС уже собрана вся информация об именах программы. Ассемблер заново просматривает строчка за строчкой текст программы и, используя информацию из ТИ, уже переводит программу с ЯА на машинный язык.

Формируемые машинные команды ассемблер записывает в последовательные ячейки памяти начиная с некоторого адреса, кратного 16. Какой это конкретно адрес - не важно. Дело в том, что машинная программа, сформированная ассемблером, не будет тут же выполняться, а будет лишь записана во внешнюю память, поэтому ее можно формировать в любом месте памяти. Учитывая это, мы будем указывать адрес первой свободной ячейки, отсчитанный от начала этого места, и будем обозначать этот адрес как АДР. В начале АДР=0.

Примеры обработки директив и команд на 2-м проходе.

Директивы EQU и PROG игнорируются, т.к. вся информация из них уже извлечена на 1-м проходе.

Директива SE



Содержание раздела