How do you program a compiler/assembler? I know a lot of assembly language, but somehow it hasn't clicked on how to make my own assembler...