Все тексты о том, как создать компилятор, останавливаются после объяснения лексеров и парсеров. Они не объясняют, как создать машинный код. Я хочу понять сквозной процесс.
В настоящее время я понимаю, что форматы файлов exe для Windows называются Portable Executable. Я читал о его заголовках, и я еще не нашел ресурс, который объясняет это легко.
Моя следующая проблема: я не вижу никакого ресурса, который объясняет, как машинный код хранится в файле. Это как 32-разрядные инструкции с фиксированной длиной, хранящиеся один за другим в разделе .text
?
Есть ли место, которое по крайней мере объясняет, как создать exe файл, который ничего не делает (у него есть инструкция No Op). Следующим моим шагом будет привязка к файлам DLL для печати на консоль.