See How the Magic Happens Built with ARM A64 Assembly LanguageThe ARM edition of Introduction to Computer Organization will show you how high-level code connects to computer hardware through ARM 64-bit assembly language. You’ll learn ARM assembly language from the ground up, and all you’ll need is some basic experience with programming. As you grow to understand ARM’s 64-bit design (from first principles), you’ll develop the skills to write more efficient, optimized code.
Learn the fundamentals:Data storage formats and computer encodingBinary and hexadecimal arithmetic operationsBoolean algebra and logic gatesDigital circuit design Explore how software and hardware interact:Memory hierarchy, from CPU registers to the cloudCPU architecture and instruction executionARM 64-bit assembly language programming Get hands-on experience programming the GPIO on Raspberry Pi 3, 4, and 5 in assembly. Use GNU programming tools to examine code generated from C and C++ by the compiler, write assembly programs from scratch, and use the debugger to visualize execution, inspect registers, and understand machine-level operations. Each chapter includes practical “Your Turn” exercises to reinforce key concepts and build real-world programming skills.
Whether you’re optimizing code performance, developing embedded systems, or simply curious about how computers execute your programs, this guide provides deep insight into how software and hardware interact to bring programs to life.
AI Reading Assistant
Whole-book reading guide from stratified index samples; jump to passages in the text
Tip the Site
Support this siteYour recognition and a small knowledge-service contribution help keep this technical work open source.Scan the WeChat Pay or Alipay code below. Logged-in and guest visitors can both tip.
WeChat Pay
Alipay
Open WeChat or Alipay and scan. No login required.
AI guide
【One-Line Pitch】
A patient, hands-on bridge from high-level code to real hardware: learn ARM A64 assembly on a Raspberry Pi while tracing how C/C++ actually becomes machine instructions. Best for programmers who know a little code and want to stop treating the CPU as a black box.
【Book Arc】
- **Opening (~0%–10%)**: Frames the whole project — the three subsystems (CPU, memory, I/O) and their buses — and explains why the book uses C plus ARM A64 assembly on a Raspberry Pi rather than Python. Solves the "where do I even start" problem and sets up the toolchain.
- **Early (~10%–35%)**: Builds the mathematical and logical vocabulary: binary/hex storage formats, unsigned and two's-complement arithmetic, Boolean algebra and minimization, then logic gates and combinational circuits. This is the language you need before hardware makes sense.
- **Middle (~35%–60%)**: Moves into software execution — how a program is created, compiled, linked, and fetched/executed — and introduces the memory hierarchy and CPU architecture. Connects the abstract math to actual instruction execution.
- **Late (~60%–85%)**: The core assembly-language work: control-flow constructs, subfunctions and stack frames, recursion, bitwise/multiply/divide instructions, arrays and records, and a C++ object-oriented chapter. This is where high-level constructs get demystified line by line.
- **Ending (~85%–100%)**: Applies everything to fractional numbers (fixed- and floating-point, IEEE 754), then I/O — memory-mapped devices, GPIO programming on Raspberry Pi 3/4/5, polled I/O — and closes with exceptions and interrupts on AArch64.
【Key Takeaways】
- **The book is organized in three deliberate layers** (Early): mathematics/logic, then hardware, then software — each layer supplies the vocabulary for the next, so skipping ahead costs you the conceptual scaffolding.
- **Assembly is taught as a lens on C/C++**, not as an end in itself (Middle): you compile C, inspect the generated assembly, then write the same constructs by hand, which makes compiler output readable rather than mysterious.
- **Two's complement and fixed-width integers have real limits** (Early): the circular nature of integer codes explains overflow and sign behavior that high-level languages hide.
- **Boolean algebra pays off in hardware** (Early): minimization via algebraic rules and Karnaugh maps is presented as the practical path from truth tables to gate-level circuits.
- **Subfunctions and stack frames are the heart of the calling convention** (Late): argument passing, scope, static locals, and recursion are all explained at the assembly level, which is where most beginners get lost.
- **Floating-point is approximate by design** (Ending): rounding error, absorption, cancellation, and non-associativity are treated as consequences of IEEE 754 representation, not as bugs.
- **I/O is where software meets physical timing** (Ending): memory-mapped I/O and GPIO on the Raspberry Pi show why device access must be explicitly programmed, with polled I/O sketched and interrupt/DMA approaches noted.
- **"Your Turn" exercises are the actual learning mechanism** (throughout): solutions are provided online, so the exercises function as practice rather than assessment.
【Reading Tips】
- Deep-read the early math/logic chapters if your binary and Boolean skills are rusty — later assembly explanations assume them; skim only if you're already fluent.
- Keep a Raspberry Pi (64-bit Raspberry Pi OS) and the GNU toolchain beside you; the book is written to be typed along with, and the debugger is used to visualize registers and memory.
- Treat the C/C++ chapters as translation exercises: compile a small program, then read the assembly the compiler produced before writing your own version.
- Don't panic about C++ — the book states its C/C++ usage is simple and explained as it goes, so prior C++ experience is not required.
- Use the chapter organization notes to jump between the three parts if you're revising, but read Chapter 1 and the toolchain setup first.
【Coverage Limits】
This guide is synthesized from stratified excerpts and the book's front matter and chapter listing; the excerpts do not cover the detailed content of individual chapters, so specific code examples, instruction syntax, and exercise solutions are not summarized here.
ook The Programming in the Book Why Read This Book? Chapter Organization Efficient Use of This Book 1 SETTING THE STAGE Computer Subsystems Creating and Exec...
GNU programming environment includes the C standard library. In keeping with the “real-world” criterion of this book, we’ll use the functions in that library...
cally separate paths for each of the three types of signals. For example, if you have ever installed a graphics card in a computer, it probably used the Peri...
ersion of the Vi editor, which was created for Unix in 1976. It provides a command line user interface that is mode-oriented. Text is manipulated through key...
V (5), so it is subtracted from the value represented by V. There is no symbol for zero in the Roman numeral system because the symbol 0 isn’t needed in coun...
f memory, as in Table 2-3 (the contents here are arbitrary). Table 2-3: Example Contents of the First 16 Bytes of Memory Address Content Address Content 0x00...
Support this siteYour recognition and a small knowledge-service contribution help keep this technical work open source.
Scan the WeChat Pay or Alipay code below. Logged-in and guest visitors can both tip.
WeChat PayAlipay
Open WeChat or Alipay and scan. No login required.
Add Tag
Enter tag name (max 50 characters)
Share E-Book
Introduction to Computer Organisation ARM Edition (Robert G. Plantz)(Z-Library)
Scan QR code with your phone to access
Copy the link or scan the QR code to access this e-book on your phone
Share E-Book via Email
Please enter email address
Donation Statistics
¥.00
Total Donations
0
Donation Count
Introduction to Computer Organisation ARM Edition (Robert G. Plantz)(Z-Library)
Find Your Favorite Books
Only registered users can comment after logging in. Comments need to be reviewed by administrators before being displayed
Loading comments...
Reply to Comment
Edit Comment