1、2.1 8086/8088微处理器的内部结构2.2.1 8086/8088 CPU的内部结构,1. 8086CPU的组成,CPU,EU,BIU,16位通用寄存器组(AX、BX、CX、DX、SP、BP、SI、DI)算术逻辑单元ALUEU控制器控制寄存器 (指令指针 标志寄存器F),段寄存器组(CS、DS、SS、ES)指令指针IP地址加法器指令队列总线接口控制逻辑,2 8086/8088CPU的功能结构,外部总线(三总线),EU,BIU,内存,组成,功能,工作,指令的一般执行过程: 取指令 指令译码 读取操作数 执行指令 存放结果,串行和并行方式的指令流水线:,串行工作方式: 控制器和运算器交替工
2、作,按顺序完成上述指令执行过程;并行工作方式: 运算器和控制器可同时工作。,串行工作方式:,8088以前的CPU采用串行工作方式:,取指令1,执行1,存结果1,取指令2,取操作数,执行2,CPU,BUS,忙碌,忙碌,忙碌,忙碌,并行工作方式:,8088CPU采用并行工作方式,取指令2,取操作数,BIU,存结果,取指令3,取操作数,取指令4,执行1,执行2,执行3,EU,BUS,忙碌,忙碌,忙碌,忙碌,忙碌,忙碌,通用寄存器组(1.数据寄存器),SP(Stack Pointer):堆栈指针寄存器 BP(Base Pointer):基地址指针寄存器SI(Source Index):源变址寄存器DI
3、(Destination Index):目的变址寄存器,2. 指针与变址寄存器组,寄存器的隐含用法,3段寄存器,注意:DS、SS和ES寄存器的内容可由程序设置,而CS寄存器的内容不能用程序设置,控制寄存器1.指令指针寄存器 IP:指令指针寄存器 2.标志寄存器(Flag Register)共有16位,9个标志其中,7位未用。标志寄存器内容如图:,条件标志-共6位,用于寄存程序运行的状态信息,这些标志往往用作后续指令判断的依据。控制标志-共3位,用于控制机器或程序的某些运行过程。,0,状态标志,1.CF(Carry Flag)进位标志-反映在运行结果的最高位有无进位或借位。2. PF(Parit
4、y Flag)奇偶标志-反映运算结果中“1”的个数的奇偶性,主要用于判断数据传送过程中是否出错。3. AF(Auxiliary Flag)辅助进位标志-加减运算时,若D3向D4产生了进位或借位则AF=1。否则AF=0。在BCD码运算时,该标识用于十进制调整。,-反映计算结果是否为0。若结果为零则ZF=1,否则ZF=0。5.SF(Sign Flag)符号标志-反映计算结果最高位及符号位的状态。如果运算结果的最高位为1则SF=1(对带符号数即为负数),否则SF=0(对带符号数即为正数)。6.OF(Overflow Flag)溢出标志-反映运算结果是否超出了带符号数的表数范围。,4.ZF(Zero
5、Flag)零进位,例:十六进制数0CCCCH与十六进制数5115H相加,请写出运算后六个标志状态位的值。解: 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 (0CCCCH) + 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 (5115H) 10 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1从运算结果看出:最高位D15位往前有进位,所以CF=1;运算结果不全为0,所以ZF=0;由于D15=0,所以SF=0;运算结果的低8位中有4个“1”,所以PF=1;D3有向D4进位,因此AF=1;两个异号数相加,不可能发生溢出,所以OF=0。,TF:陷阱标志位(Trap Flag)。当TF=1时,将使CPU进入单步执行工作方式, 主要用于程序调试,单步操作;,(2) 控制标志位,DF:方向标志位(Direction Flag)。控制字节串或字串重复操作指令地址调整的步进方向。,IF:中断标志位(Interrupt Flag)。控制微处理器响应或禁止外部中断。,完成运算:67A0H+0891H,填写下表中的结果和各状态标志位的状态:,练习:5439H+456AH,2.2 8086/88的引脚与功能,8086/8088CPU外形,8086/88的引脚, 8086与8088 CPU的区别,