汇编语言学习笔记
基于王爽《汇编语言》(第三版),面向 8086 CPU(16 位实模式)的学习笔记。 学习汇编的目的不是为了写汇编程序,而是为了理解计算机底层是如何工作的。
学习路径
建议按以下顺序阅读,知识是递进的:
第一部分:基础概念
- 01-寄存器 — CPU 内部的存储单元,汇编编程的核心对象
- 02-内存寻址 — CPU 如何找到数据:立即数、寄存器、内存三种位置
- 03-数据定义与伪指令 — 用 db/dw/dd 在程序中定义数据
第二部分:程序结构
- 04-第一个程序 — 环境搭建(DOSBox + MASM)、编译、运行、调试
- 05-多段程序设计 — 代码段、数据段、栈段的分离,assume 的作用,程序入口
- 06-栈 — 栈的原理、push/pop 操作、栈段寄存器 SS:SP
第三部分:控制流
- 07-转移指令与循环 — jmp、loop、jcxz、offset,改变 CS:IP 实现跳转
- 08-过程调用与算术指令 — call/ret 实现子程序、mul/div 乘除法
- 09-标志寄存器 — ZF/PF/SF/CF/OF 标志位,adc/sbb/cmp 条件相关指令
第四部分:中断与外设
- 10-中断与端口 — 内中断、外中断、int 指令、in/out 端口读写、显存
为什么学汇编?
- 理解高级语言(C/Java/Python)背后的机器是怎么工作的
- 理解函数调用、栈帧、指针的本质
- 理解操作系统和编译原理的底层机制
- 调试和逆向工程的基础
参考教材
- 王爽《汇编语言》(第三版),清华大学出版社
- 实验环境:DOSBox + MASM 5.0/6.0(详见 04-第一个程序)