Nasm экспортирует загрузчик сборки как объект для связи с ядром - PullRequest
0 голосов
/ 08 мая 2020

Итак, у меня есть загрузчик (boot.asm) и ядро ​​(kernel. cpp)

У меня есть «extern kernel_main» в коде сборки. Когда я запускаю nasm.exe -f bin boot.asm -o boot.obj, он скажет: « двоичный выходной формат не поддерживает внешние ссылки «Но когда я запускаю nasm.exe -f win64 boot.asm -o boot.obj, он будет работать, но после запуска компоновщика ~\tdm-gcc64\C++.exe -T linker.ld -o Boot.img -ffreestanding -nostdlib boot.obj kernel.obj -lgcc он будет иметь мусор, например:« Эта программа не может быть запущена в режиме DOS"Я просмотрел весь inte rnet и не могу найти, как экспортировать из nasm, чтобы он хорошо работал с g cc. Любая помощь будет оценена по достоинству. Я использую 64-битный windows 10 home с nasm, g cc и qemu Редактировать: мне также нужно знать, как установить начало координат на 0x7c00, поскольку org 0x7c00 не работает при компиляции как объект

...