第2章8086和奔腾系列微处理器原理初步_第1页
第2章8086和奔腾系列微处理器原理初步_第2页
第2章8086和奔腾系列微处理器原理初步_第3页
第2章8086和奔腾系列微处理器原理初步_第4页
第2章8086和奔腾系列微处理器原理初步_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

2.8086和奔腾系列微处理器原理初步2.18086的编程结构

2.28086的引脚信号和工作模式

2.38086的存储器编址2.4奔腾系列微处理器特点

《微》第2章本章学习要求1、掌握8086CPU的内部结构3、掌握8086CPU的两种工作模式2、掌握8086CPU对存储器的分段管理的基本概念4、了解奔腾系列微处理器的特点2.18086CPU的内部结构(编程结构)从功能上看,CPU可以分为两大部分:1、总线接口部件BIU(BusInterfaceUnit)2、执行部件EU(ExecutionUnit)

8086CPU内部结构框图如下所示:8086CPU的内部结构框图一.总线接口部件

总线接口部件负责与存储器、I/O接口传送数据,包括物理地址的形成、预取指令、指令队列排队、读/写操作数和总线控制等。总线接口部件由下列4部分组成:

①4个段地址寄存器(CS、DS、ES、SS) ②16位的指令指针寄存器IP(InstructionPointer) ③20位的地址加法器 ④6字节的指令队列缓冲器二.执行部件执行部件负责指令的执行。由下列4部分组成:①4个通用寄存器,即AX、BX、CX、DX;②4个专用寄存器,即基数指针寄存器BP(basepointer)堆栈指针寄存器SP(stackpointer)源变址寄存器SI(sourceindex)目的变址寄存器DI(destinationindex);③标志寄存器;④

算术逻辑部件ALU(arithmeticlogicunit)。

8086内部寄存器有:

4个通用寄存器和4个专用寄存器

1个指令指针寄存器

1个标志寄存器

4个段寄存器1、4个16位的通用寄存器AX、BX、CX、DX它们还可以分成高8位和低8位两个独立的寄存器:AH BH CH DHAL BL CL DL对其中某8位的操作,并不影响另外对应8位的数据每个寄存器又有它们各自的专用目的:AX--累加器(Accumulator),使用频度最高,用于算术、逻辑运算以及与外设传送信息等BX--基址寄存器,常用做存放存储器地址CX--计数器,作为循环和串操作等指令中的隐含计数器DX--数据寄存器,常用来存放双字长数据的高16位,或存放外设端口地址。2、变址寄存器SI、DI变址寄存器常用于存储器寻址时提供地址:SI是源变址寄存器(sourceindex)DI是目的变址寄存器(destinationindex)串操作类指令中,SI和DI具有特别的功能。3、指针寄存器SP、BP指针寄存器用于寻址内存堆栈内的数据。SP为堆栈指针寄存器(StackPointer),指示栈顶的偏移地址。SP不能再用于其他目的,具有专用目的。BP为基址指针寄存器(BasePointer),表示数据在堆栈段中的基地址。SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址。4、段寄存器CS、DS、ES、SSDS数据段寄存器(DataSegment)CS代码段寄存器(CodeSegment)ES附加段寄存器(ExtraSegment)SS堆栈段寄存器(StackSegment)这些段寄存器的内容与有效地址一起,用于确定内存的物理地址。通常用CS、DS、ES以及SS用于确定代码段、数据段、附加段以及堆栈段的基地址。

5、指令指针寄存器IP(InstructionPointer)指令指针寄存器IP,指示代码段中下一条要执行指令的偏移地址。它与代码段寄存器CS联用,确定下一条指令的物理地址。计算机通过CS和IP寄存器来控制指令序列的执行流程。IP寄存器是一个专用寄存器。6、标志寄存器FLAGS标志(Flag)用于反映指令执行结果或控制指令执行形式。8086处理器的各种标志形成了一个16位的标志寄存器FLAGS。OF111512DF10IF9TF8SF7ZF65AF43PF21CF0

程序设计需要利用标志的状态标志寄存器中共有9个位用作标志,7个位未作使用标志的分类:分为状态标志和控制标志6个状态标志:用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它的状态。共有6个状态标志位:CF

ZF

SF

PF

OF

AF3个控制标志:可由程序根据需要用指令设置,用于控制处理器执行指令的方式DF

IF

TFOF111512DF10IF9TF8SF7ZF65AF43PF21CF0进位标志CF(CarryFlag)当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF=1;否则CF=0。49H+6DH=例:?B6H,没有进位:CF=0BBH+6AH=(1)25H,有进位:CF=1?零标志ZF(ZeroFlag)若运算结果为0,则ZF=1;否则ZF=049H+6DH=B6H,结果不是零:ZF=075H+8BH=(1)00H,结果是零:ZF=1注意:ZF为1表示的运算结果是0例:符号标志SF(SignFlag)运算结果最高位为1,则SF=1;否则SF=0有符号数据用最高有效位表示数据的符号所以,最高有效位就是符号标志的状态奇偶标志PF(ParityFlag)当运算结果的低8位(最低字节)中“1”的个数为偶数时,PF=1;否则PF=03AH+7CH=B6H=10110110B结果中有5个1,是奇数:PF=0PF标志仅反映最低8位中“1”的个数是

偶或奇,即使是进行16位字操作例:溢出标志OF(OverflowFlag)若算术运算的结果有溢出,则OF=1;否则OF=049H+6DH=B6H,产生溢出:OF=175H+8BH=(1)26H,没有溢出:OF=0例:什么是溢出?处理器内部以补码表示有符号数8位补码表达的整数范围是:+127~-12816位补码表达的范围是:+32767~-32768如果运算结果超出这个范围,就产生了溢出有溢出,说明有符号数的运算结果不正确49H+6DH=B6H,就是73+109=182,已经超出-128~+127范围,产生溢出,故OF=1;另一方面,补码B6H表达真值是-74,显然运算结果也不正确。溢出和进位的区别:溢出标志OF和进位标志CF是两个意义不同的标志。进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确。溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。溢出和进位的对比:例1:49H+6DH=B6H无符号数运算: 73+109=182 范围内,无进位有符号数运算: 73+109=182 范围外,有溢出例2:BBH+6AH=(1)25H无符号数运算: 187+106=293 范围外,有进位有符号数运算: -69+106=37 范围内,无溢出溢出的判断:判断运算结果是否溢出有一个简单的规则:只有当两个相同符号数相加(包括不同符号数相减),而运算结果的符号与原数据符号相反时,产生溢出,因为,此时的运算结果显然不正确。其他情况下,则不会产生溢出辅助进位标志AF(AuxiliaryCarryFlag)49H+6DH=B6H,D3有进位:AF=1这个标志主要由处理器内部使用,用于十进制算术运算调整指令中,用户一般不必关心。若算术运算时D3位(低半字节)有进位或借位,则AF=1;否则AF=0例:方向标志DF(DirectionFlag)用于串操作指令中,控制地址的变化方向:设置DF=0,存储器地址自动增加;设置DF=1,存储器地址自动减少。中断允许标志IF(Interrupt-enableFlag)用于控制外部可屏蔽中断是否可以被处理器响应:设置IF=1,则允许中断;设置IF=0,则禁止中断。跟踪标志TF(TrapFlag)用于控制处理器进入单步操作方式:设置TF=0,处理器正常工作;设置TF=1,处理器单步执行指令。单步执行指令:处理器在每条指令执行结束时,便产生一个编号为1的内部中断这种内部中断称为单步中断所以TF也称为单步标志利用单步中断可对程序进行逐条指令的调试这种逐条指令调试程序的方法就是单步调试一、8086CPU的引脚及其功能8086CPU的40条引脚信号按功能可分为四类,它们是:地址总线数据总线控制总线其它(时钟与电源)

2.28086CPU的引脚和工作模式1、最小模式和最大模式概念(1)最小模式:

在系统中只有一个微处理器。(2)最大模式:

两个或多个微处理器(主处理器、协处理器)为了尽可能的适应各种应用场合,设计8086CPU时,使其能具有两种工作模式,即最小模式和最大模式。2、8086的引脚信号(1)最小模式(MN/MX接+5V)①AD15~AD0,地址/数据总线②A19/S6~A16/S3,地址/状态总线

③BHE/S7,高8位数据允许/状态线④MN/MX,最小/最大模式控制信号,输入⑤RD,读信号⑥WR,写信号⑦M/IO,存储器/输入输出控制信号

⑧ALE,地址锁存允许信号⑨READY(Ready),准备就绪信号⑩INTR,可屏蔽中断请求信号⑪INTA,中断响应信号⑫NMI,非屏蔽中断请求信号⑬RESET,系统复位信号⑭DEN,数据允许信号⑮DT/R,数据发送/接收控制信号⑯HOLD,总线保持请求信号输入⑰HLDA,总线保持响应信号⑱TEST,测试信号⑲CLK,时钟输入信号⑳VCC(+5V),GND

(2)最大模式(MN/MX接地)8086CPU工作在最大模式时,其24~31引脚需重新定义,如表2-4所示:

①QS1/QS0,指令队列状态信号。②S2、S1、S0,总线周期状态信号。③LOCK,总线封锁信号。④RQ/GT1和RQ/GT0,总线请求信号输入/总线请求信号允许输出。一、主存储器的分段机制原因:由于CPU地址线数(20位)与寄存器位数、数据线数(16位)的差异。为了提高主存储器容量,必须采用分段机制8086CPU有20条地址线最大可寻址空间为220=1MB物理地址范围从00000H~FFFFFH8086CPU将1MB空间分成许多逻辑段(Segment)每个段最大限制为64KB(216B)每个段首个单元物理地址的低4位为0000这样,一个存储单元除具有一个唯一的物理地址外,还具有多个逻辑地址(在不同的段中)2.38086CPU的存储器编址对应每个物理存储单元都有一个唯一的20位编号,就是物理地址,从00000H~FFFFFH。分段后在用户编程时,采用逻辑地址(即段首地址加段内偏移地址),其形式为:段基地址

:段内偏移地址分隔符二、物理地址和逻辑地址逻辑地址:段基地址(段首地址)说明逻辑段在主存中的起始位置。(但起始位置不是任意的)8086规定段地址必须是模16地址:xxxx0H。省略低4位0000,段地址就可以用16位数据表示,就能用16位段寄存器表达段地址。偏移地址说明主存单元距离段起始位置的偏移量。每段不超过64KB,偏移地址也可用16位数据表示。段基地址:段内偏移地址问题:在20位的8086系统下,主存储器的最大容量可以是多少?32位的80386/80486/Pentium系列呢?物理地址和逻辑地址的转换将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址。一个物理地址可以有多个逻辑地址逻辑地址 1460:100、1380:F00物理地址 14700H14700H14600H+100H14700H13800H+F00H14700H段地址左移4位加上偏移地址得到物理地址三、8086对存储器的访问2.4.1、Pentium的性能与先进技术2.4.2、Pentium的原理结构2.4.3、Pentium的寄存器2.4.4、Pentium的技术发展2.4奔腾系列微处理器特点介绍2.4.1

Pentium的性能与先进技术1993年3月Intel公司推出了第五代微处理器Pentium,Pentium是微处理器本质上的一次创新。

Pentium采用了0.8μm双极性互补金属氧化半导体(BiCMOS)技术,它属于单芯片超标量流水线微处理器,片内集成了多达310万个晶体管,工作电压+5V,功耗15W。片内时钟频率(微处理器主频)与片外总线的时钟频率相等,均为60MHz或66MHz两种。

Pentium通往外部存储器的数据总线为64位,CPU内部总线的宽度为32位(属于32位微处理器)。外部64位数据总线(D63-D0)每次可同时传输8字节的二进制信息,若选用主总线时钟频率66MHz计算,即存储器总线的时钟频率也为66MHz,则Pentium与主存储器交换数据的速率可为528MB/S。一、PentiumCPU内部的主要部件①总线接口部件BIU②U流水线和V流水线③指令高速缓冲存储器Cache④数据高速缓冲存储器Cache⑤指令预取部件⑥指令译码器⑦浮点处理部件FPU⑧分支目标缓冲器BTB⑨微程序控制器中的控制ROM⑩寄存器组2.4.2

Pentium的原理结构执行部件EU二、PentiumCPU的原理结构图

Pentium的寄存器可以分为三组:①基本寄存器组:包括通用寄存器、指令指针寄存器、标志寄存器以及段寄存器。②系统寄存器组:包括地址寄存器、控制寄存器、调试寄存器和测试寄存器。③浮点寄存器组:包括数据寄存器、控制字寄存器、状态寄存器、指令指针寄存器和数据指针寄存器以及标记字寄存器。2.4.3

Pentium的寄存器

PentiumCPU的基本寄存器组包括通用寄存器、段寄存器、指令指针寄存器和标志寄存器:1、通用寄存器

一、基本寄存器组Pentium通用寄存器如图所示,它兼容8086CPU原来的8个16位通用寄存器以及原来的8个8位的寄存器,而且将原来的8个16位通用寄存器AX、BX、CX、DX、SI、DI、BP、SP均扩展成32位的寄存器EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP。既可以使用保留的8位和16位寄存器,还可以使用32位寄存器。2、段寄存器及其段描述符高速缓存器段寄存器及段描述符高速缓存器如图所示,Pentium系列CPU有6个16位段寄存器,每个段寄存器对应有一个64位的描述符,用户不可见。6个段寄存器的长度均为16位。除CS和SS分别是代码段寄存器和堆栈段寄存器之外,其余的DS、ES、FS、GS都是数据段寄存器。

每个段对应一个段描述符(8个字节),6个段描述符存放在CPU内的段描述符高速缓存器中,它们均由内存的描述符表中拷贝而成,以便CPU访问某一段时,均按存放在CPU内该段的段描述符所描述的信息进行操作。段描述符:段描述符的组成:PentiumCPU中有一个32位的指令指针寄存器(EIP)和一个32位的标志寄存器(EFLAGS),如图3-6所示:3、指令指针寄存器和标志寄存器EIP保存下一条待执行指令所在代码段内的偏移值,也就是偏离代码段首地址的字节地址数值。EIP的低16位为IP。EFLAGS在808616位FLAGS基础上扩充了高16位,其中,FLAGSb11~b0中保留了8086CPU中6个状态标志和3个控制标志,增加了NT与IOPL,高16位中新增了6个标志位。这些扩充标志位的含义参考课本。Pentium的系统寄存器组包括4个表所对应的4个基地址寄存器GDTR、IDTR、LDTR、TR,也称为4个表寄存器,还包括5个控制寄存器CR0、CR1、CR2、CR3、CR4。系统寄存器组中的所有寄存器都不可能被用户访问,只能由特权级为0的操作系统程序访问。二、系统寄存器组(P51)4个表寄存器如图所示:

1、表基地址寄存器(1)GDTR(GlobalDescriptorTableRegister):全局描述符表寄存器。共有48位,其中,高32位保存全局描述符表的线性基地址,低16位是表限字段,即限制表的最大长度为6

温馨提示

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

评论

0/150

提交评论