Ваш компьютер имеет 0x10000, поэтому вы должны связать его с 0x10000, потому что ваш код выполняет абсолютную адресацию.
Загрузчик не выполняет связывание или разрешение символов, он просто копирует некоторый двоичный двоичный объект0x10000, а затем настройте ПК на 0x10000.Таким образом, ваш код должен быть готов к запуску в 0x10000, поэтому вам нужно указать это в компоновщике.
вызов функции обычно выполняется с использованием относительной адресации ПК, но это не обязательно в случае, когда вы хотитеиметь доступ к данным.Предположим, у вас есть таблица T. Если вы связаны 0x0, а ваша таблица 0x1234.У вас может быть какая-то инструкция, которая ссылается на этот адрес.
Теперь вы переместите свой код на 0x10000.Ваш адрес таблицы теперь 0x11234, но ваш код не перемещен, поэтому он пытается загрузить данные в 0x1234, где ничего нет, или хрень.
Теперь, когда вы связываете свой код со смещениемнабор команд, который использовался для доступа к T, изменяется соответствующим образом.Вот и все, для чего нужны ссылки, для преобразования символа в адреса!