Задать вопрос
@nnGot583
c#, iOS дизассемблирование

Как скомпоновать код ассемблере с кодом на С для ядра?

Здравствуйте, я делаю ядро для QEMU x86 эмулятора на macOS и мне нужно из ассемблера (nasm) вызывать иногда функции из кода на С (clang).

Но проблема в том что я загружаю в QEMU чистый скомпилированный код без формата и следовательно не могу удобно компоновать файлы

Может надо сделать их объектными elf файлами, затем скомпоновать и зачистить формат?
  • Вопрос задан
  • 92 просмотра
Подписаться 1 Средний 3 комментария
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Может надо сделать их объектными elf файлами, затем скомпоновать и зачистить формат?

Использование стандартных форматов и инструументов для работы с ними -- это традиционный способ облегчить себе жизнь. Стандартная связка при использовании gnu-тулчейна -- использовать gcc для компиляции исходников на С (*.c) и ассемблере (*.S), gcc или ld для линковки, objcopy для преобразования ELF-файла с выхода линковщика в бинарник.
Кроме того, в QEMU можно прямо ELF загружать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы