История изменений
Исправление alysnix, (текущая версия) :
есть кстати прикольные архитектуры, где сборка и все эти адреса - ненужны в принципе.
там есть в памяти таблица адресов расположения модулей в памяти, а обращение к адресам другого модуля делается аппаратно, через таблицу.
команда выглядит так(псевдокод):
mov [10].100, 0
то есть - взять 10 ый адрес из таблицы(то есть стартовый адрес данных модуля с номером 10), сместиться на 100, и положить ноль. тогда при загрузке надо просто проставить туда адреса расположения данных модуля в памяти, и не надо ничего провязывать. то есть загрузчик вообще строк 200. по кодовым секциям модулей аналогично.
а компилятор соответственно такой код и генерит. ко внешним адресам - через таблицу, а внутри самого модуля адресация относительная.
Исходная версия alysnix, :
есть кстати прикольные архитектуры, где сборка и все эти адреса - ненужны в принципе.
там есть в памяти таблица адресов расположения модулей в памяти, а обращение к адресам другого модуля делается аппаратно, через таблицу.
команда выглядит так(псевдокод):
mov [10].100, 0
то есть - взять 10 ый адрес из таблицы(то есть модуль с номером 10), сместиться на 100, и положить ноль. тогда при загрузке надо просто проставить туда адреса расположения модуля в памяти, и не надо ничего провязывать. то есть загрузчик вообще строк 200.
а компилятор соответственно такой код и генерит. внутри самого модуля адресация относительная.