- •10.Основные функции программ-ассемблеров Назначение и функции программ ассемблера.
- •11.Достоинства и недостатки одно- и двухпроходного ассемблера
- •12.Какой ассемблер является простым.
- •13.Что необходимо для реализации двухпроходного ассемблера
- •14. Алгоритм первого прохода двухпроходного ассемблера
- •19. Создание перемещаемых программ с использованием только относительной адресации
- •20.Что такое управляющая секция?
- •15.Структура выходного обьектного модуля
- •16.Алгоритм второго прохода обьектного модуля.
- •17. В чем основное отличие программ в перемещаемом формате от программ в абсолютном формате.
- •18.Создание перемещаемых программ с использованием только прямой адресации
- •21. Обработка управляющих секций. Виды перекрестных ссылок. Какие изменения вносятся в основную схему ассемблирования
- •22. Алгоритм работы однопроходного ассемблера.
- •23.Программа связывания и загрузки. Основные функции.
- •24.Классификаця программ связывания
- •25. Схема взаимодействия загрузчиков
- •26. Абсолютный загрузчик. Структура и алгоритм работы.
- •27. Перемещаемый загрузчик. Структура и алгоритм работы.
- •28. Связывающий загрузчик. Структура и алгоритм работы.
- •29.Однопросмотровая схема работы связывающего загрузчика.
- •30. Особенности реализации частных компоновщиков.
15.Структура выходного обьектного модуля
Запись – НАЧАЛО(заголовок)
Н имя проги адр загрузки длина (рис1)
2. запись – конец
Е адрес точки входа(знакоместа аналогично)
3. Запись - тело модуля
Т адрес загрузки записи (АЗЗ) длина записи тело записи(команда константы в двоичном виде)
16.Алгоритм второго прохода обьектного модуля.
Цель: генерация машинных команд и констант в двоичном представлении и создание объектного модуля.
Исходные данные: таблица ТСИ и вспомогательная таблица
-
Считываем 1ю строчку исходного текста программы и формируем запись-заголовок.
-
организуем цикл по обработке строк исходного текста.
-
анализируем поле операнда: если в нем обнаружено символическое имя, то осуществляем поиск ТСИ
-
поиск удачен, то заменяем его на адрес из ТСИ и генерируем машинную команду в соответствующем формате.
-
символическое имя в ТСИ не обнаружено – генерируется ошибка.
-
-
если обнаружена константа, то она переводится из внешнего представления во внутреннее, генерируется соответствующая команда.
-
-
цикл заканчивается директивой end и генерируется запись конечного модуля.
17. В чем основное отличие программ в перемещаемом формате от программ в абсолютном формате.
Создание программ в перемещаемом формате
Либо с прямой, либо с относительной адресацией.
-
Прямая адресация
М относительный адрес модифицируемой команды (ОАМК)
Рис2
Недостаток таких программ: увеличение времени загрузки, увеличение размера объектного модуля.
Преимущества: гибкость.
Изменения в схеме ассемблирования:
-- дополнительная структура (таблица модификаторов)
Рис3
2.1.1. если в операндной части обнаружено символическое имя и оно присутствует в ТСИ, заменяем символическое имя относительным адресом из ТСИ и в таблицу модификаторов добавляем относительный адрес модифицируемой команды, в операндной части которой встретилось символическое имя.
Пункт 3 становится пунктом 4
А пункт 3: производим выгрузку таблицы модификаторов в объектный модуль(М ОАМК).
18.Создание перемещаемых программ с использованием только прямой адресации
19. Создание перемещаемых программ с использованием только относительной адресации
достоинства: более гибкая программа; т к нет необходимости настраивать операндные части, то более шустрая загрузка ОП и меньший объем объектного модуля.
недостаток: более медленное выполнение
Изменения в схеме ассемблирования
2й проход:
Если обнаружено символическое имя и это имя есть в ТСИ(в операндной части), то заменяем символическое имя адресом, который получается как разность относительного адреса символического имени из ТСИ и значением счетчика-адреса. Это и получается смещение. Записываем его в команду.
20.Что такое управляющая секция?
Лекция №5
Обработка управляющей секцией(раздельное ассемблирование)
Управляющая секция – часть программы, которая обрабатывается ассемблером независимо от других частей программы. Т е при обработке одной управляющей секции, появляется 1 автономный объектный модуль, обрабатывающийся независимо от других частей программ(модулей) – запускается свой алгоритм ассемблирования.
-
Управляющая секция в отдельном файле
-
несколько управляющих секций расположены в одном файле. В этом случае при ассемблирования данного файла должны получить несколько объектных модулей.
Введем специальную директиву:
Имя _секции CSECT
Достоинства: каждый модуль может быть загружен в ОП по одному адресу.
