Цитата:
Немного отвлекусь, чтобы было понятнее. Вы, лично, видели на Спектруме линковщик? Я видел... В IS-DOS... Более ни где :)
CP/M -- множество, большинство средств программирования.
Цитата:
А знаете почему их нет, как таковых? Потому, как ВСЕГДА используется модель памяти "FLAT". Для которой, использование линковщика - лишняя трата ресурсов машины.
В линухе тоже всегда используется плоская модель памяти.
Цитата:
Но вернемся к менеджеру. Динамическое выделение памяти, в
частности для загрузки библа, должно выглядеть примерно так:
1) прог (менеджер динамической компоновки) обращается к менеджеру памяти: "Браток, нужно бы памяти кусочек в 123 байта!"
2) менеджер памяти должен определиться, а есть ли столько ресурсов??
3а) если ресурсов нету, то ответ будет примерно: "Иди-ка ты на... маршрут по-умолчанию"...
3б) если 123 байта имеется, он должен их "откусить" от свободного пространства, выделить этому куску уникальный ID, прописать в своих табличках, что для этого ID зарезервирован кусочек в 123 байта, в такой-то банке, по такому-то адресу, и выдать ID на выходе...
Потом, линковщик, чтобы обратиться к этому участку, обязан обратиться к менеджеру оперативки, типа "дай-ка я с этим кусочком поработаю...".
А таких вызовов, при линковке будет... ну, достаточно много... :)
Я может быть и усложняю... Но ТАК ПРАВИЛЬНО! в общем случае...
Точно. По-моему у тебя каша в голове. Динамическа компоновка
Цитата:
Вызов в любом случае должен быть прямым, т.е. косвенным, когда запуск происходит по, допустим, содержимому HL... Но, перед тем, как запустить процедуру, нужно выставить конфигурацию машины, банки там, и прочее...
Он не должен, а может быть и прямым, и косвенным, я уже писал...