Учебное пособие: Разработка в структурно логической схемы микропроцессора
Загрузка – обеспечивает размещение в оперативной памяти для исполнения. Это системная программа и традиционная система.
Перемещение – позволяет модифицировать объектную программу так, что она может загружаться с адреса, отличного от первоначального.
Связывание – обеспечивает объединение двух и более раздельно транслированных объектных программ и предоставляет информацию необходимую для разрешения ссылок между ними. Для того чтобы программа была перемещаемая и мы могли разрешить все внешние ссылки, в объектной программе должна быть заложена информация.
Формат объектной программы.
Запись заголовок.
- // - 2-7 – имя программы
- // - 8-13 – начала адреса программы
- // - 14-19 – длина программы в байтах
Тело. Признак Т.
- // - 2-7 – Начальный адрес в данной записи.
- // - 8-9 – длина текущей записи
- // - 10-69 – объектный код
Запись - конец
- // - 2-7 – адрес первой исполняемой команды
Если большинство команд ассемблера использую относительную и непосредственную адресацию, то для реализации перемещения программ модификации требует отдельные программы ассемблера. Запись в модификатор может быть использованным как для перемещения так и для связок. Он состоит из:
Признак М
- // - 2-7 – начальный адрес модифицированного программного объекта
- // - 8-9 – длина модифицированного поля в полубайтах
- // - 10 – признак модификации
- // - 11 - 16 – внешнее имя
Модификатор выделяет все адреса, которые надо пересчитать с учетом адреса загрузки. Однако такая схема годится не для всех машин, если большинство команд используют прямую адресацию и фиксированный командный формат, следовательно должны модифицироваться для перемещения что потребует большого увеличения объема памяти объектной программы.
Лекция (12_10_07)
2 вариант – использование маски. С каждым словом программы объектного кода, связывается в разряд перемещения. Эти разряды образую вместе маску, которая записывается сразу после длины тела программы в каждой записи.
3 способ организации перемещения. Во многих ЭВМ перемещения организуется аппаратным образом. Для этого используется базовая адресация – базовый адрес + смещение.
4 вариант. Любой адрес высчитывается относительно.
Управляющая секция – часть программы, после ассемблирования сохраняет свою индивидуальность, и может перемещаться и загружаться независимо от других. Так как эти части логически связанны и не могут существовать отдельно, должен быть реализован механизм связывания и объединения. Чаще всего управляющей секцией выступает процедура функция. Команды одной управляющей секции должны иметь возможность ссылаться на команды и на области данных, расположенных в других секциях. Ссылки нельзя обрабатывать обычным образом, поскольку УС загружается и перемещается независимо дуг от друга и ассемблер ничего не известно. Для каждой внешней ссылке ассемблер генерирует информацию, которая дает возможность выполнить требуемое связывание программы. Имена определенные в одной управляющей секции могут непосредственно использоваться в другой секции. Для того чтобы загрузчик смог их обработать они должны быть описаны как внешние имена.
Запись определения – Столбец 1 D
- // - 2-7 – идентификатор внешнего имени, определенной данной управляющей секцией.
- // - 8-13 – относительный адрес имени
Запись ссылка – столбец 1 R