微机原理 第2章_第1页
微机原理 第2章_第2页
微机原理 第2章_第3页
微机原理 第2章_第4页
微机原理 第2章_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第2 2章章微处理器结构1主要内容:微处理器的功能和结构8088/8086微处理器特点主要引线功能和内部结构内部寄存器实地址模式下的存储器寻址总线时序总线2一、微处理器及8088/8086CPU8088/8086CPU31. 1. 微处理器运算器控制器内部寄存器微处理器微处理器42. 2. 程序和指令指令:由人向计算机发出的、能够为计算机所识别的命令。程序:具有一定功能的指令的有序集合程序与指令的区别:指令可完成某一个动作,而程序是按照一定排列规则顺序排列的指令,与指令相比,程序具有完整性,复杂性等特点53.3. 指令执行的一般过程取指令取指部件,分析部件,执行部件指令译码读取操作数执行指令

2、存放结果64. 指令执行方式顺序执行方式:各功能部件交替工作,按顺序完成指令的执行过程。并行流水线方式:各功能部件并行工作。7顺序工作方式取指令取指令1执行执行指令指令1分析分析指令指令1CPU BUS(总线)(总线)忙碌忙碌忙碌忙碌取指令取指令2执行执行指令指令2分析分析指令指令28并行流水线工作方式 EU(执行单元)取指令取指令1执行执行指令指令1分析分析指令指令1CPU取指令取指令2执行执行指令指令2分析分析指令指令2取指令取指令3执行执行指令指令3分析分析指令指令3BIU(总线控(总线控制单元)制单元)忙碌忙碌忙碌忙碌忙碌忙碌忙碌忙碌忙碌忙碌9并行流水线工作方式的特点BIU和EU可以并

3、行工作,提高CPU效率。工作时,BIU监视着指令队列,当指令队列中有2个空字节时,就自动把指令取到队列中。EU执行指令时,从指令队列头部取指令,然后执行。如需访问存储器,则EU向BIU发出请求,由BIU访问存储器。在执行转移、调用、返回指令时,需改变队列中的指令,要等新指令装入队列中后,EU才继续执行指令。105. 8088/8086 CPU的特点Intel8086/8088、Z8000和MC68000为代表的16位微处理器是第3代产品,其性能已达到中、高档小型计算机的水平。20多年来,Intel系列CPU一直占着主导地位。虽然8086/8088后续的80286、80386、80486以及Pe

4、ntium系列CPU结构与功能已经发生很大变化,但从基本概念与结构以及指令格式上来讲,仍然是经典8086/8088CPU的延续与提升。其它系列流行的CPU(如AMD公司的6X86MX/M等)也与80 x86CPU兼容。115. 8088/8086 CPU的特点采用并行流水线工作方式 通过设置指令预取队列实现对内存空间实行分段管理 将内存分为4个段并设置地址段寄存器,以实 现对1MB空间的寻址支持多处理器系统CPU内部结内部结构构存储器寻存储器寻址部分址部分工作模式工作模式126. 8088CPU的两种工作模式8088可工作于两种模式下 最小模式 最大模式最小模式为单处理器模式。最大模式为多处理

5、器模式。136. 8088CPU的两种工作模式最小模式最小模式即系统中只有8086(或8088)一个微处理器。最小模式是单处理器系统。系统中所需要的控制信号全部由8086(或8088)CPU本身直接提供。最大模式最大模式系统中有两个或两个以上的微处理器,即除了主处理器8086(或8088)以外,还有协处理器(8087算术协处理器或8089 输入/输出协处理器)。最大模式可构成多处理器系统,系统中所需要的控制信号由总线控制器8288提供。14两种工作模式的选择方式8088是工作在最小还是最大模式由MN/MX引线的状态决定。MN/MX=0工作于最大模式MN/MX=1工作于最小模式15二、二、808

6、88088/8086/8086的引线及功能16总线周期的概念时序:时序:三种总线上出现的信息不但有严格的顺序,而且有准确的时间,称为定时或时序。时钟:时钟:时钟脉冲发生器产生具有一定频率和占空比的脉冲信号,称之为机器的主脉冲或时钟。主频:主频:时钟的频率,是机器的一个重要指标。时钟周期:时钟周期:主频的倒数,是CPU的基本时间计量单位。也叫一个T周期或T状态,或一个节拍。8086主频为5MHz,则一个时钟周期为200ns。总线周期:总线周期:在取指令和传送数据时,CPU总线接口部件占用的时间称为总线周期或机器周期。17总线周期的概念一个最基本的总线周期由4个时钟周期组成:用T1,T2,T3,T

7、4表示18总线周期的概念T1状态:CPU往多路复用总线上发送地址信息,选中所要寻址的存储单元或外设端口地址。T2状态:CPU从总线上撤销地址,并使总线的低16位浮置成高阻状态,为传送数据作准备。T3状态:总线的高4位继续提供状态信息,低16位将出现由CPU写出的数据,或CPU从存储器或者外设端口读入的数据。Tw状态:有些情况下,I/O或M不能及时配合CPU传送数据,在T3状态启动之前它会通过READY 引脚向CPU发一个“未准备好”信号。于是,CPU在T3状态之后自动插入若干个时钟周期Tw。直至CPU接受到“准备好”信号,自动脱离Tw状态进入T4。T4状态:总线周期结束。空闲周期TI:两个总线

8、周期之间,若干个。198086/8088引脚分布201. 1. 主要引线最小模式下的最小模式下的80888088引线引线地址线和数据线:AD0AD7:低8位地址和低8位数据信号分时复用。在传送地址信号时为单向,传送数据信号时为双向。A8A15 :8位地址信号A16A19:高4位地址信号,与状态信号分时复用。21主要的控制和状态信号WR:写信号;RD:读信号;IO/M:为“0”表示访问内存, 为“1”表示访问接口;DEN:低电平有效时,允许进行读/写操作;DT/R:数据收发器的传送方向控制; ALE:地址锁存信号;RESET:复位信号。22例:当WR=1,RD=0,IO/M=0时, 表示CPU当

9、前正在进行读存储器操作23中断请求和响应信号INTR:可屏蔽中断请求输入端NMI: 非屏蔽中断请求输入端INTA:中断响应输出端24总线保持信号HOLD:总线保持请求信号输入端。当CPU以外的其他设备要求占用总线时,通过该引脚向CPU发出请求。HLDA:总线保持响应信号输出端。CPU对HOLD信号的响应信号。252. 2. 80888088和8086CPU8086CPU引线功能比较数据总线宽度不同8088的外部总线宽度是8位,8086为16位。访问存储器和输入输出控制信号含义不同8088IO/M=0表示访问内存;8086IO/M=1表示访问内存。其他部分引线功能的区别AD15AD0的定义不同:

10、在8086中都定义为地址/数据复用总线;而在 8088中,由于只需用8条数据总线,因此,对应予8086的AD15AD8这8条引脚,只作地址线使用。34号引脚的定义不同:在8086中定义为BHE信号;而在8088中定义为SS0,它与DT/R,IO/M一起用作最小方式下的周期状态信号。28号引脚的相位不同: 在8086中为M/IO;而在8088中被倒相,改为IO/M,以便与8080/8085系统的总线结构兼容。26三、三、80888088/8086/8086的内部结构271. 1. 组成8088/8086内部由两部分组成: 执行单元(EU) 总线接口单元(BIU)281. 1. 组成291. 1.

11、 组成总线接口单元(Bus Interface Unit(Bus Interface Unit,BIU)BIU):负责完成CPU与存储器或I/O设备之间的数据传送。即BIU从内存预取指令送到指令队列缓冲器;CPU执行指令时,BIU配合EU对指令的内存单元或I/O端口存取数据。执行单元(Execution Unit(Execution Unit,EU)EU):负责执行指令,即执行的指令从BIU的指令队列缓冲器中取得;指令执行的结果或所需要的数据,由EU向BIU发出请求;再由BIU对存储器或I/O端口进行存取。30总线接口单元组成 4个16位段地址寄存器代码段寄存器(Code Segment):取

12、得CPU所执行的指令。数据段寄存器(Data Segment):存放程序所使用的数据。堆栈段寄存器(Stack Segment):堆栈操作的执行地址在此段中。附加段寄存器(Extra Segment):也用来存放数据。16位指令指针寄存器IP6字节指令队列缓冲器20位地址加法器总线控制器3116位指令指针(Instruction Pointer, IP) IP中含有BIU要取的下一条指令(字节)的偏移地址。IP在程序运行中自动加1,指向要执行的下一条指令(字节)。有些指令能使IP值改变或使IP值压进堆栈,或由堆栈弹出恢复原址。32指令队列缓冲器用于存放预取的指令。8086指令队列为6个字节,而

13、8088指令队列为4个字节。在执行指令的同时,从内存中取下面1条或几条指令,取来的指令依次放在指令队列中。采用“先进先出”的原则。33指令队列缓冲器“先进先出”原则,按顺序存放,并按顺序取到EU中去执行。取指时,当指令队列缓冲器中存满1条指令,EU开始执行;指令队列缓冲器中只要空出两个(8088空出一个)指令字节时,BIU便自动执行取指操作,直到填满时为止。EU执行指令时,如需对内存单元或I/O设备存储数据时,BIU将在执行完现行取指的存储器周期后的下一个存储器周期,对内存单元或I/O设备进行存取操作,交换的数据经BIU由EU进行处理。当EU执行完转移、调用和返回指令时,要清除指令队列缓冲器,

14、并要求BIU从新的地址重新执行。34地址加法器和段寄存器8086有20根地址线,内部寄存器只有16位。“段加偏移”技术:段寄存器存放确定各段起始地址的16位段地址信息。由IP提供或由EU按寻址方式计算出寻址单元的16位偏移地址,也称为逻辑地址或简称偏移量。将偏移地址与左移4位后的段寄存器内容同时送到地址加法器,相加后形成20位实际地址。35执行单元组成 16位算术逻辑单元(ALU)算术、逻辑运算,计算16位偏移量16位标志寄存器FCPU的运算状态特征或存放控制标志数据暂存寄存器协助ALU完成运算通用寄存器组4个16位数据寄存器,4个16位指针与变址寄存器EU控制电路控制、定时与状态逻辑电路36

15、总线接口单元功能功能:从内存中取指令到指令预取队列指令预取队列是并行流水线工作的基础负责与内存或输入/输出接口之间的数据传送在执行转移程序时,BIU使指令预取队列复位,从指定的新地址取指令,并立即传给执行单元执行。37执行单元功能功能指令译码指令执行暂存中间运算结果保存运算结果特征指令的执行在标志寄存器FLAGS中在ALU中完成在通用寄存器中38结论指令预取队列的存在使EU和BIU两个部分可同时进行工作,从而:提高了CPU的效率;降低了对存储器存取速度的要求39四、内部寄存器40内部寄存器的结构8086/8088的内部寄存器编程结构共有8个通用寄存器,4个段寄存器和2个控制寄存器41通用寄存器

16、 数据寄存器(AX,BX,CX,DX) 地址指针寄存器(SP,BP) 变址寄存器(SI,DI)42通用寄存器数据寄存器4个16位:AX,BX,CX,DX8个8位:AH,AL;BH,BL;CH,CL;DH,DL多数情况下,用于算术运算或逻辑运算指令中。有些指令中,有特定的用途。43通用寄存器AX:累加器;所有I/O指令都通过AX与接口传送信息,中间运算结果也多放于AX中;BX:基址寄存器;在间接寻址中用于存放基地址;CX:计数寄存器;用于在循环或串操作指令中存放计数值;DX:数据寄存器。在间接寻址的I/O指令中存放I/O端口地址;在32位乘除法运算时,存放高16位数。44通用寄存器指针寄存器和变

17、址寄存器(16位,存放偏移地址)指针寄存器(P组):堆栈指针寄存器SP和基址指针寄存器BP。指示存取位于当前堆栈段中数据所在的地址。SP(Stack Pointer):给出栈顶的偏移地址(入栈和出栈指令时)。BP(BasePointer):存放位于堆栈段中的数据区基地址的偏移地址。45通用寄存器指针寄存器和变址寄存器(16位,存放偏移地址)变址寄存器(I组):源变址寄存器SI和目的变址寄存器DI。存放当前数据段的偏移地址。SI(Source Index):源操作数的偏移地址。DI(Destination Index):目的操作数的偏移地址。46通用寄存器47BXBX与BPBP在应用上的区别作为

18、通用寄存器,二者均可用于存放数据;作为基址寄存器,用BX表示所寻找的数据在数据段;用BP则表示数据在堆栈段。48段寄存器段寄存器是为实现“段加偏移”寻址基址而设置的。4个16位段寄存器,8086/8088指令可直接访问。CS(Code Segment):存放代码段的段地址。SS(Stack Segment):存放堆栈段的段地址。DS(Data Segment):存放数据段的段地址。ES(Extra Segment):存放附加段的段地址,用于存放处理后的数据。49段寄存器8086/8088 CPU有20条地址线,具有寻址1MB存储空间。8086/8088指令中给出的地址码仅有16位,指针寄存器和

19、变址寄存器也只有16位长,不能直接寻址1MB大小的内存空间。用8086/8088 CPU内部一组16位段寄存器内容作为段地址,再由段寄存器左移4位形成20位的段起始地址,称为段基地址或段基址。这样,8086/8088就有可能寻址1MB存储空间。将1MB存储空间分成为若干个逻辑段,使每个逻辑段的长度为64KB(它由16位的偏移地址限定)。50控制寄存器IP指令指针寄存器,其内容为下一条要执行指令的偏移地址。FLAGS标志寄存器,存放运算结果的特征6个状态标志位(CF,SF,AF,PF,OF,ZF)3个控制标志位(IF,TF,DF)51标志寄存器8086/8088 标志寄存器F为16位,用了其中9

20、位。6个状态标志位:CF,PF,AF,ZF,SF,OF3个控制标志位:TF,IF,DF52状态标志位状态标志位:反映算术或逻辑运算后结果状态,记录CPU 的状态特征。CF(Carry Flag):进位标志,D0位。执行结果在最高位上,产生了一个进位或借位,CF=1;无进位或借位,CF=0。会受循环指令影响。PF(Parity Flag):奇偶性标志,D2位。执行结果的低8位中有偶数个“1”时,PF=1;否则PF=0。用于机器中传递信息时,对产生的代码出错情况提供检测条件。现代程序设计已较少用。53状态标志位AF(Auxiliary Flag):辅助进位标志,D4位。执行结果的低4位向高4位有进

21、位或借位时,AF=1;否则AF=0。一般用在BCD码运算中。ZF(Zero Flag):零标志,D6位。如运算结果为零,ZF=1;如运算结果不为零,ZF=0。54状态标志位SF(Sign Flag):符号标志,D7位。如运算结果为负数,SF=1;如运算结果为正数,SF=0。OF(Overflow Flag):溢出标志,D11位。如带符号数在进行算术运算时产生了溢出,OF=1;如无溢出,OF=0。溢出表示运算结果已经超出机器能够表示的数值范围。55状态标志位给出以下运算结果及运算后各状态标志位的状态:10110110+11110100 10110110 + 11110100 101010101C

22、F= OF=AF= PF=SF= ZF=10111056控制标志位控制标志位:控制CPU的操作,由程序设置或清除。DF(Direction Flag):方向标志,D10位。控制数据串操作指令的步进方向。若用指令STD将DF=1,数据串操作过程中地址自动递减;若用指令CLD将DF=0,则地址自动递增。TF(Trap Flag):跟踪(陷井)标志,D8位。为调试程序方便而设置的。若TF=1,CPU处于单步工作方式;若TF=0,正常执行程序。57控制标志位IF(Interrupt Flag):中断允许标志,D9位。控制可屏蔽中断。若用指令STI将IF=1,允许接受外部从INTR引脚发来的可屏蔽中断请

23、求;若用指令CLI将IF=0,禁止接受外部发来的可屏蔽中断请求。IF的状态不影响非屏蔽中断(NMI)请求,也不影响CPU相应内部的中断请求。58五、存储器寻址59存储器组织20条AB,寻址1M存储空间;按字节组织,每个字节唯一地址;字节:顺序存放字:低位字节放在低地址中高位字节放在高地址中双字:低位字是偏移量高位字是段地址规则字:低位字节存放在偶数地址非规则字:低位字节存放在奇数地址60存储器组织字节的存取需要1个总线周期。61存储器组织规则字的存取需要1个总线周期,非规则字的存取需要2个总线周期。62存储器组织1MB 存储空间,分成2个512KB的存储体(存储库);低位库:与数据总线D0D7

24、相连,每个地址为偶数地址。高位库:与数据总线D8D15相连,每个地址为奇数地址。63存储器组织地址总线A1A19可同时对高、低位库的存储单元寻址,A0或BHE用于库的选择,分别接到库选择端SEL。64存储器组织8088系统中,寻址空间1MB,单一的存储体,1M8位。20根地址线与8根数据线分别同8088CPU的对应地址线和数据线相连。8088CPU每访问1次存储器只读/写1个字节信息。任何数据字都需要两次访问存储器才能完成读/写操作。8088系统中,程序运行速度比在8086系统中慢些。65存储器分段20根地址总线,允许寻址1MB存储空间;IP、SP、SI、DI 都是16位,直接寻址大空间64K

25、B;为了寻址1MB存储空间,实行分段管理,每一段最长为64KB。段和段之间关系的:连续、分开、部分重叠、完全重叠;66存储器分段每个段大小可从一个字节开始,任意递增,最多包含64KB长的连续存储单元;每个段的20位起始地址(段基址),是能被16整除的数,即最后4位为零,可通过程序在段寄存器中装入16位段地址来设置;段地址是20位段基址的前16位。1个程序所用的具体存储空间:1个或多个逻辑段;段基址存在CS、SS、DS、ES中,程序可从中给出的逻辑段中存取代码和数据;段区的分配是由操作系统完成的,系统允许程序员指定。67实际地址和逻辑地址实际地址(也称为物理地址):CPU对存储器进行访问时的实际

26、寻址所使用的地址,对8086/8088来讲,用20位二进制数或5位十六进制数表示。逻辑地址:程序和指令中表示的一种地址,由段地址和偏移地址两部分组成,用无符号的16位二进制或4位十六进制数表示。段地址:16位段寄存器直接给出的16位地址。偏移地址(也称为偏移量或偏移):由指令寻址时的寄存器组合与位移量之和,16位的偏移量。表示所寻址的地址单元距离段起始地址之间的偏移。68实际地址和逻辑地址69实际地址和逻辑地址段地址来源于:CS,DS ,SS,ES偏移地址来源于:IP,SP,BP,SI,DI70BIU根据执行操作的种类和要取得的数据类型来确定堆栈8086/8088系统中的堆栈是用段定义语句在存

27、储器中定义的一个堆栈段,如同其它逻辑段,可在1MB的存储空间中浮动。一个系统堆栈数目不受限制,栈长度不超过64KB。堆栈由段寄存器SS和堆栈指针SP来寻址SS:给出堆栈段的段基址;SP:给定当前栈顶,即指出从堆栈的段基址到栈顶的偏移量。栈顶是堆栈操作的唯一出口,是栈地址较小的一端。71堆栈为加快堆栈操作的速度,均以字为单位进行。72“段加偏移”寻址机制允许重定位重定位:一个完整的程序块或数据块,可在存储器所允许的空间内任意浮动,并定位到一个新的可寻址的区域。“段加偏移”寻址机制允许重定位(或再定位)是一种重要特性。原来为8086在实模式下运行所编写的程序,在以后80286以上高型号微处理器中,

28、当系统由实模式转换为保护模式时也可运行。各种通用计算机系统在运行同一软件和数据时能够保持兼容性。73存储器的保护模式保护模式:支持多任务的工作模式,提供了多任务保护机制;内存段的访问受到限制,不能再随意存取数据段。 保护模式下的内存访问不再直接从段寄存器中获得段基地址,段基地址存放在内存的段描述符表中,由段描述符寄存器给出段描述符表的基地址,段寄存器中仅存放段选择符。74保护模式下的存储器地址变换75内部寄存器小结全部为16位寄存器只有4个数据寄存器分别可分为2个8位寄存器所有16位寄存器中:全部通用寄存器中,只有AX和CX中的内容一定为参加运算的数据,其余通用寄存器中的内容可能是数据,也可能

29、是存放数据的地址;SP中的内容通常为堆栈段的栈顶地址;段寄存器中的内容为相应逻辑段的段地址;IP中的内容为下一条要取的指令的偏移地址;FLAGS中有9位标志位76实模式下的存储器寻址小结每个内存单元在整个内存空间中都具有惟一地址每个内存单元的地址都由两部分组成:段基地址段内相对地址(偏移地址)段基地址决定了逻辑段在内存中所占的区域,改变段基地址,则改变了逻辑段的位置。一个逻辑段的默认长度为64KB,最小长度值为16B。逻辑段可以有多个,但只有4种类型。在一个程序模块中,每种类型的逻辑段最多只能有一个。77六、总线时序78时序时序:CPU各引脚信号在时间上的关系总线周期:CPU完成一次访问内存(或接口)操作所需要的时间。一个总线周期至少包括4个时钟周期。79七、80888088系统总线80主要内容:总线的基本概念和分类;总线的工作方式;常用系统总线标准。811. 概述总线: 是一组导线和相关的控制、驱动电路的集合。是计算机系统各部件之间传输地址、数据和控制信息的通道。地址总线(地址总线(AB)数据总线

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论