汇编基础

数据寄存器

每个为 16 位长,可分为两个 8 位长的单独操作。

AX(AH AL) 累加器,主要进行算术运算及 I/O 指令
BX(BH BL) 常用作基址寄存器
CX(CH CL) 在循环和串处理指令中常用作计数器
DX(DH DL) 常用于双字长运算时与 AX 联合,I/O 操作中设置端口地址

指针及变址寄存器

SP 堆栈指针,与 SS 联合
BP 基址指针
SI 源变址指针
DI 目的变址指针

段寄存器

CS 代码段
DS 数据段
ES 附加段
SS 堆栈段

控制寄存器 PSW

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
        OF DF IF TF SF ZF   AF   PF   CF
DEBUG 符号=1 OV DN EI   NG ZR   AC   PE   CY
DEBUG 符号=0 NV UP DI   PL NZ   NA   PO   NC
标志 意义
OF 溢出标志
SF 符号标志
ZF 零标志
CF 进位标志
AF 辅助进位标志
PF 奇偶标志
DF 方向标志,0为正
IF 中断标志,允许中断
TF 陷井标志,用于单步操作
   

设置 PSW 的指令

STC CF = 1
CMC CF 取反
CLC CF = 0
CLD DF = 0
STD DF = 1
CLI IF = 0
STI IF = 1

特殊指令

NOP 无操作指令,用于占用空间,运行时更改为指令
HLT 暂停工作,等待外部中断到来,中断结束后继续
WAIT 使处理机空转
ESC mem 换码指令
LOCK 封锁指令,用来维持总线的锁存信号直到联合的指令执行完