Cтраница 1
Словарь перемещений содержит сведения о всех перемещаемых адресных константах. [1]
Действительно, если элемент словаря перемещений RLD соответствует внутренней адресной константе, то он задается Б одной из секций обрабатываемого модуля и, следовательно, представлен в словаре ESD элементом PC, CM или SD. Если элемент словаря RLD характеризует внешнюю константу, в словаре ESD задан соответствующий элемент типа ER. Элемент типа LD в словаре ESD исчерпал свои функции уже на первом этапе редактирования, поскольку единственное его назначение - служить отображением некоторых элементов типа ER из отдельно транслируемых модулей. [2]
Часть RLD ( ReLocation Dictionary) - словарь перемещений - содержит информацию об адресных постоянных модуля. Эти постоянные не могут быть определены ассемблером, так как их значения зависят от места расположения модуля в оперативной памяти при его исполнении. Если словарь перемещений пуст, текст модуля представляет переместимую программу, которая без каких-либо изменений может исполняться в любом месте оперативной памяти. [3]
В качестве основной информации карты словаря внешних имен ( ESD) и словаря перемещений ( RLD) содержат ту же информацию, что соответствующие части листинга, а карта END служит для указания окончания объектного модуля и может содержать адрес, с которого нужно начать выполнение программы после загрузки. [4]
Объектные модули содержат тексты исходных модулей в машинном коде, дополненные служебной информацией в виде словаря внешних символов и словаря перемещений, и не являются готовыми к выполнению программами. Для получения готовых к выполнению программ объектные модули должны пройти этап редактирования, реализуемый системными обрабатывающими программами редактора связей. [5]
Карты типа RLD содержат данные о частях текста, изменяемых при перемещениях, и необходимые для перемещения данные. Они составляют словарь перемещений. [6]
При успешном завершении описанной процедуры начинается заключительный этап редактирования - корректирование перемещаемых адресных констант и формирование окончательных текстов фаз программы. Формируя окончательный текст фазы, редактор связей просматривает словари перемещений ( RLD), определяет адрес каждой перемещаемой адресной константы и находит в тексте соответствующего модуля ее исходное значение. Кроме того, редактор определяет по словарю перемещений знак приращения и номер ( идентифицирующий номер ESD) имени, использованного в константе. По этому номеру отыскивается имя и еп абсолютный адрес. Наконец, найденный адрес имени с учетом знака приращения алгебраически складывается с исходным значением константы. Эта сумма записывается в текст фазы в качестве скорректированного значения перемещаемой адресной константы. [7]
Структура загрузочного модуля подобна структуре объектного. Он тоже состоит из текста, словаря внешних ссылок, словаря перемещений. Отличие в том, что текст плотно упакован п записи переменной длины и на внешних носителях занимает гораздо меньше места, чем текст объектного модуля. [8]
Процесс корректировки адресных констант для внутренних символов, таких, как TABLE, обычно называют перемещением, в то время как процесс определения содержимого адресных констант для внешних символов, таких, как SUM, обычно называется связыванием. По существу RLD-карты используются в обоих случаях, отсюда они и получили свое название карт - словаря перемещения и связывания. Читатель может сравнить рассмотренный механизм с методами, используемыми в двоично-символическом настраивающем загрузчике, рассмотренном ранее. [9]
Различают карты четырех типов: ESD - словарь внешних символов, ТХТ - текст программы на языке ЭВМ, RLD - словарь перемещений, END - признак конца объектного модуля. [10]
Часть RLD ( ReLocation Dictionary) - словарь перемещений - содержит информацию об адресных постоянных модуля. Эти постоянные не могут быть определены ассемблером, так как их значения зависят от места расположения модуля в оперативной памяти при его исполнении. Если словарь перемещений пуст, текст модуля представляет переместимую программу, которая без каких-либо изменений может исполняться в любом месте оперативной памяти. [11]
При успешном завершении описанной процедуры начинается заключительный этап редактирования - корректирование перемещаемых адресных констант и формирование окончательных текстов фаз программы. Формируя окончательный текст фазы, редактор связей просматривает словари перемещений ( RLD), определяет адрес каждой перемещаемой адресной константы и находит в тексте соответствующего модуля ее исходное значение. Кроме того, редактор определяет по словарю перемещений знак приращения и номер ( идентифицирующий номер ESD) имени, использованного в константе. По этому номеру отыскивается имя и еп абсолютный адрес. Наконец, найденный адрес имени с учетом знака приращения алгебраически складывается с исходным значением константы. Эта сумма записывается в текст фазы в качестве скорректированного значения перемещаемой адресной константы. [12]