Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы СППО.docx
Скачиваний:
26
Добавлен:
25.12.2018
Размер:
71 Кб
Скачать
☆

22. Алгоритм работы однопроходного ассемблера.

    1. В счетчик адреса заносим адрес загрузки программы

    2. организуем цикл по обработке строк исходного текста программы, каждая строка которого обрабатывается следующим образом:

    1. выделяются все основные части исходной строки

    2. рассматриваем поле метки. Если встретилось символическое имя, то осуществляем его поиск в ТСИ. Если поиск неудачен, то заносим его в ТСИ и назначаем его адрес из счетчика адреса. Если поиск удачен и с ним сопоставлен адрес, то генерируем ошибку. Если поиск удачен, но с ним не сопоставлен адрес, то (рассмотрим ситуацию ниже).

    3. если в поле в мнемо-код операции встретилась директива резервирования памяти, то увеличиваем счетчик адреса на величину резервируемой области. Если встретилась команда, то заменяем мнемо-код на двоичное представление

    4. рассматриваем операндную часть команды. Если встретилась константа, то переводим ее в двоичное представление. Если встретилось символическое имя, то осуществляется поиск его в ТСИ. Если поиск удачен и с именем сопоставлен адрес, то заменяем имя на адрес из ТСИ и формируем команду. Если поиск неудачен, то заносим это имя в ТСИ, при этом с ним не связываем никакой адрес и связываем некий дополнительный список, 1м элементом которого будет адрес команды, в операндной части которого встретилось это символическое имя. Если поиск удачен и с именем связан дополнительный список, то в этот список заносим адрес команды.

...

ADD L1,R1

...

JMP L1

...

L1 SAVE R1

Рис2

(ниже:)Если в поле метки встретилось символическое имя, то назначаем этому имени адрес из счетчика адреса и переходим к обработке вспомогательного списка, каждый элемент которого обрабатывается след образом: извлекаем адрес из списка, по этому адресу входим в команду, и символическое имя в команде изменяем на адрес данного имени. При этом элемент списка удаляется.

  1. цикл заканчивается при обнаружении команды end.

РАЗРАБОТАТЬ ОДНОПРОСМОТРОВУЮ СХЕМУ (АЛГОРИТМЫ) АССЕМБЛИРОВАНИЯ ДЛЯ ПРОГРАММ В ПЕРЕЩАЕМОМ И В ПОЛНОМ ПЕРЕМЕЩАЕМОМ ФОРМАТЕ

23.Программа связывания и загрузки. Основные функции.

Программы связывания и загрузки

- программа, выполняющая одну или несколько следующих функций:

1. функция перемещения – настройка адресов программы на реальный адрес загрузки

2. функция связывания – объединение нескольких модулей в единый загрузочный модуль с обработкой перекрестных ссылок.

3. функция загрузки – запись машинного кода в оперативную память и запуск программы на выполнение.

24.Классификаця программ связывания

Различают несколько видов программ связанной загрузки:

  1. абсолютный загрузчик

на вход АЗ подается модуль в абсолютном формате(МАФ). На выходе – ничего. Функции – только загрузка.

  1. Перемещающий загрузчик(ПЗ).

Вход: 1 МПФ(модуль в перемещаемом формате)

Выход: -

Функции: перемещение и загрузка

  1. связывающий загрузчик(СЗ)

вход: 1 или несколько модулей в полном перемещаемом формате(МППФ)

выход:-

функции: связывание, перемещение, загрузка

  1. чистый компоновщик(ЧК)

вход: 1 ли несколько МППФ

выход: 1 МПФ или 1 МАФ

функции: связывание и частичное перемещение

рис3