The book is freely available here: http://people.inf.ethz.ch/wirth/CompilerConstruction/index.h...
For a more comprehensive example, you can have a look at my compiler for the full Oberon language targeting the JVM. It is based on the principles of that book: https://github.com/lboasso/oberonc
I'd keep an eye on http://www.craftinginterpreters.com/contents.html, although it hasn't gotten to compilation yet (I think).
At this point it's not well-documented, but the layers are numbered in order: l00, l01, l02... Each builds on top of the previous one.
EDIT: I just added a mini evaluator for debugging purposes and so people can see what the language is like.
[1]: The book is free as well: https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html...
SICP being freely available in both book form, and the lectures [0] makes it one of the best resources out there.
(I just never found it's section on compilers that helpful. Again, probably learning styles.)
[0] https://www.youtube.com/playlist?list=PLB63C06FAF154F047
I enjoyed this read because it was a very user-friendly overview. After reading, I knew exactly what major pieces did what and therefore what to search for next on my own terms.
I also recommended the same Wirth book as lboasso, and a couple other books, down at the bottom of the page.
Crenshaw's tutorial fits this perfectly: https://compilers.iecc.com/crenshaw/
x86 version here: http://www.pp4s.co.uk/main/tu-trans-comp-jc-intro.html