汇编语言学习笔记

基于王爽《汇编语言》(第三版),面向 8086 CPU(16 位实模式)的学习笔记。 学习汇编的目的不是为了写汇编程序,而是为了理解计算机底层是如何工作的。

学习路径

建议按以下顺序阅读,知识是递进的:

第一部分:基础概念

  1. 01-寄存器 — CPU 内部的存储单元,汇编编程的核心对象
  2. 02-内存寻址 — CPU 如何找到数据:立即数、寄存器、内存三种位置
  3. 03-数据定义与伪指令 — 用 db/dw/dd 在程序中定义数据

第二部分:程序结构

  1. 04-第一个程序 — 环境搭建(DOSBox + MASM)、编译、运行、调试
  2. 05-多段程序设计 — 代码段、数据段、栈段的分离,assume 的作用,程序入口
  3. 06-栈 — 栈的原理、push/pop 操作、栈段寄存器 SS:SP

第三部分:控制流

  1. 07-转移指令与循环 — jmp、loop、jcxz、offset,改变 CS:IP 实现跳转
  2. 08-过程调用与算术指令 — call/ret 实现子程序、mul/div 乘除法
  3. 09-标志寄存器 — ZF/PF/SF/CF/OF 标志位,adc/sbb/cmp 条件相关指令

第四部分:中断与外设

  1. 10-中断与端口 — 内中断、外中断、int 指令、in/out 端口读写、显存

为什么学汇编?

  • 理解高级语言(C/Java/Python)背后的机器是怎么工作的
  • 理解函数调用、栈帧、指针的本质
  • 理解操作系统和编译原理的底层机制
  • 调试和逆向工程的基础

参考教材

  • 王爽《汇编语言》(第三版),清华大学出版社
  • 实验环境:DOSBox + MASM 5.0/6.0(详见 04-第一个程序

相关