|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Связывание в настраивающем загрузчикеПроблема связывание в настраивающем загрузчике решается с помощью вектора перехода. Вектор перехода включается в состав объектного модуля и содержит список всех внешних имен, которым есть обращение в модуле с полем адреса для каждого имени. Вектор перехода заполняется при обработке директив типа exst (перечисление внешних имен). В команду программы, обращающеюся к внешним именам вставляется обращение к адресному полю соответствующего элемента вектора перехода с признаком косвенного обращения. При загрузки в оперативную память вектор перехода загружается вместе с кодами программы и остается в памяти все время выполнения программы. Когда загрузчик компонует программу из нескольких объектных модулей, он узнает все фактические адреса всех входных точек вектора переходов, тех модулей, которые обращаются к данной входной точке и вставляет эти адреса. Обращение к внешней точке, таким образом, производится косвенно через вектор перехода. Перемещение в настраивающих загрузчиках Принятые в настраивающих загрузчиках методы позволяют легко реализовывать настройку реальных адресов заданных относительно начала программы. Сущность метода перемещения состоит в том, что с каждым словом кода программы связывается один бит перемещения. Значение этого бита 0 или 1 является признаком неперемещаемого, перемещаемого слова. Если слово является неперемещаемым, оно оставляется загрузчиком без имени. Если слово перемещаемое, то к значению слова прибавляется стартовый адрес модуля в оперативной памяти. Биты перемещения могут упаковываться, например, 8 слов в один байт. Непосредственно связывающие загрузчики Эти загрузчики называются непосредственно связывающими, потому что они обеспечивают обращение к внешней точке непосредственно, а не через косвенную адресацию. Эти загрузчики обеспечивают более высокую эффективность кода и более гибкие возможности связывания. Такие возможности достигаются за счет того, что в объектном модуле содержится вся необходимая для загрузчика информация. Формат объектного модуля Объектный модуль, поступающий на ход загрузчика, должен в той или иной форме содержать: 1. Размер модуля. 2. Машинные коды. 3. Входные точки (те адреса модуля, к которым возможно обращение извне). 4. Внешние точки (те имена во внешних модулях, в котором есть обращение в данном модуле). 5. Информация о размещении модуля перемещаемых данных
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |