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