1 A Tour of Computer Systems 1.1 Information is Bits + Context 1.2 Programs Are Translated by Other Programs into Different Forms 1.3 It Pays to Understand How Compilation Systems Work 1.4 Processors Read and Interpret Instructions Stored in Memory 1.5 Caches Matter 1.6 Storage Devices Form a Hierarchy 1.7 The Operating System Manages the Hardware 1.8 Systems CommunicateWith Other Systems Using Networks 1.9 The Next Step 1.10 Summary Bibliographics Notes Part I Program Structure and Execution 2 Representing and Manipulating Information 2.1 Information Storage 2.2 Integer Representations 2.3 Integer Arithmetic 2.4 Floating Point 2.5 Summary Bibliographic Notes Homework Problems Solution to Practice Problems 3 Machine-Level Representation of Programs 3.1 A Historical Perspective 3.2 Program Encodings 3.3 Data Formats 3.4 Accessing Information 3.5 Arithmetic and Logical Operations 3.6 Control 3.7 Procedures 3.8 Array Allocation and Access 3.9 Heterogeneous Data Structures 3.10 Alignment 3.11 Putting it Together: Understanding Pointers 3.12 Life in the RealWorld: Using the GDB Debugger 3.13 Out-of-Bounds Memory References and Buffer Over 3.14 *Floating-Point Code 3.15 *Embedding Assembly Code in C Programs 3.16 Summary Bibliographic Notes Homework Problems Solutions to Practice Problems 4 Processor Architecture 5 Optimizing Program Performance 6 The Memory Hierarchy Part Ⅱ Running Programs on a System 7 Linking 8 Exceptional Control Flow 9 Measuring Program Execution Time 10 Virtual Memory Part Ⅲ Interaction and Communication Between Programs 11 System-Level I/O 12 Network Programming 13 Concurrent Programming A HCL Descriptions of Processor Control Logic B Error Handling Bibliography Index