80x86微处理器的结构
【本章重点】16位微处理器8086的编程结构,8086的操作和时序,8086的存储器编址和I/O编址;32位微处理器80386的三种工作方式。
【本章难点】16位微处理器8086的工作模式;32位微处理器的虚拟存储机制。
微处理器即中央处理单元CPU(central processing unit)是微型计算机的核心,其性能指标最主要的是以下两项:
(一)字长。指CPU能同时处理的数据位数,也称数据宽度。字长越长,计算能力越高,速度越快。研究主要对象8086的字长是16位。
(二)主频。指CPU的时钟频率,和CPU的运算速度密切相关,主频越高运算速度越快。研究主要对象8086的主频是10MHz。
第一节 16位微处理器8086
一、8086的编程结构
(一)CPU的物理结构:
1.算术逻辑部件(ALU);
2.寄存器组,包括:通用寄存器组;指令变址寄存器;段寄存器组;程序计数器IP;标志寄存器;
3.预存指令队列缓冲器;
4.地址形成部件;
5.控制部件,包括:指令寄存器、指令译码器及总线周期编码器、定时和控制部件。
(二)编程结构,是指从程序员和使用者的角度看到的结构,这种结构与内部物理结构和实际布局是有区别的。在编程结构图(图2-2)中可以看到,从功能上8086分为两部分,即总线接口部件(bus interface unit, BIU)和执行部件(execution unit, EU)。

一) 总线接口部件
总线接口部件的功能是负责与存储器、I/O端口传送数据,由下列各部分组成:
(1)4个地址寄存器,即:
1.CS 16位代码段寄存器(code segment);
2.DS 16位的数据段寄存器(data segment);
3.ES 16位的附加段寄存器(extra segment);
4.SS 16位的堆栈段寄存器(instruction pointer)。
(2)16位的指令指针寄存器IP(instruction pointer)。
(3)20位的地址加法器。
(4)6字节的指令队列缓冲器(8088为四个字节)。
对总线接口部件,有两点需要说明:
(1)8086/8088在执行指令的同时,从内存中取下面1条指令或几条指令,取来的指令就放在指令队列缓冲器中 。通常,8086/8088执行完一条指令就可以立即执行下一条指令,从而提高了CPU的效率。
(2)地址加法器用来产生20位地址,根据16位寄存器提供的信息计算出20位的物理地址。比如,一条指令的物理地址是根据代码段寄存器CS和指令指针寄存器IP的内容得到的,计算时,将段寄存器的内容左移4位,然后与IP的内容相加。假设CS=FE00H,IP=0200H,此时指令的物理地址为FE200H。
二)执行部件
执行部件的功能是负责指令的执行。从编程结构图可见到,执行部件由下列的几个部分组成:
(1)4个通用寄存器,即AX、BX、CX、DX;
(2)4个专用寄存器,即基数指针寄存器BP、堆栈指针寄存器SP、源变址寄存器SI、目的变址寄存器DI;
(3)标志寄存器:OF、DF、IF、TF、SF、ZF、AF、PF、CF,其中,状态标志6个:SF、ZF、PF、CF、AF和OF。控制标志3个:DF、IF、TF;
(4)算术逻辑部件ALU。
对执行部件,有四点需要说明:
(1)4个通用寄存器既可以作为16位寄存器使用,也可以作为8位寄存器使用;
(2)AX寄存器也称为累加器,8086指令系统中许多指令利用累加器来执行;
(3)算术逻辑部件主要是加法器;
(4)标志寄存器共有16位,其中7位未使用,各位含义如下:

状态标志有6个,即SF、ZF、PF、CF、AF和OF。
(1)符号标志SF(sign flag):符号标志SF和运算结果的最高位相同,数据用补码表示时,负数的最高位是1,符号标志据此指出前面的运算结果的正负;
(2)零标志ZF(zero flag):当前的运算结果是0,则零标志ZF是1;当前运算结果是/0,则零标志ZF是0;
(3)奇偶标志PF(parity flag):如果运算结果的低8位所含的1的个数是偶数,则奇偶标志PF是1,否则是0;
(4)进位标志CF(carry flag):当执行一个加法运算使最高位产生进位时,或者执行一个减法运算引起最高位产生借位时,则CF为1.除此之外,移位指令也会影响这一标志位;
(5)辅助进位标志AF(auxiliary carry flag):当做加法运算时,如果第3位往第4位有进位时,或者做减法运算时,如果第3位往第4位有借位,则AF是1。辅助进位标志AF一般在BCD(binary coded decimal)码运算中作为是否进行十进制调整的判断依据;
(6)溢出标志OF(overflow flag):运算过程中产生溢出时,OF为1。
控制标志有3个,即DF、IF、TF。
(1)方向标志DF(direction flag):控制串操作指令用的标志。方向标志DF为0时,则串操作过程中地址会不断增值;如果方向标志DF为0,则串操作过程中地址会不断减值;
(2)中断允许标志(interrupt enable flag):控制可屏蔽中断的标志。如果中断允许标志IF为1,则CPU不能对可屏蔽中断请求做出响应;如果IF为1,则CPU可以接受可屏蔽中断请求;
(3)跟踪标志TF(trap flag):又称单步标志,TF为1,则CPU按跟踪方式执行指令。
三)8086总线周期的概念
CPU的总线接口部件执行一个总线周期,这是多处动作的一个协调办法。在8086/8088中,一个基本的总线周期由4个时钟周期组成,时钟周期是CPU的基本时间计算单位,等于计算机的主频的倒数。在一个最基本的总线周期中,习惯上将4个时钟周期分别分别称为4个状态,即T1状态、T2状态、T3状态、T4状态.
(1)在状态,CPU往多路复用总线上发出地址信息,指出要寻址的存储单元或外设端口的的地址;
(2)在状态,CPU从总线上撤销地址,使总线低16位浮置成高阻状态,为传输数据做准备;。总线的最高4位(
~
)用来输出本 总线周期的状态信息;
(3)在状态,多路总线的高4位继续提供状态信息,多路总线的低16位(8088是低8位)上出现由CPU写出的数据或者CPU从存储器或端口读入的数据;
(4)在状态,存储器或外设速度慢,不能及时配合CPU传输数据,通过“READY”信号线在
状态启动之前向CPU发送一个“数据未准备好”信号,这时,CPU会在
周期之后插入一个或多个附加的时钟周期
(wait),直到“READY”信号线上发出“准备好”信号,CPU接收后自动脱离
状态,进入
状态;
(5)在状态,总线周期结束。
需要指出,只有在CPU和内存或外设接口之间传输数据,以及填充指令队列时,CPU才执行总线周期。
二、8086的引脚信号和工作模式
(一)最大模式和最小模式的概念
最小模式:系统中只有8086或者8088一个微处理器。在这种系统中,所有的总线控制信号都直接由8086或8088产生。因此,系统中的总线控制电路可减到最小;
最大模式:在中等规模或者大型8086/8088系统中,在最大模式系统中总是包括有两个或多个微处理器,其中一个主处理器就是8086或者8088,其他的处理器称为协处理器,协助主处理器工作。和8086/8088配合的协处理器有两个:数值运算协处理器8087和输入输出协处理器8089。8086/8089是工作在最大模式还是最小模式,完全由硬件决定。
(二)8086/8088的引脚信号功能

注:1、8086/8088的数据线和地址线是复用的;
2、8086/8088的引脚差别:(1)8086有16个地址/数据复用引脚,8088有8个地址/数据复用引脚;(2)28脚和34脚定义不同。
各引脚信号:
(1)GND,VCC;
(2)AD15~AD0:地址/数据复用引脚,双向工作。在总线周期的TI状态用来输出要访问的存储器或I/O端口的地址,在T2、T3状态,若为读周期,则处于浮空状态,若为写周期,则用来传输数据。在8086系统中,常将AD0信号作为低8位数据的选通信号;
(3)A19/S6~A16/S3:地址/状态复用引脚。总线周期T1状态用来输出地址的最高4位,在总线周期的T2、T3、Tw和T4状态时,用来输出状态信息;
(4)/BHE /S7:高8位数据总线允许/状态复用引脚;
(5)NMI;
(6)INTR;
(7)/RD;
(8)CLK;
(9)Reset:在复位的时候,代码段寄存器CS和指令指针寄存器IP分别初始化为FFFFH和0000H。所以,8086/8088在复位之后再重新启动时,便从内存的FFFF0H处开始执行指令。因此,一般在FFFF0H处存放一条无条件转移指令,转移到系统程序的入口处。这样,系统一旦被启动,就自动进入系统程序;
(10)Ready;
(11)/TEST;
(12)MN/MX;
上述信号是8086/8088工作在最小模式和最大模式时都要用的。此外,8086/8088第24~31脚还有8个控制信号,它们在最小模式下有不同的名称和定义。
、
本文详细介绍了80x86微处理器的结构,重点讨论了16位微处理器8086和32位微处理器80386的工作方式,包括其编程结构、地址形成、总线接口部件、执行部件的功能。8086的字长为16位,主频为10MHz,由ALU、寄存器组、地址形成部件和控制部件等组成。此外,还探讨了8086的总线周期和引脚信号,以及最大模式和最小模式的工作模式。
818

被折叠的 条评论
为什么被折叠?



