配色: 字号:
80868088微处理器处理器结构和内部工作原理
2012-10-23 | 阅:  转:  |  分享 
  
8086/8088微处理器——处理器结构和内部工作原理8086/8088微处理器8086/8088微处理器是
Intel公司推出的第三代CPU芯片,它们的内部结构基本相同,都采用16位结构进行操作及存储器寻址,但外部性能有所差异,两种处理器
都封装在相同的40脚双列直插组件中。8088/8086的内部结构8088/8086CPU的编程结构8088/8086CPU的
编程结构通用寄存器组8086/8088有4个16位的数据寄存器(AX、BX、CX、DX),可以存放16位的操作数
,也可分为8个8位的寄存器(AL、AH;BL、BH;CL、CH;DL、DH)来使用。其中AX称为累加器,BX称为基址寄存器,CX称
为计数寄存器,DX称为数据寄存器,这些寄存器在具体使用上有一定的差别。8088/8086CPU的编程结构8088/8086CP
U的编程结构控制寄存器IP、标志寄存器是系统中的两个16位控制寄存器,其中IP是指令指针寄存器,用来控制CPU的指
令执行顺序,它和代码段寄存器CS一起可以确定当前所要取的指令的内存地址。顺序执行程序时,CPU每取一个指令字节,IP自动加1,指向
下一个要读取的字节;当IP单独改变时,会发生段内的程序转移;当CS和IP同时改变时,会产生段间的程序转移。标志寄存器的内
容被称为处理器状态字PSW,用来存放8086CPU在工作过程中的状态。8088/8086的标志寄存器8088/8086CPU
的编程结构段寄存器系统中共有4个16位段寄存器,即代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附加
段寄存器ES。这些段寄存器的内容与有效的地址偏移量一起,可确定内存的物理地址。通常CS划定并控制程序区,DS和
ES控制数据区,SS控制堆栈区。8086的存储器组织8086/8088微处理器内部工作原理BIU和EU的动作协调原则
将8086/8088CPU分成二个独立的功能部件使二者能够并行工作,把取指令工作和分析指令、执行指令工作重叠进行,从而提
高CPU的工作效力,加快指令的执行速度。指令队列可以被看成是一个特殊的RAM,它的工作原理是"先进先出",写入的指令只能存放在队列
尾,读出的指令是队列头存放的指令。EU和BIU之间就是通过指令队列联系起来,多数情况下,BIU在不停地向队列写入指令,而EU每执行
完一条指令后,就向队列读取下一条指令。二者的动作既独立,又协调。8086/8088内部工作原理BIU和EU的动作协调原则BI
U和EU按以下流水线技术原则协调工作,共同完成所要求的任务:①每当8086的指令队列中有两个空字节,BIU就会自动把指令取到指令
队列中。其取指的顺序是按指令在程序中出现的前后顺序。②每当EU准备执行一条指令时,它会从BIU部件的指令队列前部取出指令的代码,
然后用几个时钟周期去执行指令。在执行指令的过程中,如果必须访问存储器或者I/O端口,那么EU就会请求BIU,进入总线周期,完成访问
内存或者I/O端口的操作;如果此时BIU正好处于空闲状态,会立即响应EU的总线请求。如BIU正将某个指令字节取到指令队列中,则BI
U将首先完成这个取指令的总线周期,然后再去响应EU发出的访问总线的请求。③当指令队列已满,且EU又没有总线访问请求时,BIU便进
入空闲状态。④在执行转移指令、调用指令和返回指令时,由于待执行指令的顺序发生了变化,则指令队列中已经装入的字节被自动消除,BIU
会接着往指令队列装入转向的另一程序段中的指令代码。小结1、本讲内容课前回顾上次课主要内容计算机的基本结构
计算机中数据的表示方法微机系统与微处理器基本概念本次课内容主要内容8088(8086)微处理器的内部结构8088(80
86)的编程结构8088(8086)的存储器组织8088(8086)的内部工作原理重难点重点8088(8086)
的编程结构难点8088(8086)的内部工作原理英特尔微处理器芯片80386酷睿双核Pentium440048
0088085外部总线内部暂存器IPESSSDSCS输入/输出控制电路执行部分控制电
路1234∑ALU标志寄存器AHALBHBLCH
CLDHDLSPBPSIDI通用寄存器地址加法器指令队列缓
冲器运算执行模块(EU)总线接口模块(BIU)16位20位16位8位通用寄存器标志寄存器:16位字利用了9位。
标志分两类:状态标志(6位):反映刚刚完成的操作结果情况。控制标志(3位):在某些指令操作中起控制作用。运算执行模块功能
:负责分析指令和执行指令。总线接口模块功能:负责从内存中取指令,送入指令队列,实现CPU与存储器和I/O接口之间的数据传送
。四个段寄存器:CS管理代码段;DS管理数据段SS管理堆栈段;ES管理附加段.16位的指令指针寄存器IP:IP中的内容是
下一条指令对现行代码段基地址的偏移量,20位地址加法器四个专用寄存器SP:堆栈指针,其内容与堆栈段寄存器SS的
内容一起,提供堆栈操作地址。BP:基址指针:构成段内偏移地址的一部分.SI:(Source
Index):SI含有源地址意思,产生有效地址或实际地址的偏移量。DI:(Destina
tionIndex):DI含有目的意思,产生有效地址或实际地址的偏移量。4字节的指令队列指令队
列共四字节,总线接口部件BIU从内存取指令,取来的总是放在指令队列中;执行部件EU从指令队列取指令,并执行。算术逻辑单元
ALU:主要是加法器。大部分指令的执行由加法器完成。SP堆栈指针
BP基址指针SI源变址
指针DI目的变址指针数据寄存器地址指针及变址寄存器控制寄存器组段
寄存器组AXAHAL累加器BXBHBL基址寄存器CX
CHCL计数寄存器DXDHDL数据寄存器通用寄存器组1
5870IP指令指针FLAG(PSW)
标志寄存器CS代码段寄存器DS
数据段寄存器SS堆栈段寄存器ES
附加段寄存器字节乘,字节除,间接I/ODX变量移位,循环控制CL串操作,循环次数CX转移BX字节
乘,字节除AH字节乘,字节除,字节I/O,十进制算术运算AL字乘法,字除法,字I/OAX用途寄存器
通用寄存器组系统中有两个16位的指针寄存器SP和BP,其中SP是堆栈指针寄存器,由它和堆栈段寄存器SS一起来确
定堆栈在内存中的位置;BP是基数指针寄存器,通常用于存放基地址。系统中有两个16位的变址寄存器SI和DI,其中SI是
源变址寄存器,DI是目的变址寄存器,都用于指令的变址寻址方式。1514131211109876543
2101514131211109876543210CFPFOFDFIFTFSF
ZFAFCFPFAFZFSFTFIFDFOFCF:进位标志当执行一个加法运算使最高位产生进位时,或执
行一个减法运算引起最高位产生借位时CF=1,否则CF=0。此外循环指令也会影响这一标志。SF:符号标志与运算结果的最高
位相同,当数据用补码表示时,负数的最高位为1,所以符号标志表示运算执行后的结果是正还是负。ZF:零标志当前的运算结果为
零ZF=1,当前的运算结果为非零ZF=0。PF:奇/偶标志运算结果的低8位中所含的1的个数为偶数PF=1,否则PF=0。
AF:辅助进位标志加法运算时,如果第3位往第4位有进位,减法运算时,第3位往第4位有借位AF=1。OF:溢出标志运算过
程产生溢出时OF=1。DF:方向标志控制串操作指令用的标志,DF=0串操作过程中的地址会不断增值,DF=1串操作过程中的地
址会不断减值。IF:中断标志控制可屏蔽中断的标志,IF=0CPU不能对可屏蔽中断请求作出响应,IF=1CPU可接受可屏
蔽中断请求。TF:跟踪标志TF=1,CPU按跟踪方式执行指令。控制标志状态标志8088/8086CPU的编程结构10
001101001101100011001000011001+0
110011010101001运算结果最高位为1 ∴SF=1;例:2个数相加后,分析各标志位的值
第三位向第四位有进位 ∴AF=1;次高位向最高位有进位,最高位向前没有进位,∴OF=1?0=
1最高位没有进位 ∴CF=0;低8位中1的个数为偶数个 ∴PF=1;运算结果本身
≠0 ∴ZF=0;8086有20根地址线,具有1M字节的存储器地址空间。这1M字节的内存单元按照00000~FFFFFH
来编址。8086有20根地址线,但其内部可以表示的地址最多只能是16位。连续逻辑段A段B段C段D段E段00000
H10000H20000H30000H40000H……实际(物理)存储器分离完全重叠部分重叠
为了能寻址1MB空间,8086对存储器进行逻辑分段,每个逻辑段≤64K,1M的空间分成16个逻辑段(0~15)。允许它们在整个
存储空间浮动,即段与段之间可以部分重叠、完全重叠、连续排列、断续排列。每次在需要产生一个20位地址的时候,一个段寄存器会自动
被选择,且能自动左移4位再与一个16位的地址偏移量相加,以产生所需要的20位物理地址。物理地址=段基地址+偏移地址=段寄存器内容
×10H+偏移地址加法器8086物理地址PA的形成,其中的16位偏移量也称为有效地址EA(出现在指令中)段寄存器
15016位偏移量01520位物理地址019段基址1123H偏移量13H段基址1124H偏移量03H
存储单元物理地址11230H11231H
11232H……1123FH11240
H11241H11242H1
1243H0000物理地址PA与逻辑地址LA8086的存储器组织在寻址一个具体的物理单元时,必须要由一个基地址再
加上SP或IP或BP或SI或DI等可由CPU处理的16位偏移量来形成实际的20位物理地址。IPCSSI、DI或
BXDSSP或BPSS代码段数据段堆栈段CS、DS、SS和其他寄
存器组合指向存储单元示意8086的存储器组织存储器中的操作数可以是一个字节,也可以是一个字。如果
是字操作数,那么低位字节放在较低的地址单元,高位字节放在较高地址单元。在不改变段寄存器值的情况下,寻址的最大范围是64KB。所以若有一个任务,它的程序长度、堆栈长度以及数据区长度都不超过64KB,可在程序开始的时候,分别给DS、SS、ES置值,然后在程序中就可以不再考虑这些段寄存器,程序就可以在各自的区域中正常地进行工作。若某一个任务所需的总的存储器长度(包括程序长度、堆栈长度和数据长度等)不超过64KB,则可以在程序开始时使CS、SS、DS相等,程序也能正常工作。若一个程序中要用的数据区超过64KB,或要求从两个(或多个)不同区域中去存取操作数,只要在取操作数以前,用指令给数据段寄存器重新赋值就可以了。8086的存储器组织
献花(0)
+1
(本文系dsxzqmok首藏)