- •10.Основные функции программ-ассемблеров Назначение и функции программ ассемблера.
- •11.Достоинства и недостатки одно- и двухпроходного ассемблера
- •12.Какой ассемблер является простым.
- •13.Что необходимо для реализации двухпроходного ассемблера
- •14. Алгоритм первого прохода двухпроходного ассемблера
- •19. Создание перемещаемых программ с использованием только относительной адресации
- •20.Что такое управляющая секция?
- •15.Структура выходного обьектного модуля
- •16.Алгоритм второго прохода обьектного модуля.
- •17. В чем основное отличие программ в перемещаемом формате от программ в абсолютном формате.
- •18.Создание перемещаемых программ с использованием только прямой адресации
- •21. Обработка управляющих секций. Виды перекрестных ссылок. Какие изменения вносятся в основную схему ассемблирования
- •22. Алгоритм работы однопроходного ассемблера.
- •23.Программа связывания и загрузки. Основные функции.
- •24.Классификаця программ связывания
- •25. Схема взаимодействия загрузчиков
- •26. Абсолютный загрузчик. Структура и алгоритм работы.
- •27. Перемещаемый загрузчик. Структура и алгоритм работы.
- •28. Связывающий загрузчик. Структура и алгоритм работы.
- •29.Однопросмотровая схема работы связывающего загрузчика.
- •30. Особенности реализации частных компоновщиков.
22. Алгоритм работы однопроходного ассемблера.
-
В счетчик адреса заносим адрес загрузки программы
-
организуем цикл по обработке строк исходного текста программы, каждая строка которого обрабатывается следующим образом:
-
выделяются все основные части исходной строки
-
рассматриваем поле метки. Если встретилось символическое имя, то осуществляем его поиск в ТСИ. Если поиск неудачен, то заносим его в ТСИ и назначаем его адрес из счетчика адреса. Если поиск удачен и с ним сопоставлен адрес, то генерируем ошибку. Если поиск удачен, но с ним не сопоставлен адрес, то (рассмотрим ситуацию ниже).
-
если в поле в мнемо-код операции встретилась директива резервирования памяти, то увеличиваем счетчик адреса на величину резервируемой области. Если встретилась команда, то заменяем мнемо-код на двоичное представление
-
рассматриваем операндную часть команды. Если встретилась константа, то переводим ее в двоичное представление. Если встретилось символическое имя, то осуществляется поиск его в ТСИ. Если поиск удачен и с именем сопоставлен адрес, то заменяем имя на адрес из ТСИ и формируем команду. Если поиск неудачен, то заносим это имя в ТСИ, при этом с ним не связываем никакой адрес и связываем некий дополнительный список, 1м элементом которого будет адрес команды, в операндной части которого встретилось это символическое имя. Если поиск удачен и с именем связан дополнительный список, то в этот список заносим адрес команды.
...
ADD L1,R1
...
JMP L1
...
L1 SAVE R1
Рис2
(ниже:)Если в поле метки встретилось символическое имя, то назначаем этому имени адрес из счетчика адреса и переходим к обработке вспомогательного списка, каждый элемент которого обрабатывается след образом: извлекаем адрес из списка, по этому адресу входим в команду, и символическое имя в команде изменяем на адрес данного имени. При этом элемент списка удаляется.
-
цикл заканчивается при обнаружении команды end.
РАЗРАБОТАТЬ ОДНОПРОСМОТРОВУЮ СХЕМУ (АЛГОРИТМЫ) АССЕМБЛИРОВАНИЯ ДЛЯ ПРОГРАММ В ПЕРЕЩАЕМОМ И В ПОЛНОМ ПЕРЕМЕЩАЕМОМ ФОРМАТЕ
23.Программа связывания и загрузки. Основные функции.
Программы связывания и загрузки
- программа, выполняющая одну или несколько следующих функций:
1. функция перемещения – настройка адресов программы на реальный адрес загрузки
2. функция связывания – объединение нескольких модулей в единый загрузочный модуль с обработкой перекрестных ссылок.
3. функция загрузки – запись машинного кода в оперативную память и запуск программы на выполнение.
24.Классификаця программ связывания
Различают несколько видов программ связанной загрузки:
-
абсолютный загрузчик
на вход АЗ подается модуль в абсолютном формате(МАФ). На выходе – ничего. Функции – только загрузка.
-
Перемещающий загрузчик(ПЗ).
Вход: 1 МПФ(модуль в перемещаемом формате)
Выход: -
Функции: перемещение и загрузка
-
связывающий загрузчик(СЗ)
вход: 1 или несколько модулей в полном перемещаемом формате(МППФ)
выход:-
функции: связывание, перемещение, загрузка
-
чистый компоновщик(ЧК)
вход: 1 ли несколько МППФ
выход: 1 МПФ или 1 МАФ
функции: связывание и частичное перемещение
рис3
