汇编语言程序设计(汇编语言程序设计)

书: https://pan.baidu.com/s/1LWWovU7IScpiddLrDhjl1w?pwd=pc5n
笔记如下:

  1. 寄存器基础
  • 通用寄存器(AX, BX, CX, DX)及分段(AH/AL)
  • 指针寄存器(SP, BP)与变址寄存器(SI, DI)
  • 段寄存器(CS, DS, SS, ES)的作用
  1. 内存寻址模式
  • 立即寻址 MOV AX, 1234H
  • 直接寻址 MOV AX, [2000H]
  • 寄存器间接寻址 MOV AX, [BX]
  • 基址变址寻址 MOV AX, [BX+SI+10H]
  1. 数据传送指令
  • MOV 限制(不能内存到内存直接传输)
  • XCHG 交换数据
  • LEA 取有效地址
  1. 算术运算指令
  • ADD/SUB 影响标志位(CF, ZF, SF)
  • MUL/DIV 隐含使用AX/DX:AX
  • INC/DEC 不改变CF标志
  1. 逻辑与移位指令
  • AND/OR/XOR/NOT 位操作
  • SHL/SHR 逻辑移位
  • SAR 算术右移(保留符号位)
  1. 程序控制指令
  • 无条件跳转 JMP label
  • 条件跳转 JE/JZ(相等), JB(低于)
  • 循环控制 LOOP/LOOPZ
  1. 过程调用机制
  • CALL/RET 配合堆栈操作
  • 参数传递约定(寄存器/堆栈)
  • 保护现场(PUSH/POP寄存器)
  1. 中断处理
  • 软中断 INT 21H 系统调用
  • 中断向量表(IVT)结构
  • 自定义中断服务程序(ISR)
  1. 宏汇编技术
  • 宏定义 MACRO/ENDM
  • 条件汇编 IF/ELSE/ENDIF
  • 重复块 REPT/IRP
  1. 文件操作(DOS功能调用)
    • 打开文件 MOV AH,3DH
    • 读写文件 MOV AH,3FH/40H
    • 关闭文件 MOV AH,3EH
  2. 字符串操作指令
    • 方向标志 CLD/STD
    • 重复前缀 REP MOVSB
    • LODSB/STOSB 单字节处理
  3. 堆栈帧结构
    • 入口参数访问 [BP+4]
    • 局部变量分配 SUB SP,10
    • 堆栈平衡原则
  4. 保护模式基础
    • 描述符表(GDT/LDT)
    • 选择子与段权限级
    • 平坦内存模型
  5. 浮点运算
    • FPU寄存器栈(ST0-ST7)
    • FADD/FMUL 浮点指令
    • 数据转换 FILD/FISTP
  6. MMX/SSE指令集
    • 64位打包数据处理
    • PADDB 并行加法
    • 数据对齐要求
  7. BIOS功能调用
    • 显示服务 INT 10H
    • 键盘输入 INT 16H
    • 时钟服务 INT 1AH
  8. 调试技巧
    • Debug工具使用(U, D, T, G)
    • 断点设置 INT 3
    • 寄存器状态检查
  9. 模块化编程
    • 多文件链接(PUBLIC/EXTERN)
    • 库文件生成与使用
    • 段定义对齐
  10. 性能优化
    • 指令流水线冲突避免
    • 寄存器复用策略
    • 循环展开技术
  11. 现代扩展
    • 内联汇编(C/C++嵌入)
    • 逆向工程中的应用
    • 漏洞分析中的汇编审计

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注