Я писал код «свободного места» для реального режима i386 и наткнулся на некоторые странные ошибки, в то время как PXE netbooting мой код:Почему опция `--oformat двоичная 'для компоновщика gnu помещает сегмент` .data' в 0x0200000
PXE-E79: NBP is too big to fit in free base memory
PXE-M0F: Exiting Intel Boot Agent.
после долгого возился с моими бинарниками я изолировав его как имеющий любых данные или код после сегмента маркеров
.data
.
После шестнадцатеричной проверки я обнаружил, что ld полностью переместил инструкции до 0x0200000
из всех мест.
Я в настоящее время генерации мой плоский ящик с:
ld --oformat binary
Вопросы:
Почему
ld
это сделать?Это конкретный параметр
oformat
?
Спасибо, я оставлю вопрос открытым, если кто-нибудь знает, почему именно он это делает. Спасибо за ваш ответ. – Hawken
Что вы подразумеваете под 2 страницами MiB? – Hawken