Поскольку я новичок в binutils, gcc и других, у меня есть несколько общих вопросов, ответы на которые я не нашел в руководствах.
Я использую C и сборку (синтаксис nasm), и мне нужны необработанные двоичные файлы на выходе. Прежде всего, я компилирую свой код в объектный файл с параметрами:
cc -nostartfiles -nostdlib -c -ffreestanding <input file(s)> ;cc or gcc no matter
Затем я связываю все файлы с помощью простого скрипта, который только ставит сегменты в нужном порядке.
ld -T <script> -o <o.file> <in.file(s)> ;nothing special here
И чтобы получить необработанный двоичный файл, я использую objcopy
objcopy -O binary <o.file> <in.file> ;can't be simplier
В общем, мне нужен бинарный файл только с сегментами .text и .data в нем и 32-битным кодом.
1.Могу ли я таким образом получить то, что хочу?
2.Есть ли другие способы сделать это? (неважно проще или сложнее)
Спасибо за помощь.
У меня нет проблем с компиляцией Asm-кода, почти все проблемы с C-кодом.