Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Cover Page
Title Page
Copyright Page
About the Author
About the Technical Reviewer
BRIEF CONTENTS
CONTENTS IN DETAIL
ACKNOWLEDGMENTS
1 WHAT YOU NEED TO KNOW TO WRITE GREAT CODE
1.1 The Write Great Code Series
1.2 What This Book Covers
1.3 Assumptions This Book Makes
1.4 Characteristics of Great Code
1.5 The Environment for This Book
1.6 Additional Tips
1.7 For More Information
2 NUMERIC REPRESENTATION
2.1 What Is a Number?
2.2 Numbering Systems
2.3 Numeric/String Conversions
2.4 Internal Numeric Representation
2.5 Signed and Unsigned Numbers
2.6 Useful Properties of Binary Numbers
2.7 Sign Extension, Zero Extension, and Contraction
2.8 Saturation
2.9 Binary-Coded Decimal Representation
2.10 Fixed-Point Representation
2.11 Scaled Numeric Formats
2.12 Rational Representation
2.13 For More Information
3 BINARY ARITHMETIC AND BIT OPERATIONS
3.1 Arithmetic Operations on Binary and Hexadecimal Numbers
3.2 Logical Operations on Bits
3.3 Logical Operations on Binary Numbers and Bit Strings
3.4 Useful Bit Operations
3.5 Shifts and Rotates
3.6 Bit Fields and Packed Data
3.7 Packing and Unpacking Data
3.8 For More Information
4 FLOATING-POINT REPRESENTATION
4.1 Introduction to Floating-Point Arithmetic
4.2 IEEE Floating-Point Formats
4.3 Normalization and Denormalized Values
4.4 Rounding
4.5 Special Floating-Point Values
4.6 Floating-Point Exceptions
4.7 Floating-Point Operations
4.8 For More Information
5 CHARACTER REPRESENTATION
5.1 Character Data
5.2 Character Strings
5.3 Character Set Data Types
5.4 Designing Your Own Character Set
5.5 For More Information
6 MEMORY ORGANIZATION AND ACCESS
6.1 The Basic System Components
6.2 Physical Organization of Memory
6.3 Big-Endian vs. Little-Endian Organization
6.4 The System Clock
6.5 CPU Memory Access
6.6 For More Information
7 COMPOSITE DATA TYPES AND MEMORY OBJECTS
7.1 Pointer Types
7.2 Arrays
7.3 Records/Structures
7.4 Discriminant Unions
7.5 Classes
7.6 Classes in C++
7.7 Classes in Java
7.8 Classes in Swift
7.9 Protocols and Interfaces
7.10 Generics and Templates
7.11 For More Information
8 BOOLEAN LOGIC AND DIGITAL DESIGN
8.1 Boolean Algebra
8.2 Boolean Functions and Truth Tables
8.3 Function Numbers
8.4 Algebraic Manipulation of Boolean Expressions
8.5 Canonical Forms
8.6 Simplification of Boolean Functions
8.7 What Does This Have to Do with Computers, Anyway?
8.8 For More Information
9 CPU ARCHITECTURE
9.1 Basic CPU Design
9.2 Decoding and Executing Instructions: Random Logic vs. Microcode
9.3 Executing Instructions, Step by Step
9.4 RISC vs. CISC: Improving Performance by Executing More, Faster, Instructions
9.5 Parallelism: The Key to Faster Processing
9.6 For More Information
10 INSTRUCTION SET ARCHITECTURE
10.1 The Importance of Instruction Set Design
10.2 Basic Instruction Design Goals
10.3 The Y86 Hypothetical Processor
10.4 Encoding 80x86 Instructions
10.5 Implications of Instruction Set Design to the Programmer
10.6 For More Information
11 MEMORY ARCHITECTURE AND ORGANIZATION
11.1 The Memory Hierarchy
11.2 How the Memory Hierarchy Operates
11.3 Relative Performance of Memory Subsystems
11.4 Cache Architecture
11.5 NUMA and Peripheral Devices
11.6 Virtual Memory, Memory Protection, and Paging
11.7 Writing Software That Is Cognizant of the Memory Hierarchy
11.8 Runtime Memory Organization
11.9 For More Information
12 INPUT AND OUTPUT
12.1 Connecting a CPU to the Outside World
12.2 Other Ways to Connect Ports to the System
12.3 I/O Mechanisms
12.4 I/O Speed Hierarchy
12.5 System Buses and Data Transfer Rates
12.6 Buffering
12.7 Handshaking
12.8 Timeouts on an I/O Port
12.9 Interrupts and Polled I/O
12.10 Protected-Mode Operation and Device Drivers
12.11 For More Information
13 COMPUTER PERIPHERAL BUSES
13.1 The Small Computer System Interface
13.2 The IDE/ATA Interface
13.3 The Universal Serial Bus
13.4 For More Information
14 MASS STORAGE DEVICES AND FILESYSTEMS
14.1 Disk Drives
14.2 Tape Drives
14.3 Flash Storage
14.4 RAM Disks
14.5 Solid-State Drives
14.6 Hybrid Drives
14.7 Filesystems on Mass Storage Devices
14.8 Writing Software That Manipulates Data on a Mass Storage Device
14.9 For More Information
15 MISCELLANEOUS INPUT AND OUTPUT DEVICES
15.1 Exploring Specific PC Peripheral Devices
15.2 Mice, Trackpads, and Other Pointing Devices
15.3 Joysticks and Game Controllers
15.4 Sound Cards
15.5 For More Information
AFTERWORD: THINKING LOW-LEVEL, WRITING HIGH-LEVEL
A ASCII CHARACTER SET
GLOSSARY
INDEX
← Prev
Back
Next →
← Prev
Back
Next →