LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

есть кстати прикольные архитектуры, где сборка и все эти адреса - ненужны в принципе.

там есть в памяти таблица адресов расположения модулей в памяти, а обращение к адресам другого модуля делается аппаратно, через таблицу.

команда выглядит так(псевдокод):

mov [10].100, 0

то есть - взять 10 ый адрес из таблицы(то есть стартовый адрес данных модуля с номером 10), сместиться на 100, и положить ноль. тогда при загрузке надо просто проставить туда адреса расположения данных модуля в памяти, и не надо ничего провязывать. то есть загрузчик вообще строк 200. по кодовым секциям модулей аналогично.

а компилятор соответственно такой код и генерит. ко внешним адресам - через таблицу, а внутри самого модуля адресация относительная.

Исходная версия alysnix, :

есть кстати прикольные архитектуры, где сборка и все эти адреса - ненужны в принципе.

там есть в памяти таблица адресов расположения модулей в памяти, а обращение к адресам другого модуля делается аппаратно, через таблицу.

команда выглядит так(псевдокод):

mov [10].100, 0

то есть - взять 10 ый адрес из таблицы(то есть модуль с номером 10), сместиться на 100, и положить ноль. тогда при загрузке надо просто проставить туда адреса расположения модуля в памяти, и не надо ничего провязывать. то есть загрузчик вообще строк 200.

а компилятор соответственно такой код и генерит. внутри самого модуля адресация относительная.