This hands-on tutorial is a broad examination of how a modern computer works. Classroom tested for over a decade, it gives readers a firm understanding of how computers do what they do, covering essentials like data storage, logic gates and transistors, data types, the CPU, assembly, and machine code.
Introduction to Computer Organization gives programmers a practical understanding of what happens in a computer when you execute your code. Working from the ground up, the book starts with fundamental concepts like memory organization, digital circuit design, and computer arithmetic. It then uses C/C++ to explore how familiar high-level coding concepts—like control flow, input/output, and functions—are implemented in assembly language. The goal isn’t to make you an assembly language programmer, but to help you understand what happens behind the scenes when you run your programs.
Classroom-tested for over a decade, this book will also demystify topics like:
How data is encoded in memory
How the operating system manages hardware resources with exceptions and interrupts
How Boolean algebra is used to implement the circuits that process digital information
How a CPU is structured, and how it uses buses to execute a program stored in main memory
How recursion is implemented in assembly, and how it can be used to solve repetitive problems
How program code gets transformed into machine code the computer understands
You may never have to write x86-64 assembly language or design hardware yourself, but knowing how the hardware and software works will make you a better, more confident programmer.