This unique and classroom-proven text provides a hands-on introduction to the design of computer systems. It depicts, step by step, the design and programming of a simple but complete hypothetical computer, followed by detailed architectural features of existing computer systems as enhancements to the structure of the simple computer.