1第二章8086系统结构2.38088/8086的存储器组织2.48086的系统配置及引脚功能2.58086CPU时序2.1概述2.28086CPU结构2第二章8086系统结构2.1.1CPU的主要性能指标CPU的主要性能指标有数据宽度(或称字长)、寻址能力、工作频率(或主时钟频率)、体系结构、指令系统等。一、数据宽度(字长)CPU的字长是指CPU一次所能处理的二进制数的位数,是表示运算器性能的主要技术指标,一般它等于CPU数据总线的宽度。CPU字长越长,运算精度越高,处理信息速度越快,性能也越高。一般按CPU的字长来划分CPU的档次,常见的CPU字长有8位、16位、32位和64位。2.1概述3二、寻址能力(或寻址范围)寻址能力往往是指CPU能直接存取数据的内存地址的范围,这是由CPU的地址总线引脚的数目来决定的。通常用K(千)或M(兆)来表示(1K=1024个地址;1M=1024K;1G=1024M等)。例如,8088CPU的地址总线为20根,则可直接寻址的物理地址可达1M,而80286CPU的地址线有24根,则其寻址能力为16M,而386/486/586CPU的地址线为32根,故可直接寻址的物理地址达4G。三、运算速度CPU的运算速度通常用每秒执行基本指令的条数来表示,常用的单位是MIPS(MillionInstructionPerSecond),即每秒执行的百万条指令数,是CPU执行速度的一种表示方式。然而对于某一特定的CPU,其MIPS值并非定值,得出的数据会因CPU正在执行的软件的不同而不同。42.1.2CISC与RISC结构按计算机的指令系统来区分,可分为CISC结构的CPU和RISC结构的CPU。CISC(即ComplexInstructionSetComputer:复杂指令集计算机)和RISC(即ReducedInstructionSetComputer:精简指令集计算机)分别代表了两种不同理论的CPU设计学派。在过去的数十年间,两种理论各有不少支持者,也有许多按CISC和RISC理论设计的CPU问世。一、CISC结构CISC结构的CPU是指能够识别处理100种以上汇编指令的处理器。8088,80286等,都是按CISC理论设计的,由此可见CISC对当今微处理器的发展有相当大的影响。CISC的处理功能很强,但执行指令的时钟周期也较长,使CPU的速度减慢了。5二、RISC结构RISC将机器指令简化,提供有限数量的常用和必须的指令,从而简化了CPU芯片的复杂程度,节省了芯片空间。与CISC结构比较,RISC具有速度较快、生产成本相对较低、调试方便的特点。2.1.3CPU三总线微处理器是大规模集成电路的CPU,无论什么型号的CPU,其外部管脚信号线按功能可分为四类:地址总线、数据总线、控制信号总线、电源线。其中地址总线(AB)、数据总线(DB)、控制总线(CB)统称为CPU三总线。6地址总线是从CPU发送出去,用来传递地址信息。地址总线的位数决定了CPU可以直接寻址的内部存储器地址空间的大小,它是单向的。数据总线则是CPU与存储器、I/O设备之间进行相互数据传递的通道,因此是双向的。控制总线是用来传递控制信号的,一部分是CPU向外发送给存储器、I/O接口电路的控制信号,另一部分是外部接口电路给CPU传来的控制信号。上述三总线的逻辑关系一般是:CPU在工作过程中,先有地址信号,然后在控制信号的作用下,通过数据总线传递数据,三者是并行的。其中8086/8088CPU管脚的特点是,地址总线和数据总线是分时复用的,而且某些控制信号线也具有双重功能,在特定的工作方式下,完成一个特定的功能。电源线包括正电源线和地线。7•2.28086CPU结构标志寄存器ALUDIDHSPSIBPDLALAHBLBHCLCHESSSDSCS内部暂存器输入/输出控制电路1432EU控制系统20位16位8086总线指令队列总线接口单元执行单元6516位一、8086CPU的内部结构属第三代微处理器运算能力:数据总线:DB-16bit(8086)/8bit(8088)地址总线:AB-20bit内存寻址能力220=1MB8ESSSDSCS内部寄存器输入/输出控制电路143220位16位8086总线指令队列总线接口单元6516位IP1.总线接口部件BIU(BusInterfaceUnit)组成:16位段寄存器,指令指针,20位地址加法器,总线控制逻辑,6字节指令队列。作用:负责从内存指定单元中取出指令,送入指令流队列中排队;取出指令所需的操作数送EU单元去执行。工作过程:由段寄存器与IP形成20位物理地址送地址总线,由总线控制电路发出存储器“读”信号,按给定的地址从存储器中取出指令,送到指令队列中等待执行。*当指令队列有2个或2个以上的字节空余时,BIU自动将指令取到指令队列中。若遇到转移指令等,则将指令队列清空,BIU重新取新地址中的指令代码,送入指令队列。*指令指针IP由BIU自动修改,IP总是指向下一条将要执行指令的地址。92.指令执行部件EU(ExecutionUnit)组成:通用寄存器,标志寄存器,ALU,EU控制系统等。标志寄存器ALUDIDHSPSIBPDLALAHBLBHCLCHEU控制系统作用:负责指令的执行,完成指令的操作。工作过程:从队列中取得指令,进行译码,根据指令要求向EU内部各部件发出控制命令,完成执行指令的功能。若执行指令需要访问存储器或I/O端口,则EU将操作数的偏移地址送给BIU,由BIU取得操作数送给EU。103.8086CPU结构的特点:减少了CPU为取指令而等待的时间,提高了CPU的运行速度。取指1执行1取指1取指4取指3取指2忙执行3执行4执行2忙忙忙执行1执行2执行3执行4取指2取指3取指4取指6取指5执行6执行5忙忙忙忙忙忙CPUBUSEUBIUBUStt11AHDHCLCHBLBHALDLAXBXCXDX累加器基数计数数?据SP(堆栈指针)BP(基数指针)DI(目的变址)SI(源变址)F(状态标志)IP(指令指针)DS(数据段)?CS(码段)ES(附加段)SS(堆栈段)?二、8088/8086的寄存器结构1.通用寄存器组3.2个控制寄存器4.4个段寄存器8088/8086有14个16位寄存器2.指针/变址寄存器12*4个16位的数据寄存器(AX,BX,CX,DX)寄存器既可存放数据,也可存放地址。1.通用寄存器组寄存器操作AX字乘/除指令中作为累加器,字I/O指令中作为数据寄存器AL字节乘/除指令,字节I/O,转移,十进制运算AH字节乘/除指令(高八位/余数),XLAT指令中作为目的寄存器BX作为地址/基址寄存器CX串操作时,循环计数器CL变量位移或循环操作时用作计数器DX字乘/除指令(高十六位/余数),I/O间接寻址*既可作为16位寄存器也可作为8位寄存器使用。(例:AH,AL)8bit寄存器只能存放数据。*各寄存器隐含用法*通用性强,对任何指令都具有相同的功能132.指针及变址寄存器(SP,BP,SI,DI)SP堆栈指针BP在间址寻址中作基址指针SI地址和变址寄存器,串操作时的源变址寄存器(隐含)DI地址和变址寄存器,串操作时的目的变址寄存器(隐含)*BP,SP寄存器称为指针寄存器,与SS联用。*DI,SI寄存器称为变址寄存器,与DS联用,在串指令中,SI,DI均为隐含寻址,此时,SI与DS联用,DI与ES联用。143.指令指针和状态寄存器(1)指令指针IP是一个16位的专用寄存器。当BIU从内存中取出一条指令,自动修改IP,始终指向下一条将要执行的指令在现行代码段中的偏移量。8086/8088中的某些指令执行后会改变IP的内容,但用户不能编写指令直接改变IP的内容。*IP是指令地址在代码段内的偏移量(又称偏移地址),IP要与CS配合构成共同物理地址。(2)状态(标志)寄存器PSWPSW是一个16位的专用寄存器(6位状态位,3位控制位)存放运算结果的特征。15CF(进位标志):当运算结果的最高位(D7/D15)出现进位(借位)时,CF=1;PF(奇偶校验标志):当运算结果中“1”的个数为偶数时,PF=1;AF(辅助进位标志):当结果的D3向D4(低位字节)出现进位(借位)时,AF=1;ZF(零标志):当运算结果为零时,ZF=1;SF(符号标志):当运算结果的最高位D7/D15为1时,SF=1;OF(溢出标志):当运算结果超过机器所能表示的范围时,OF=1;DF(方向标志):在字符串操作时,决定操作数地址调整的方向,DF=1,为递减;IF(中断允许标志):IF=1,允许CPU响应外部的可屏蔽中断;TF(陷阱标志):当TF=1,CPU每执行一条指令便自动产生一个内部中断,在中断服务程序中可检查指令执行情况。OFDFIFTFSFZFAFPFCFD0D2D4D6D15D11D8164.段寄存器*CS(代码段寄存器)指向当前的代码段,指令由此段取出;*SS(堆栈段寄存器)指向当前的堆栈段,栈操作的对象是该段存储单元的内容;*DS(数据段寄存器)指向当前的数据段,该段中存放程序的操作数;*ES(附加段寄存器)指向当前的附加段,主要用于字符串数据的存放,也可以用于一般数据的存放。8086/8088按信息存储的不同性质分为四类,分别由四个段寄存器存放该段的首地址,或称为段地址。172.38088/8086的存储器组织一、存储器地址的分段矛盾:存储器地址空间1MB,20bit地址线;内部各寄存器和数据总线均为16bit。段1段2段16段300000H0FFFFH10000H1FFFFH20000H2FFFFHF0000HFFFFFH1.存储器地址的分段解决方法:将整个存储器分为若干个逻辑段,每段内地址16bit,即最多地址空间64KB。允许各逻辑段在整个存储空间浮动,段与段之间可以是连续的,也可以是分开的或重叠的。1800000H逻辑段2=64KB逻辑段1起点逻辑段2起点逻辑段3起点逻辑段4起点FFFFFH逻辑段1=64KB逻辑段4=64KB逻辑段3=64KB每个段的首地址称为“段基值”,“段基值”必须能被16整除(XXXX0H)。程序执行前,分别对相应的段寄存器CS,DS,SS,ES置“段基值”,若程序长度大于64KB,则可通过对CS送新的“段基值”将程序转移到新段中。19逻辑地址:允许在程序中编排的地址;2.20位物理地址的形成物理地址:信息在存储器中实际存放的地址;对给定的任一存储单元,有两部分逻辑地址:段基址(段地址)——由CS,DS,SS,ES决定段内偏移量(段内有效地址)——(该单元相对于段基址的距离)段地址0000段内有效地址+0000物理地址(20bit)16bit16bit20bit203.逻辑地址的来源;操作类型隐含段地址替换段地址偏移地址取指令CS无IP堆栈操作SS无SPBP间址SSCS、DS、ESEA存/取操作数DSCS、SS、ESEA源字符串DSCS、SS、ESSI目的字符串ES无DIEA---有效地址,211.问题的提出:二、8086存储器的分体结构8位机(MCS-51、8088)的存储器地址空间和数据存储格式以字节(8bit)为单位组织存储器地址空间,访问一次存储器,获得一个字节的数据。而8086CPU的数据总线为16位,CPU除了可以对一个字节寻址外,还必须能进行一个字的读写。即:如何组织数据存储格式使CPU访问一次存储器,获得一个字的数据。22硬件条件:(1)将1M的存储空间分成两个存储体:偶地址和奇地址存储体00000000010000200004FFFFEFFFFF0000300005512K*8bitA0=0512K*8bitA0=1D0D7D8D15(2)将数据总线的低8位与偶地址存储体数据线相连,数据总线的高8位与奇地址存储体数据线相连。(3)用地址线A0和BHE信号选择存储体238086地址锁存器奇存储体偶存储体A1—A19A0BHEA0—A19BHED0—D7D8—D15BHEA0操作总线使用情况00从偶地址开始读/写一个字AD15--AD001从奇地