Suggerirei di cercare una sorgente di compilazione Pascal, C o SmallC per MS-DOS (16-bit). Soprattutto se si limitano alla modalità reale piatta a 16 bit (< = 64 KB di memoria), dovrebbero essere abbastanza semplici.
Il supporto per la modalità reale segmentata aggiunge una grande quantità di complessità che sarebbe meglio evitare ed è irrilevante per il programma in modalità a schermo piatto a 32 bit (programmazione a 32 bit non OS).
Per un processore non x86, il programma di esempio per la serie di articoli di Jack Crenshaw "Let's Build a Compiler", che è un compilatore di sintassi simile a Pascal che utilizza il processore MC68000 a 16/32 bit Motorola. C'è anche Marcel Hendrix scritto in Forth su win32 version of the series.
C'è anche il TCC - Tiny C Compiler, che supporta l'uscita PE-i386 (cioè Win32).
Anche se non potevi preoccuparti di leggere l'intero link SO che Firas Assaad ha dato nei commenti, che contiene tutti tranne uno di questi link, credo che troverai il codice sorgente di un compilatore terribilmente lungo .
Dai un'occhiata a questa domanda: http://stackoverflow.com/ questions/1669/learning-to-write-a-compiler –
Questa è una lista di libri. – saf
Attualmente sto sviluppando un compilatore per la mia lingua per la piattaforma Win32. Vi consiglio di leggere sul file header PE e di prendere una copia del manuale di riferimento Intel x86 per l'implementazione di opcode. Quindi è necessario creare un livello di "astrazione" dell'esecuzione e utilizzare questo modello per creare previsioni dello stato del processore per produrre un assembly valido. – Pindatjuh