CPU 架构概览
了解 x86、x64 和 ARM 等常见 CPU 架构,重点学习它们的寄存器组和指令执行方式。
CPU 架构概览 是 CoddyKit 上的免费 Reverse Engineering & Binary Analysis Basics 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Reverse Engineering & Binary Analysis Basics 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Reverse Engineering & Binary Analysis Basics 课程共包含 4 节课。
本课时的部分内容尚未翻译,以英文显示。
Welcome to CPU Architectures!
Welcome to the fascinating world of CPU architectures! Understanding how different CPUs are designed is crucial for anyone diving into reverse engineering.
Think of it as learning the 'native language' a computer speaks. Different CPUs speak different languages, and knowing them helps us understand their instructions.
What is a CPU Architecture?
A CPU architecture defines how a Central Processing Unit (CPU) is built and how it processes instructions. It includes:
- The instruction set (the commands the CPU understands)
- The number and types of registers (internal storage)
- Memory management rules
These elements dictate how software interacts with the hardware, which is key for analysis.
Key Components: CPU, Registers, Memory
At the heart of every computer is the CPU, which executes instructions. But it doesn't work alone!
- Registers: Tiny, super-fast storage areas directly inside the CPU, used for immediate data operations.
- Memory (RAM): Larger, slower storage where programs and data reside when not in registers.
The CPU constantly moves data between registers and memory to perform tasks.
x86: The Desktop Workhorse
The x86 architecture, pioneered by Intel, has dominated personal computers for decades. It's known for its:
- CISC (Complex Instruction Set Computing) design, meaning instructions can do a lot in one go.
- A variable-length instruction set.
- A relatively small number of general-purpose registers compared to some other architectures.
Initially 16-bit, it evolved into 32-bit (often just called x86) and is still widely supported.
x64: Expanding to 64-bit
x64 (also known as AMD64 or Intel 64) is the 64-bit extension of the x86 architecture. It brought significant improvements:
- Ability to address much more memory (beyond 4GB).
- More general-purpose registers (doubled from 8 to 16).
- Improved performance for many applications.
Most modern desktop and server computers use x64 processors, maintaining backward compatibility with x86 software.
ARM: Mobile's Champion
The ARM architecture (Advanced RISC Machine) is vastly popular in mobile devices, embedded systems, and increasingly in servers and desktops (e.g., Apple M-series chips).
Key characteristics:
- RISC (Reduced Instruction Set Computing) design, using simpler, fixed-length instructions.
- Optimized for power efficiency and performance per watt.
- Has a larger and more orthogonal register set than x86.
ARM's design makes it ideal for battery-powered devices and specific embedded applications.
Registers: The CPU's Scratchpad
Regardless of architecture, registers are the CPU's fastest storage. They're like tiny scratchpads the CPU uses to hold data it's actively working on.
There are different kinds of registers:
- General-Purpose Registers (GPRs): Used for storing arbitrary data, calculation results, or memory addresses.
- Special-Purpose Registers: Have specific roles, like pointing to the next instruction or managing the stack.
Understanding registers is vital for tracing program execution.
Common x86/x64 GPRs
In x86/x64, some common General-Purpose Registers (GPRs) include:
- RAX/EAX: Often used for return values from functions.
- RBX/EBX: A general-purpose register for data.
- RCX/ECX: A general-purpose register, often used as a counter.
- RDX/EDX: A general-purpose register, often used for data.
The 'R' prefix (e.g., RAX) denotes the 64-bit version, while 'E' (e.g., EAX) denotes the 32-bit version.
x86/x64 Special Registers
Beyond GPRs, x86/x64 has crucial special-purpose registers that manage program flow:
- RSP/ESP (Stack Pointer): Always points to the top of the stack, crucial for function calls.
- RBP/EBP (Base Pointer): Often used to reference local variables and function arguments on the stack.
- RIP/EIP (Instruction Pointer): Points to the memory address of the next instruction to be executed. This register directly controls what the CPU does next!
ARM's Register Philosophy
ARM has a more uniform set of 16 registers (R0-R15) available in user mode. Some have special roles by convention or hardware:
- R0-R12: General-purpose registers.
- R13 (SP): Stack Pointer, similar to x86's RSP.
- R14 (LR): Link Register, stores the return address for function calls.
- R15 (PC): Program Counter, points to the current instruction being executed.
This design promotes simpler instruction decoding and efficient execution.
Quick Check on Architectures
Which of the following statements correctly describe the characteristics of x64 and ARM architectures, or general CPU concepts?
Architectures Unveiled: Recap
Great job! In this lesson, you've gained a foundational understanding of different CPU architectures and their core components.
- We explored x86 (32-bit CISC), x64 (its 64-bit evolution), and ARM (RISC, mobile-focused).
- You learned about the vital role of registers (GPRs and special-purpose) as the CPU's fast internal storage.
- You also got an overview of how the Instruction Pointer guides the CPU through its execution cycle.
This knowledge is key to understanding how programs run and how to analyze them in future lessons!
常见问题解答
「CPU 架构概览」课时是免费的吗?
是的 — 「CPU 架构概览」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Reverse Engineering & Binary Analysis Basics 课程的其余内容,请升级到 CoddyKit PRO。 Reverse Engineering & Binary Analysis Basics 课程共包含 4 节课。
「CPU 架构概览」这节课中我会学到什么?
了解 x86、x64 和 ARM 等常见 CPU 架构,重点学习它们的寄存器组和指令执行方式。 你通过在浏览器中直接运行的动手代码来练习 Reverse Engineering & Binary Analysis Basics,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Reverse Engineering & Binary Analysis Basics 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Reverse Engineering & Binary Analysis Basics 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「CPU 架构概览」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Reverse Engineering & Binary Analysis Basics 课中编写并运行代码吗?
能。每节 Reverse Engineering & Binary Analysis Basics 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- CPU 架构概览
- 二进制文件中的数据表示
- 常见二进制文件格式
- 字节序与字节排列