1.通用寄存器
寄存器 | 全称 | 特殊用法 |
---|---|---|
BP | Base Pointer | 基址指针寄存器,指示堆栈段中的一个数据所在的偏移位置 |
SP | Stack Pointer | 堆栈指针寄存器,指示栈顶 |
SI | Source Index | 作源字符串的编址寄存器 |
DI | Destination Index | 作目的字符串的变址寄存器 |
AX | Accumulator | 主要用于存放数据,如存放算术、逻辑运算中的操作数或结果 |
BX | Base Register | 常用来存放访问存储器时的地址 |
CX | Count Register | 常用于保存计算值 |
DX | Data Register | 常用于数据传递 |
2.标志寄存器
8086寄存器的标志寄存器如下图所示:
- 进位标志CF(Carry Flag):CF=1表示运算结果的最高位产生了进位或错位。主要用于多字节数加减运算。
- 奇偶标志PF(Parity Flag):PF=1表示运算结果中有偶数个1.主要用于数据传呼过程中检错。
- 辅助进位标志AF(Auxiliary Carry Flag):AF=1表示运算导致了低四位向第五位的进位或借位。主要用于BCD码的运算
- 零标志ZF(Zero Flag):ZF=1表示运算结果的所有位都为0
- 符号标志SF(Sign Flag):SF=1表示运算结果的最高位为1。对于用补码表示的有符号数,SF=1,表示该数为负数。
- 自陷标志TF(Trap Flag):TF=1表示CPU进入单步执行方式,即没执行一条指令后都产生一个内部中断。利用它就可以实现我们在高级语言编程中的程序调试过程。
- 中断允许标志IF(Interrupt Flag):IF=1表示CPU允许外部可屏蔽中断,否则,禁止外部可屏蔽中断。注意的是,外部不可屏蔽中断和内部中断偶读不受其影响
- 方向标志DF(Direction Flag):DF=1表示在串操作过程中地址指针DI和SI的变化方向是递减。
- 溢出标志OF(Overflow Flag):OF=1表示有符号运算时,运算结果的数值超出了结果操作数范围。对无符号数无意义。
3.段寄存器
段寄存器 | 全称 | 描述 |
---|---|---|
数据段DS | Data Segment | 指出当前程序使用的数据所存放段的最低地址,即存放数据段的段基址。 |
堆栈段SS | Stack Segment | 指出当前堆栈的底部地址,即存放堆栈段的段基址 |
代码段CS | Code Segment | 存放当前正在运行的程序代码所在段的段基址,表示当前使用的指令代码可以从该段寄存器指定的代码段中取得,相应的偏移量则由IP提供。 |
附加数据段ES | Extra Segment | 指出当前程序使用附加数据段的段基址,该段是串操作指令中目的串所在的段 |