1、回顾,1.数值型数据在计算机中的表示方法 1)无符号数的算术运算、表示范围及运算溢出判断 2)带符号数的表示方法(原码、反码和补码)及溢出判断 2.常用的逻辑部件 1) 逻辑门(与门、或门、非门、与非门、或非门) 重点掌握每个逻辑门的含义(真值表中的特定性) 2) 138译码器 重点掌握138译码器的真值表,即3个使能端、三个输入端及8个输出端之间的关系。,1,微型计算机原理 与接口技术,公共计算机教学与研究中心,第二章,2,教学目的 熟悉8088/8086微处理器的结构及其外部引脚和功能 掌握8088/8086微机存储器的组织 了解8088/8086微处理器的两种工作模式 了解8088/80
2、86微处理器的工作时序,第2章 8086/8088微处理器,3,4,CPU是计算机系统的核心部件,控制和协调整个计算机系统的工作。 基本功能: 能够进行算术运算和逻辑运算; 能对指令进行译码、寄存并执行指令所规定的操作; 具有与存储器和I/O接口进行数据通信的能力; 少量数据的暂存; 能够提供系统所需的定时和控制信号; 能够响应输入输出设备发出的中断请求。,8088与8086同属于第三代CPU,它们支持完全相同的指令系统。这两款CPU的主要区别是在硬件结构上,8086的外部数据总线宽度为16位,而8088的外部数据总线宽度为8位;另外8086的指令预取队列长度为6字节,而8088的指令预取队列
3、长度为4字节。除此之外,二者几乎没有什么差别,本章将以8088为主来介绍。,5,2.1 8088/8086微处理器的内部结构,6,2.1.1 8086/8088CPU的功能结构 8086/8088CPU的功能结构示意图如下图所示。8086/8088包含两大功能部件,即执行单元(EU,Execution Unit)和总线接口单元(BIU,Bus Interface Unit)。,8086结构示意图,7,执行单元(EU) 主要完成指令的译码和执行。它包括算术逻辑运算单元ALU、通用寄存器组、专用寄存器、状态标志寄存器等,这些部件的宽度都是16位。 总线接口单元(BIU) 是8088同外部联系的接口
4、。 它负责所有涉及外部总线的操作,包括取指令、读操作数、写操作数、地址转换和总线控制等。,8,8088指令执行过程,9,指令流水线,取指令1,执行 指令1,执行 指令1,取指令2,执行 指令2,执行 指令2,取指令3,执行 指令3,执行 指令3,忙碌,忙碌,忙碌,忙碌,取指令1,执行 指令1,执行 指令1,忙碌,忙碌,取指令2,执行 指令2,图2.2 指令(取指和执行)串行执行,图2.2 指令并行执行,执行 指令2,CPU状态,空闲,空闲,CPU状态,2.1.2 8088 CPU的存储器组织,10,物理地址 8088/8086:20根地址线,可寻址220(1MB)个存储单元 CPU送到AB上的
5、20位的地址称为物理地址 逻辑地址 段基地址和段内偏移量共同构成逻辑地址,逻辑地址通常写成: XXXXH :YYYYH的形式 其中XXXXH为段基址;YYYYH为段内偏移地址。物理地址与逻辑地址的关系: 物理地址段基址16段内偏移,【例如】逻辑地址A562H :9236H对应的物理地址是AE856H,11,物理地址是机器硬件操作时所使用的地址;逻辑地址是应用人员在编程时所使用的地址。由逻辑地址形成物理地址是由总线接口部件中的电路实现的,如下图:,物理地址的形成,代码段寄存器:CS 数据段寄存器:DS 堆栈段寄存器:SS 附加段寄存器:ES,段和段之间允许 分甚至全部重叠。,12,2.1.3 8
6、088 CPU的寄存器结构,13,数据寄存器,8088含4个16位数据寄存器,它们又可分为8个8位寄存器,即: AX AH,AL BX BH,BL CX CH,CL DX DH,DL 数据寄存器特有的习惯用法 AX:累加器。所有I/O指令都通过AX与接口传送信息,中间运算结果也多放于AX中 BX:基址寄存器。在间接寻址中用于存放基地址 CX:计数寄存器。用于在循环或串操作指令中存放计数值 DX:数据寄存器。在间接寻址的I/O指令中存放I/O端口地址;在32位乘除法运算时,存放高16位数,14,地址指针寄存器,SP:堆栈指针寄存器,其内容为栈顶的偏移地址 BP:基址指针寄存器,常用于在访问内存时
7、存放内存单元的偏移地址,BX与BP在应用上的区别,作为通用寄存器,二者均可用于存放数据。 作为基址寄存器,用BX表示所寻找的数据在数据段(DS);用BP则表示数据在堆栈段(SS),变址寄存器,SI:源变址寄存器 DI:目标变址寄存器 变址寄存器常用于指令的间接寻址或变址寻址。特别是在串操作指令中,用SI存放源操作数的偏移地址,而用DI存放目标操作数的偏移地址。,15,段寄存器,用于存放相应逻辑段的段基地址 CS:代码段寄存器:代码段存放指令代码 DS:数据段寄存器 ES:附加段寄存器 SS:堆栈段寄存器:指示堆栈区域的位置 指令指针寄存器 IP:指令指针寄存器,其内容为下一条要执行指令的偏移地
8、址,(CS:IP) 。,存放操作数,标志寄存器 FLAGS称为标志寄存器或程序状态字(PSW,Program Status Word)。用来存放指令执行结果的特征。状态标志寄存器是一个16位的寄存器,位于EU单元中,实际只使用了9位。 这9个标志位可分为两类:一类反映指令执行的重要特征,为状态标志位,共有6个;另一类用于控制微处理器的操作,为控制标志位,共有3个。,16,(1)状态标志位 CF(Carry Flag):进位标志。当算术运算结果使最高位产生进位或借位时,则CF=1;否则CF=0。 PF(Parity Flag):奇偶标志。若运算结果中的低8位含有偶数个1,则PF=1;否则PF=0
9、。 AF(Auxiliary carry Flag):辅助进位标志。运算过程中若D3位向D4有进位或借位时,AF=1;否则AF=0。,17,状态标志位 ZF(Zero Flag):零标志。若运算结果为0,则ZF=1;否则ZF=0。 SF(Sign Flag):符号标志。若运算结果为负,则SF=1;否则SF=0。 OF(Overflow Flag):溢出标志。当带符号数的补码运算结果超出机器所能表达的范围时,就会产生溢出,这时OF=1;否则OF=0。 (2)控制标志位 DF(Direction Flag):方向标志。控制串操作指令的地址变化的方向。当DF=0时,串操作指令的地址指针按增量变化;当
10、DF=1时,串操作指令的地址指针按减量变化。 IF(Interrupt Flag):中断允许标志。控制微处理器是否允许响应可屏蔽中断请求。若IF=1,则允许响应;否则禁止响应。 TF(Trap Flag):单步标志。TF=1时,CPU为单步方式,即每执行完一条指令就自动产生一个内部中断,此时用户可查看有关寄存器的内容、存储单元的内容以及标志寄存器的内容等。单步执行是调试程序的有效方法。,2.2 8088 CPU的引脚及其功能,8088CPU是Intel系列的准16位微处理器,它采用双列直插式封装,有40个引脚。,18,奔腾4代CPU,8080CPU,19,图2-6 8088微处理器芯片引脚图,
11、芯片又称集成电路。通常,它是一个很小、很薄的硅片,上面蚀刻有组成微处理器的晶体管。,图2-6是8088CPU的引脚图。,8088 CPU 的两种工作模式 最小模式和最大模式。 最小模式为单处理机模式,控制信号较少,一般可不必接总线控制器。 MN/MX=1 最大模式为多处理机模式,控制信号较多,须通过总线控制器与总线相连。 MN/MX=0,20,两种模式功用相同的引脚 AD7AD0:8088地址/数据总线,双向,三态。构成了8088的地址/数据多路复用总线。当ALE有效(高电平)时,作为存储器的低8位地址或I/O端口地址;当ALE无效(低电平)时,作为数据总线。 A15A8:8位地址信号,输出,
12、三态。8088地址总线在整个总线周期内提供存储器高8位地址。 A19/S6A16/S3:多路复用地址/状态总线,输出,三态。提供地址信号A19A16及状态位S6S3。 状态位S6一保持逻辑0,S5表示中断允许标志位(IF)的状态, S4和S3指示当前总线周期内被访问的段。表2-1为S4和S3的真值 表。,21,表2-1 状态为S4和S3的功能,READY:就绪输入信号,输入,用于在微处理器时序中插入等待状态。若该引脚被置为低电平,则微处理器进入等待状态并保持空闲;若该引脚被置为高电平,则它对微处理的操作不产生影响。 CPU 在读/写周期中的T3时钟周期对该脚采样,若发现该脚为0态,CPU就自动
13、插入等待周期Tw(1个或多个),直到Ready=1,再对存贮器或I/O设备进行读/写或I/O操作 INTR:中断请求信号,输入,用来申请一个硬件中断。当IF=1时,若INTR保持高电平,则8086/8088在当前指令执行完毕后就进入中断响应周期(INTA变为有效)。,22,TEST: 这是一个测试输入信号,由WAIT指令来测试。若TEST为低电平,则WAIT指令的功能相当于NOP空操作指令;若TEST为高电平,则WAIT指令重复测试TEST引脚,直到它变为低电平。该引脚大多与8087算术协处理器相连。 NMI:非屏蔽中断输入信号。与INTR信号类似,但NMI中断不必检查IF标志位是否为1。若N
14、MI被激活,则该中断输入使用中断向量2。(NMI为上升沿触发) RESET:复位输入信号。若该引脚保持4个时钟周期以上的高电平,则导致微处理器复位。一旦8086或8088复位,其内部寄存器除CS置全1外,其他寄存器全部清零。所以CPU从存储单元FFFF0H开始执行指令,并使IF标志位清零,禁止中断。 CLK:时钟引脚,为微处理器提供基本的定时信号。 Vcc:电源输入,为微处理器提供+5.0V。 GND:接地引脚。注意,8086/8088微处理器有两个引脚均标为GND,为保持正常工作,二者必须都接地。 MN/MX:最小/最大模式引脚,输入,为微处理器选择最小模式或最大模式工作方式。若选择最小模式
15、,则该引脚必须直接接+5.0V。,23,2. 最小模式引脚 当MN/MX引脚直接连至+5.0V时,8088/8086工作于最小模式。 IO/M:输出,三态。该引脚选择存储器或I/O端口,即微处理器地址总线是存储器地址还是I/O端口地址。 RD:读信号输出,三态。当它为低电平时,数据总线接收来自存储器或与系统相连的I/O设备的数据。 WR:写选通信号,输出,三态。指示8088/8086正在输出数据给存储器或I/O设备。在WR为低电平期间,数据总线包含给存储器或I/O设备的有效数据。 INTA:中断响应信号,输出。响应INTR输入。该引脚常用来选通中断向量码以响应中断请求。 ALE:地址锁存允许输
16、出,三态。表明8088/8086的地址/数据总线包含地址信息。该地址可以是存储器地址或I/O端口地址。 DT/R:数据传送/接收信号,输出,三态。表明微处理器数据总线正在传送(DT/R=1)或接收(DT/R=0)数据。该信号用来允许外部数据总线缓冲器。,24,DEN:数据总线允许输出,三态。用来激活外部数据总线缓冲器。 HOLD:保持输入信号,用来请求直接存储器存取(DMA)。若HOLD信号为高电平,微处理器停止执行软件,并将其地址、数据、控制总线置成高阻抗状态。若HOLD信号为低电平,微处理器正常执行软件。 HLDA:保持响应信号,输出。指示8088/8086已进入保持状态。 SS0:SS0
17、状态线相当于微处理器最大模式下的S0引脚。该信号与IO/M及DT/R组合在一起,译码当前总线周期的不同功能(表2-2)。,表2-2 8088使用ss0的总线状态,25,3. 最大模式引脚: 为使微处理器工作于最大模式,从而与外部协处理器一起工作,应将MN/MX引脚接地。 S2,S1和S0:这些状态位显示当前总线周期的功能。它们通常由8288总线控制器译码。表2-3给出了这三个状态位在最大模式下的功能。,表2-3 总线控制器(8288)使用S2,S1和S0产生的总线控制功能,26,RQ/GT1和RQ/GT0:请求/同意引脚,在最大模式下请求直接存储器存取(DMA)。这两个引脚都是双向的,既可用于
18、请求DMA操作,又可用于同意DMA操作。 LOCK:锁定输出信号,用来锁定外围设备对系统总线的控制权。该引脚通过在指令前加前缀LOCK激活。 QS1和QS0:队列状态位,表明内部指令队列的状态。这些引脚被算术协处理器(8087)访问,以监视微处理器内部指令队列的状态。参看表2-4队列状态位的操作。,表2-4 队列状态位,27,课堂回顾,8086/8088CPU: 内部结构(两大功能部件):EU、BIU 存储器组织:物理地址、逻辑地址 内部寄存器(14个),4个通用寄存器 2个地址指针寄存器 2个变址寄存器 4个段寄存器 1 个指令指针寄存器 1个标志寄存器,8088CPU外部引线及功能,2.3
19、 8088CPU的工作时序及总线形成,2.3.1 8088 CPU的工作时序,29,时序的概念:CPU各引脚信号在时间上的关系。 时钟周期:每个时钟脉冲持续的时间,由时钟发生器产生。是计算 机内部最小的时间单位,用Ti表示。 总线周期:CPU完成一次访问内存(或接口)操作所需要的时间。 一个总线周期至少包括4个时钟周期。 例如: 某CPU的主频f= 5MHz,则其时钟周期T= 1/f = 1/5MHz = 200nS(1ns=10-9S)。若主频为100MHz,时钟周期为10nS。,图2-7 8088读周期的时序图,30,图2-8 8088写周期的时序图,31,2.3.2 8088 CPU在两种模式下的系统总线形成,最小模式下系统总线的形成: 采用三片8282地址锁存器来锁存地址,并驱动20位地址总线。,图2-9 8088最小模式总线形成,32,2. 最大模式下系统总线的形成: 采用一片8286双向总线驱动器来驱动数据总线,图2-10 8088最大模式总线形成,33,34,作 业 P39 1、2、3、4、5、6、11、12题,