I would suggest looking for a Pascal, C or SmallC compiler source for MS-DOS (16-bit). Particularly if they limit themselves to 16-bit flat real mode (<= 64KB memory mode), they should be fairly simple.
Support for segmented real mode adds a great deal of complexity that would be best to avoid, and it is irrelevant for 32-bit flat protected mode program (non-OS 32-bit programming).
For a non-x86 processor, the example program for Jack Crenshaw's series of articles "Let's Build a Compiler" which is a Pascal-like syntax compiler targeting the Motorola MC68000 16/32-bit processor. There is also Marcel Hendrix's written in Forth on win32 version of the series.
There is also the TCC - Tiny C Compiler, which support PE-i386 output (i.e. Win32).
Though if you couldn't bother to read the entire SO link that Firas Assaad gave in the comments, which contains all but one of these links, I believe you're going to find the source code of a compiler terribly long.