汇编语言

指令集、寻址模式、调用约定 — 理解CPU的母语

14 个节点 进阶 7 高级 7

知识结构

学习路径

1
机器码与指令编码

机器码是CPU直接理解和执行的二进制指令,每条指令由操作码和操作数编码组成

#assembly 1 个子节点 3 个前置
进阶
2
指令集架构概述

ISA(指令集架构)是软件与硬件之间的接口契约,定义了CPU能理解和执行的指令集合

#assembly 1 个子节点 1 个前置
进阶
3
寻址方式

寻址方式是指令中指定操作数位置的方法,决定了CPU如何找到要处理的数据

#assembly 1 个子节点 1 个前置
进阶
4
数据传送指令

数据传送指令(MOV/Load/Store)是汇编程序中最基本也最常用的指令,负责在寄存器和内存之间移动数据

#assembly 1 个子节点 1 个前置
进阶
5
算术与逻辑指令

算术指令(加减乘除)和逻辑指令(与或非异或)是汇编程序中进行数据运算的核心指令,直接对应ALU的硬件操作

#assembly 2 个子节点 1 个前置
进阶
6
标志位与条件码

标志位是CPU算术运算的"副作用",记录了结果是否为零、是否为负、有无进位或溢出等状态信息,是条件跳转的判断依据

#assembly 1 个子节点 1 个前置
进阶
7
分支与跳转指令

分支与跳转指令(JMP、条件跳转)让CPU根据条件改变执行流程,是实现if/else、循环等高阶控制结构的底层基础

#assembly 1 个子节点 1 个前置
进阶
8
栈帧与函数调用约定

函数调用时,参数、返回地址、局部变量都存放在哪里?栈帧(Stack Frame)是管理函数调用的核心机制,而调用约定(Calling Convention)则是函数间"约法三章"的规则

#assembly#stack 1 个子节点 1 个前置
高级
9
参数传递(寄存器 vs 栈)

函数调用时,参数可以通过寄存器或栈来传递——寄存器快但数量有限,栈慢但容量大。不同的调用约定就是在这两者之间做权衡

#assembly#calling-convention 1 个子节点 1 个前置
高级
10
递归的汇编实现

函数调用自身看起来像"自我循环"——栈帧机制让它成为可能。每调用一次自己,栈上就多一层帧,返回时再从最内层逐层弹出

#assembly#recursion#stack 1 个子节点 1 个前置
高级
11
内联汇编与 C 混合编程

在 C 代码中直接嵌入汇编指令,既能享受高级语言的开发效率,又能在关键处发挥汇编的性能优势——这是操作系统内核、嵌入式系统和游戏引擎的常用技巧

#assembly#c#inline-asm 1 个子节点 1 个前置
高级
12
反汇编与调试

反汇编(Disassembly)是把机器码还原为汇编的过程——用于理解程序行为、分析恶意软件、逆向工程和调试崩溃

#assembly#debugging#reverse-engineering 1 个子节点 1 个前置
高级
13
缓冲区溢出与安全

缓冲区溢出(Buffer Overflow)是向固定大小的缓冲区写入超出容量的数据——看似简单的错误,却是几十年来最致命的软件安全漏洞之一,也是理解栈布局和保护机制的绝佳窗口

#assembly#security#stack#exploit 2 个前置
高级
14
SIMD / 向量指令

SIMD(Single Instruction, Multiple Data,单指令多数据)让 CPU 用一条指令同时处理多个数据——是多媒体处理、科学计算和 AI 推理加速的基石

#assembly#simd#performance 1 个前置
高级