8086微处理器寄存器结构

8086微处理器寄存器结构

8086有14个可编程的16位内部寄存器,其中AX,BX,CX,DX可作为两个8位寄存器使用。
8086微处理器寄存器结构_第1张图片

数据寄存器

数据寄存器既可以作为算术、逻辑运算的源操作数,向ALU提供参与运算的原始数据,也可以作为目标操作数,保存运算的中间结果或最后结果。

  • AX :累加器
  • BX :基址寄存器
  • CX :计数器
  • DX :数据寄存器

这4个16位寄存器又可分别分为高8位(AH,BH,CH,DH)和低8位(AL,BL,CL,DL)

段寄存器

在8086系统中,访问存储器的地址是由段基址和内偏移地址两部分组成。段寄存器用来存放各分段的逻辑段基址并指示当前在使用的4个逻辑段。

  • CS:代码段寄存器,存放当前正在运行的程序代码所在段的段基址
  • DS:数据段寄存器,指出当前程序使用的数据所存放段的最低地址
  • SS:堆栈段寄存器,指出当前堆栈的底部地址
  • ES:附加段寄存器,指出当亲程序使用附加数据段的段基址

地址指针与变址寄存器

地址指针与变址寄存器一般用来存放主存地址的偏移量(相对段地址的偏移距离)参与地址运算。BIU地址器中的内容于左移4位后的段寄存器内容相加产生20位的物理地址。

  • SP:即堆栈指针寄存器,指出在当前堆栈中栈顶的地址(入栈/出栈指令由SP给出栈顶的偏移地址)
  • BP:即基址指针寄存器,指出要处理的数据在堆栈段中的起始地址(在包含BP的寻址方式中,如无特别说明,段地址皆由SS段寄存器提供,BP对堆栈区的存储单元寻址)
  • SI/DI:源变址/目的变址寄存器,在串操作指令中,SI用来存放源操作数地址的偏移量;DI用来存放目标操作数地址的偏移量

控制寄存器

IP:指令指针寄存器,用来存放下一条要执行的指令在代码段中的偏移地址(与段寄存器CS)
FLAGS:一个16位寄存器,8086实际上用了9位,其中6位是状态标志位,3位是控制标志位。

状态标志位

  • CF:进位标志。表示本次加法或减法运算中最高位(字节运算为D7,字运算为D15)产生进位或借位的情况。CF=1表示有进位,CF=0表示无进位(减法运算时表示借位的情况)
  • PF:奇偶校验位。表示本次运算结果低8位中包含1的个数。PF=1表示有偶数个1,PF=0表示有奇数个1
  • AF:辅助进位标志。表示参加加法或减法运算中低4位向高4位(即D3位向D4位)产生进位或借位的情况。AF=1表示有进位,AF=0表示无进位(减法时表示借位情况)
  • ZF:零标志。表示当前的运算结果是否为0,ZF=1表示运算结果为0,ZF=0表示运算结果不为0
  • SF:符号标志。它与运算结果最高位相同。若字节运算时D7位(字运算时D15位)为1,则SF=1;否则SF=0
  • OF:溢出标志。表示运算结果中产生溢出的情况。OF=1表示当前正在进行的补码运算有溢出,OF=0表示无溢出

控制标志位

  • DF:方向标志。用于串操作指令,指定字符串处理时的方向。DF=1时,串操作过程中地址会自动递减1,DF=0时,地址自动递增1
  • IF:中断允许标志。用来控制可屏蔽中断的标志位。IF=1时,开中断,CPU可以接受可屏蔽中断的请求,IF=0时,CPU不能接受可屏蔽中断请求
  • TF:单步标志。用来控制CPU进入单步方式。TF=1时,CPU处于单步工作方式,每执行一条指令就自动产生一次内部中断,TF=0时,CPU不能以单步方式工作

你可能感兴趣的:(微机原理)