Как создать 16-битные необработанные двоичные файлы с использованием DMC, не включая библиотеки ОС - PullRequest
0 голосов
/ 09 декабря 2018

Недавно я пытался начать писать ядро ​​на C для моей 16-битной ОС.У меня есть два файла: kernel_entry.asm, который называет «main», который объявлен extern и чье определение присутствует в kernel.c.После компиляции их отдельно в формате elf я получаю kernel_entry.o и kernel.o Теперь я пытаюсь связать их вместе и создать необработанный двоичный файл, который можно напрямую загрузить в память.Я знаю, что с помощью ld мы можем сделать это легко:

$ld -o kernel.bin -Ttext 0x100 kernel_entry.o kernel.o --oformat binary

Но я работаю над окнами и использую компилятор Digital Mars вместе с компоновщиком OPTLINK, который поставляется вместе с ним.Я пробовал, но основные проблемы:

  1. Это включает в себя файлы операционной системы, которые мне не нужны (даже после добавления переключателя NL)
  2. Это генерирует файл .COM ине плоский двоичный файл

Я был бы очень благодарен вам, если бы вы могли помочь мне с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...