1第2章16位和32位微处理器2主要内容:16位微处理器808632位微处理器Pentium64位微处理器Itanium概述3§2.116位微处理器80861、8086有16根数据总线和20根地址总线,可寻址的地址空间达220即1MB2、准16位微处理器8088,内部数据总线16位,外部数据总线8位。42.1.18086的编程结构1.总线接口部件(BIU)2.执行部件EU3.8086的总线周期的概念从功能上,8086分成两部分,即总线接口部件(BIU)和执行部件EU5图2-18086的编程结构图61.总线接口部件(BIU)总线接口部件的功能是负责与存储器、I/O端口传输数据。由下列各部分组成:(1)4个段地址寄存器;CS——16位的代码段寄存器;DS——16位的数据段寄存器;ES——16位的扩展段寄存器;SS——16位的堆栈段寄存器;(2)16位的指令指针寄存器IP;(3)20位的地址加法器;(4)6字节的指令队列缓冲器。7执行部件的功能就是负责从指令队列取指令并执行。从编程结构图可见,执行部件由下列几个部分组成:(1)4个通用寄存器,即AX、BX、CX、DX;(2)4个专用寄存器:BP、SP、SI、DI(3)标志寄存器FR;(4)算术逻辑单元ALU。2.执行部件EU8图2-2标志寄存器结构图标志寄存器(FlagRegister)共有16位,其中7位未用。标志寄存器内容如图2-2所示:(1)状态标志:SFZFPFCFAFOF(2)控制标志:DFIFTF标志寄存器9例如0010001101000101+0011001000011001———————————0101010101011110SF=0ZF=0PF=0CF=0AF=0OF=0103.8086的总线周期的概念为了取得指令或传送数据,就需要CPU的总线接口部件执行一个总线周期。在8086中一个最基本的总线周期一般包括四个时钟周期,这四个时钟周期分别称作T1状态、T2状态、T3状态、T4状态。时钟周期是CPU基本时间计量单位,它由计算机主频决定。113.8086的总线周期的概念T1状态:CPU往多路复用总线上发出地址信息,以指出要寻找的存储单元或外设端口的地址。T2状态:CPU从总线上撤销地址,使得总线低16位浮置成高阻状态,为传输数据作准备。总线高4位用来输出本总线周期状态信息,用来表示中断允许状态、段寄存器等。T3状态:多路总线高4位继续提供状态信息,低16位出现写出或读入的数据。Tw状态:等待状态,信息情况与T3状态一样。T4状态:总线周期结束。Ti状态:空闲周期。只有在CPU与内存或I/O之间传输数据,及填充指令队列时,CPU才执行总线周期。122.1.28086的引脚信号和工作模式1.最小模式和最大模式的概念2.8086的引脚信号和功能3.最小模式4.最大模式131.最小模式和最大模式的概念最小模式:系统中只有8086或8088一个微处理器,在这种系统中所有的总线控制信号都由8086或8088产生。最大模式:总是包含两个或多个微处理器,其中一个主处理器是8086或8088,其它的处理器称为协处理器,如数值运算协处理器8087或输入输出协处理器8089。142.8086的引脚信号和功能8086CPU采用双列直插式的封装形式,具有40条引脚,见图2-3。它采用分时复用的地址/数据总线,所以有一部分引脚具有双重功能,即在不同时钟周期内,引脚的作用不同。图2-38086的引脚信号(括号中为最大模式下的名称)15主要引线(最小模式下)8086是工作在最小还是最大模式由MN/MX端状态决定:MN/MX=0时工作于最大模式,反之工作于最小模式。数据信号线(DB)与地址信号线(AB):AD15~AD0:三态,地址/数据复用线。传送数据信号时为双向。A19~A16:三态,输出。高4位地址信号,与状态信号S6-S3分时复用。16主要的控制和状态信号WR:三态,输出。写命令信号;RD:三态,输出。读命令信号;IO/M:三态,输出。指出当前访问的是存储器还是I/O接口。高:I/O接口,低:内存DEN:三态,输出。低电平时,表示DB上的数据有效;RESET:输入,为高时,CPU执行复位;ALE:三态,输出。高:AB地址有效;DT/R:三态,输出。数据传送方向,高:CPU输出,低:CPU输入17[例]:当WR=1,RD=0,IO/M=0时,表示CPU当前正在进行读存储器操作。18READY信号(输入):用于协调CPU与存储器、I/O接口之间的速度差异READY信号由存储器或I/O接口发出。READY=0时,CPU就在T3后插入TW周期,插入的TW个数取决于READY何时变为高电平。19中断请求和响应信号INTR:输入,可屏蔽中断请求输入端。高:有INTR中断请求NMI:输入,非屏蔽中断请求输入端。低高,有NMI中断请求INTA:输出,对INTR信号的响应。20总线保持信号HOLD:总线保持请求信号输入端。当CPU以外的其他设备要求占用总线时,通过该引脚向CPU发出请求。HLDA:输出,对HOLD信号的响应。为高电平时,表示CPU已放弃总线控制权,所有三态信号线均变为高阻状态。213.最小工作模式由图2-3可知,在8086的最小模式中,硬件连接上有如下几个特点:(1)MN/引脚接+5V,决定了8086工作在最小模式。(2)有一片8284A,作为时钟发生器。(3)有三片8282或74LS373,用来作为地址锁存器。(4)当系统中所连接的存储器和外设比较多时,需要增加系统数据总线的驱动能力,这时,可选用两片8286或74LS245作为总线收发器。MX22•图2-38086CPU最小模式下的典型配置23时钟发生器8284A8284A引脚:X1,X2EF1F/C#RDYRES#READYRESET功能:提供频率恒定的时钟信号,对准备信号(READY)及复位信号(RESET)进行同步。8284A振荡源一般采用晶体振荡器,也可以用外部脉冲发生器作为振荡源。此时8284A的F/C端应接高电平。8284A输出的时钟频率为振荡源频率的1/3。24地址锁存器--82828282是带有三态门的8D锁存器,当使能信号线OE为低电平时,三态门处于导通状态,允许1Q-8Q输出到OUT1-OUT8,当OE端为高电平时,输出三态门断开,输出线OUT1-OUT8处于浮空状态。当用8282作为地址锁存器时,它的STB可直接与单片机的锁存控制信号端ALE相连,在ALE下降沿进行地址锁存。2526总线驱动器8286/8287当一个系统所含的外设接口较多时,数据总线上需要有发送器和接收器来增加驱动能力。Inter系统芯片的典型收发器为8286,是8位的。所以,在数据总线为8位的8088系统中,只用1片8286就可构成数据总线收发器,而在数据总线为16位的8086系统中,则要用两片8286。8286的联接和工作原理见电路图。有时候,在设计系统总线时,希望提供给各部件数据信号的相位正好和CPU的原始数据信号相反;反过来一样,也就是需要将外部数据信号反一个相位再提供给CPU。为了满足这种需求,Inter公司又提供了另一功能和8286相仿的芯片8287。在这样的系统中,一般对地址信号也要求反一个相位,这时,地址锁存器就不用8282,而是采用8283,其功能和8282相仿,但提供的输出信号相位相反。2728最大模式下的典型配置29总线控制器8288的连接30312.1.38086的操作和时序1.系统的复位和启动操作2.总线操作3.中断操作和中断系统4.最小模式下的总线保持5.最大模式下的总线请求/授权321、系统的复位和启动操作8086/8088的复位和启动操作是通过RESET引脚上的触发信号来执行的,要求复位信号RESET起码维持4个时钟周期的高电平。复位时代码寄存器CS和指令指针寄存器IP分别初始化为FFFFH和0000H。所以8086/8088复位后重新启动便从内存FFFF0处开始执行指令,一般在FFFF0H处存放一条无条件转移指令,转移到系统程序入口处,使得系统一旦被启动,便自动进入系统程序。332、总线操作按照数据传输方向来分,总线操作可分为总线读操作和总线写操作。总线读操作指CPU从存储器或I/O端口读取数据;总线写操作指CPU将数据写入存储器或I/O端口。34总线读操作35写操作时序363、中断操作和中断系统什么是中断?与生活场景的比较正在看书电话铃响接电话继续看书执行程序事件发生事件处理继续执行程序中断处理实际场景计算机中断返回373、中断操作和中断系统CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(称为中断服务程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。383、中断操作和中断系统(1)8086的中断分类8086可处理256种不同的中断,每个中断对应一个类型码(0~255)。256种中断可分为两大类:一类叫硬件中断;一类叫软件中断。硬件中断又可分成两类,一类叫非屏蔽中断(通过NMI引脚引入,整个系统只有一个,不受中断允许标志IF的屏蔽,另一类叫可屏蔽中断(通过INTR引脚引入,只有在中断允许标志IF为1时才可进入。一个系统可以有多个)398086/8088CPU的中断源分类图2-158086/8088的中断源INTRNMI8086/8088CPU中断逻辑单步(TF=1)除法出错INTO溢出INT3断点非屏蔽中断请求8259A可屏蔽中断请求INTn指令403.中断类型号和中断向量表中断类型号:对每种中断都指定一个中断类型号代码,从0~255,每一个中断类型号都可以与一个中断服务程序相对应。中断服务程序存放在存储区域内,而中断服务程序的入口地址存在内存储器的中断向量表内。中断向量表:是中断类型号与它相应的中断服务程序入口地址之间的转换表。8086的中断系统以位于内存0段的0~3FFH区域的中断向量表为基础。41中断向量和中断向量表42例:若在0000:0080H开始的四个单元的值分别为10H、20H、30H、40H则类型号为20H所对应的中断向量为:4030H:2010H例:中断类型号为17H的中断处理子程序放在2345:7890开始的内存中则在0段005C、005D、005E、005F这4个单元的值应分别为90H、78H、45H、23H434.8086/8088中断处理过程1)将中断类型码乘4,指向中断向量表中的中断处理子程序的入口地址。2)保存CPU的状态。3)清除IF和TF的状态标志位。4)保存原来执行的主程序的中断点。5)转中断处理子程序入口地址。6)执行中断处理子程序。7)返回到被中断了的主程序的断点继续执行。448086对中断的响应45中断响应要用两个总线周期。46中断处理子程序保护中断现场。设置中断允许标志IF来开放中断中断处理的具体内容恢复寄存器中断返回指令47软件中断的特点①中断类型码由指令提供。②不执行中断响应总线周期。③不受中断允许标志IF的影响④执行软件中断时,对外部硬件中断请求的反映不同于硬件中断⑤软件中断没有随机性48最小模式下的总线保持总线保持请求/保持响应时序49最大模式下的总线请求/授权最大模式下的总线请求/允许/释放时序502.1.48086的存储器编址和I/O编址1.8086存储器编址2.8086I/O编址511.18086存储器的分段结构8086CPU中有四个段寄存器:CS,DS,SS和ES,这四个段寄存器存放了CPU当前可以寻址的四个段的基值,也即可以从这四个段寄存器规定的逻辑段中存取指令代码和数据。一旦这四个段寄存器的内容被设定,就规定了CPU当前可寻址的段,如图2-7所示。图2-7当前可寻址的存储器段(堆栈段和附加段重叠)521.28086存储器的逻辑地址与物理8086