8086微处理器包含有13个16位的寄存器和9位标志位。
● 4个通用寄存器(AX,BX,CX,DX)
● 4个段寄存器(CS,DS,SS,ES)
● 4个指针和变址寄存器(SP,BP,SI,DI)
● 指令指针(IP)
- 通用寄存器
(1)8086含4个16位数据寄存器,它们又可分为8个8位寄存器(每个都可分为高8位和低8位)H–high、L–low,即:
● AX --> AH,AL
● BX --> BH,BL
● CX --> CH,CL
● DX --> DH,DL
常用来存放参与运算的操作数或运算结果。
(2)数据寄存器特有的习惯用法
● AX:累加器。多用于存放中间运算结果。所有I/O指令必须都通过AX与接口传送信息;
● BX:基址寄存器。在间接寻址中用于存放基地址;
● CX:计数寄存器。用于在循环或串操作指令中存放循环次数或重复次数;
● DX:数据寄存器。在32位乘除法运算时,存放高16位数;在间接寻址的I/O指令中存放I/O端口地址。 - 指针和变址寄存器
● SP:堆栈指针寄存器,其内容为栈顶的偏移地址;
● BP:基址指针寄存器,常用于在访问内存时存放内存单元的偏移地址。
● SI:源变址寄存器
● DI:目标变址寄存器
变址寄存器常用于指令的间接寻址或变址寻址。 - 段寄存器
● CS:代码段寄存器,代码段用于存放指令代码
● DS:数据段寄存器,
● ES:附加段寄存器,数据段和附加段用来存放操作数
● SS:堆栈段寄存器,堆栈段用于存放返回地址,保存寄存器内容,传递参数 - 指令指针 IP
16位指令指针寄存器,其内容为下一条要执行的指令的偏移地址。 - 状态标志位
(1)状态标志:
● 进位标志位(CF,Carry Flag):运算结果的最高位有进位或有借位,则CF=1
● 辅助进位标志位(AF,Auxiliary Flag):加法运算中,第三位向第四位有进位;或在减法运算中,第三位向第四位有借位,AF=0。否则AF = 1。
● 溢出标志位(OF,Over Flag):运算结果有溢出,则OF=1
● 零标志位(ZF,Zero Flag):反映指令的执行是否产生一个为零的结果
● 符号标志位(SF,Sign Flag):指出该指令的执行是否产生一个负的结果
● 奇偶标志位(PF,Parity Flag):表示指令运算结果的低8位“1”个数是否为偶数
(2)控制标志位
● 方向控制标志位(DF,Direction Flag):用来控制数据串操作指令的地址步进方向
● 中断允许标志位(IF,Interrupt Flag):表示CPU是否能够响应外部可屏蔽中断请求
● 跟踪标志(TF,Trap Flag):CPU单步执行
标志寄存器