This article describes an assembly language simulator specifically designed as a pedagogical tool. This simulator has the richness of a stack, procedure calls, and indirect addressing, but prods students into good programming habits without many of the inherent, frustrating aspects of assembly language programming. This is accomplished by providing a syntax checking editor, a powerful debugger, a limited instruction set, and strict attention to eradicating the typical mistakes that assembly language, and high-level language programmers make.