ЗАГРУЗЧИК.
Итак, компоновщик построил ЗМ и записал его в файл M.EXE. Чтобы выполнить его, нужно дать приказ ОС, состоящий из названия этого файла:
M.EXE или M
Этот приказ ОС трактует как внешний, т.е. ищет на диске файл указанным именем (расширение EXE подразумевается по умолчанию), считывает его в ОП и передает на него управление. Но поскольку, как мы видим, в этом файле находится машинная программа, которая не до конца оттранслирована, то взять и просто считать эту программу в ОП и передать ей управление нельзя. Эту программу еще надо довести "до кондиции". Это замечание справедливо для всех программ, хранящихся в файлах с расширением EXE. Поэтому, если в приказе операционной системе указан файл с расширением EXE, то она вызывает специальную программу, называемую загрузчиком, и передает ей управление, а уже этот загрузчик считывает нашу программу из внешней памяти, доводит ее трансляцию до конца и запускает ее на счет.
Основные задачи загрузчика.
Загрузчик решает следующие основные задачи:
1. Загрузка программы. Загрузчик должен найти место в оперативной памяти для программы и переписать ее сюда с диска.
2. Настройка программы на место (привязка к месту). Загрузчик обязан закончить трансляцию программы в тех ее точках, что зависят от местоположения программы в памяти.
3. Запуск программы на счет. Загрузчик должен записать в определенные регистры соответствующие значения и передать управление на программу.
Рассмотрим, как загрузчик решает эти задачи.