Cтраница 1
Повторное ассемблирование чаще используется на малых машинах. Если позволяют ресурсы памяти, то предпочтительнее иметь перемещающий загрузчик. Программы, перемещающие себя, оказываются экономически нецелесообразными, поскольку требуют перестройки сотен или даже тысяч адресов. [1]
Чтобы избежать необходимости повторного ассемблирования всех подпрограмм при внесении изменения в одну из них, а также для того, чтобы освободить программиста от задач распределения памяти и осуществления связи подпрограмм, были разработаны так называемые настраивающие загрузчики. Ассемблер транслирует каждый программный сегмент независимо и передает загрузчику текст и информацию, касающуюся перемещений и перекрестных ссылок между сегментами. [2]
При этом необходимо будет задать новый адрес для подпрограммы SQRT путем изменения карты START и повторного ассемблирования. [3]
Структура ОС ЕС. [4] |
Редактор связей, как уже отмечалось, предназначен для объединения объектных модулей в одну программу, которую можно загружать в основную оперативную память. Он дает возможность вносить изменения в программу без повторной трансляции или без повторного ассемблирования готовой программы ( повторно транслируются только те разделы программы, в которые внесены изменения), а также разделять программу на части ( сегменты), если она слишком велика для имеющейся емкости основной памяти. [5]
Часто для экономии времени загрузки бывает полезно объединять сегменты, которые содержат обращения друг к другу. С другой стороны, при отладке программ не менее удобно для экэномии времени, затрачиваемого на повторное ассемблирование программы, иметь возможность снова разделять эти сегменты, чтобы заменить ту часть программы, в которой обнаружена ошибка. Однако эти объединенные сегменты невозможно восстановить в их первоначальном виде. [6]
Входная лента доступна операционной системе и рабочим программам. Когда одно задание заканчивается, операционная система вводит для выполнения следующее задание. Оборудование, применявшееся первоначально для пакетной обработки, можно характеризовать следующим образом. Во-первых, после предоставления задания обрабатывающему устройству последнее использовалось до полного завершения работы. Во-вторых, внешние устройства ввода-вывода адресовались физически, так что, когда пользователь сталкивался с необходимостью сменить устройство ввода-вывода ( внешнее устройство) или тип устройства, ему приходилось прибегать к повторной компиляции ( или повторному ассемблированию) своей программы. [7]