This book uses a step-by-step approach to teach the fundamentals of assembly language programming and interfacing of the 8051 microcontroller. It uses many examples to clarify concepts. Simple, concise examples are utilized to show what action each instruction performs, then a sample is provided to show its application. This text provides a comprehensive understanding of the internal organization of the 8051 registers and resources in a way that sheds the student's fear of assembly language. Whether students become designers of stand-alone systems or complex embedded systems, they will find this text a useful resource.