汇编指令

作者:Vesper Vei
1 分钟阅读

目录

  1. 汇编指令总览
    1. 写在前面
    2. 分类脉络说明
    3. 二级分类说明(用于下级分支结构)
    4. 纵览表(无双链)
    5. 使用方式说明

汇编指令总览

写在前面

本笔记作为整个汇编指令体系的入口,用于构建读者的整体视角。汇编语言指令众多,如果没有合理的结构,会让人感觉碎片化、难以理解。
为解决这一点,本笔记采用分层方式组织所有指令:

第一级(当前文档):说明分类脉络、全局框架、学习策略。
第二级:依照功能划分指令类别。
第三级:每条指令独立成文,包含语义、行为、影响寄存器、常见陷阱以及 PWN 中的注意事项。

所有具体指令的细节都属于第三级,本笔记不展开。

分类脉络说明

x86_64 指令集虽然庞大,但在逆向分析和 PWN 中真正常用的部分,可以自然分为若干功能模块。
这些模块并非死板的知识分类,而是从“程序行为逻辑”角度划分的:

运算类 —— 修改数据
数据传输类 —— 在寄存器与内存之间移动数据
栈与调用类 —— 函数调用链、栈帧变化
控制流类 —— 程序走向如何改变
逻辑与位操作 —— 数据的结构级处理
系统接口类 —— 与系统调用相关(可选)

这些模块构成程序行为的完整闭环:
数据从哪里来、如何被处理、怎么被推进栈、如何跳转、如何返回。

第二级笔记将围绕这些分类展开。

二级分类说明(用于下级分支结构)

下面是推荐的功能型分类,这将成为你的 Obsidian 二级分支: 运算与逻辑类 处理数据内容,包含算术运算与逻辑运算。
对应常见场景:解密、长度计算、循环计数器运转。 数据传输类 在寄存器 / 内存 / 栈之间移动数据。
是理解任意汇编的基础路径。 栈与调用类

函数调用栈的建立与销毁,PWN 中最敏感的一组指令。
涉及 push、pop、call、leave、ret 等。 控制流与分支类

程序逻辑的流动决定点,包括无条件跳转与条件跳转。
特别包括 jcc 的大分类。 位操作与移位类

处理位级结构,如加密、hash、校验、指针运算等。

字符串和块操作(可选) 如 rep、movs、stos 等。逆向中出现频率不高,但理解后有很大价值。

系统调用相关(可选)

如 syscall、int80。对 PWN 有直接关联。

这些将分别成为第二级笔记的主分类节点。

纵览表(无双链)

以下为你的整个指令库的总览结构,不包含跳转,仅用于帮助读者形成整体图景:

运算与逻辑类

数据传输类

栈与调用类

控制流类

移位与位操作类

其他

使用方式说明

为了让本知识库更像一本不断扩展的“逆向字典”,推荐以下使用方式:

遇到汇编 → 按类别快速定位 → 查第三级对应指令
同时,通过分类回溯,可以理解指令“为什么在这里出现”和“关系为何”。

本笔记的角色是提供指引与框架,而不是收录细节。
你所有指令笔记已经写好,因此只需在二级分支处按照本结构创建空文档或目录即可。


关系图谱

Loading graph...