Итак, я обнаружил, что программы на C (++) на самом деле не компилируются в простой «бинарный» (возможно, я ошибся здесь, в этом случае, извините: D), но для ряда вещей (таблица символов, вещи, связанные с ОС, ...) но ...
Ассемблер "компилируется" в чистый двоичный файл? Это означает, что нет ничего лишнего, кроме ресурсов, таких как предопределенные строки и т. Д.
Если C компилируется в нечто иное, чем простой двоичный файл, как этот маленький загрузчик ассемблера может просто скопировать инструкции с жесткого диска в память и выполнить их? Я имею в виду, если ядро ОС, которое, вероятно, написано на C, компилируется в нечто отличное от простого бинарного файла - как загрузчик справится с этим?
edit: я знаю, что ассемблер не "компилируется", потому что в нем есть только набор инструкций вашей машины - я не нашел хорошего слова для того, что ассемблер "собирает". Если он у вас есть, оставьте его здесь как комментарий, и я его заменю.