Цитата Сообщение от captain cobalt
Это полный отстой и mustdie.
Только по одной этой причине такой способ - "ф топку".
А ещё при перекомпиляции библиотеки понадобиться перекомпилировать все зависимые программы.
make world
Тьфу.
Ты это, текст не по-диагонали читай, да? Я же ясно сказал --
таблиц несколько и адрес у каждой свой, произвольный.
Он настраивается перед пуском.

Лишь ПЗУ это не касается. ПЗУ всегда по одному адресу. И таблицу ему можно сделать по фиксированному адресу.
Можно. Вопрос какую: собственную таблицу ПЗУшных программ -- да. Таблицу, используемыю загружаемыми программами -- тоже можно, но тогда возникает описываемая тобой проблема, именно поэтому так делать и нежелательно, и можно не делать, а пользоваться своей таблицей размещённой в ОЗУ. Которая по сути
дела является полной копией ПЗУшной с той лишь разницей,
что её адрес (той которая в ОЗУ) -- известен. НО ОН НЕ ФИКСИРОВАННЫЙ. Верней, не обязательно фиксированный,
если программа релоцируемая. Что тут непонятного?

Ну конечно.
Каждый раз, прежде чем делать CALL нужно вычислять адрес, по которому делать этот CALL.
Чушь. Для программ с абсолютным адресом загрузки просто
LDIR делается или иным способом копируется таблица из ПЗУ.
Адрес которой (ПЗУшной) тоже может быть не фиксированный.
Для релоцируемых программ, при их настройке на адрес запуска,
адрес собственной таблицы настраивается АВТОМАГИЧЕСКИ!
А адреса в этой таблице опять же копируются из ПЗУ.

Каковы накладные расходы на время выполнения этих вычислений и на память для хранения их кода?
Времени -- 10 тактов. Памяти 3*N, где Ni -- число "внешних" по отношению к загруженнной программе функций.

Не превышают ли они расходов на единовременное пропатчивание?
За бесконечный период времени -- превышают (oo*10 == oo).