汇编基础
数据寄存器
每个为 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 |
封锁指令,用来维持总线的锁存信号直到联合的指令执行完 |