和奔腾系列微处理器原理初步

上传人:san****019 文档编号:71640457 上传时间:2019-01-21 格式:PPT 页数:64 大小:3.10MB
返回 下载 相关 举报
和奔腾系列微处理器原理初步_第1页
第1页 / 共64页
和奔腾系列微处理器原理初步_第2页
第2页 / 共64页
和奔腾系列微处理器原理初步_第3页
第3页 / 共64页
和奔腾系列微处理器原理初步_第4页
第4页 / 共64页
和奔腾系列微处理器原理初步_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《和奔腾系列微处理器原理初步》由会员分享,可在线阅读,更多相关《和奔腾系列微处理器原理初步(64页珍藏版)》请在金锄头文库上搜索。

1、2 . 8086和奔腾系列微处理器原理初步,2.1 8086的编程结构 2.2 8086的引脚信号和工作模式 2.3 8086的存储器编址 2.4 奔腾系列微处理器特点,微第2章,本章学习要求,1、掌握8086CPU的内部结构,3、掌握8086CPU的两种工作模式,2、掌握8086CPU对存储器的分段管理的基本概念,4、了解奔腾系列微处理器的特点,2.1 8086CPU的内部结构(编程结构),从功能上看,CPU可以分为两大部分: 1、总线接口部件BIU (Bus Interface Unit) 2、执行部件EU (Execution Unit),8086CPU内部结构框图如下所示:,8086C

2、PU的内部结构框图,一. 总线接口部件,总线接口部件负责与存储器、I/O接口传送数据,包括物理地址的形成、预取指令、指令队列排队、读/写操作数和总线控制等。总线接口部件由下列4部分组成: 4个段地址寄存器(CS、DS、ES、SS) 16位的指令指针寄存器 IP(Instruction Pointer) 20位的地址加法器 6字节的指令队列缓冲器,二. 执行部件,执行部件负责指令的执行。由下列4部分组成: 4个通用寄存器,即AX、BX、CX、DX; 4个专用寄存器,即 基数指针寄存器BP(base pointer) 堆栈指针寄存器SP(stack pointer) 源变址寄存器SI(source

3、 index) 目的变址寄存器DI(destination index); 标志寄存器; 算术逻辑部件ALU(arithmetic logic unit)。,8086内部寄存器有: 4个通用寄存器和4个专用寄存器 1个指令指针寄存器 1个标志寄存器 4个段寄存器,1、4个16位的通用寄存器AX、BX、CX、DX,它们还可以分成高8位和低8位两个独立的寄存器: AH BH CH DH AL BL CL DL 对其中某8位的操作,并不影响另外对应8位的数据,每个寄存器又有它们各自的专用目的: AX累加器(Accumulator),使用频度最高,用于算术、逻辑运算以及与外设传送信息等,BX基址寄存器

4、,常用做存放存储器地址 CX计数器,作为循环和串操作等指令中的隐含计数器 DX数据寄存器,常用来存放双字长数据的高16位,或存放外设端口地址。,2、变址寄存器SI、DI,变址寄存器常用于存储器寻址时提供地址: SI是源变址寄存器(source index) DI是目的变址寄存器(destination index) 串操作类指令中,SI和DI具有特别的功能。,3、指针寄存器SP、BP,指针寄存器用于寻址内存堆栈内的数据。 SP为堆栈指针寄存器(Stack Pointer),指示栈顶的偏移地址。 SP不能再用于其他目的,具有专用目的。 BP为基址指针寄存器(Base Pointer),表示数据在

5、堆栈段中的基地址。 SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址。,4、段寄存器CS、DS、ES、SS,DS 数据段寄存器 (Data Segment) CS 代码段寄存器 (Code Segment) ES 附加段寄存器 (Extra Segment) SS 堆栈段寄存器 (Stack Segment) 这些段寄存器的内容与有效地址一起,用于确定内存的物理地址。通常用CS、DS、ES以及SS用于确定代码段、数据段、附加段以及堆栈段的基地址。,5、指令指针寄存器IP(Instruction Pointer),指令指针寄存器IP,指示代码段中下一条要执行指令的偏移地址。 它

6、与代码段寄存器CS联用,确定下一条指令的物理地址。 计算机通过CS和IP寄存器来控制指令序列的执行流程。 IP寄存器是一个专用寄存器。,6、标志寄存器FLAGS,标志(Flag)用于反映指令执行结果或控制指令执行形式。 8086处理器的各种标志形成了一个16位的标志寄存器FLAGS。,程序设计需要利用标志的状态,标志寄存器中共有9个位用作标志,7个位未作使用,标志的分类:分为状态标志和控制标志,6个状态标志:用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它的状态。共有6个状态标志位: CF ZF SF PF OF AF 3个控制标志:可由程序根据需要用指令设置,用于控制处理器执行

7、指令的方式 DF IF TF,进位标志CF(Carry Flag),当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF = 1;否则CF = 0。,49H + 6DH ,例:,?,B6H, 没有进位:CF = 0,BBH + 6AH ,(1)25H, 有进位:CF = 1,?,零标志ZF(Zero Flag),若运算结果为0,则ZF = 1; 否则ZF = 0,49H + 6DH B6H, 结果不是零:ZF = 0 75H + 8BH (1)00H,结果是零:ZF = 1,注意: ZF为1表示的运算结果是0,例:,符号标志SF(Sign Flag),运算结果最高位为1,

8、则SF = 1;否则SF = 0,有符号数据用最高有效位表示数据的符号 所以,最高有效位就是符号标志的状态,奇偶标志PF(Parity Flag),当运算结果的低8位(最低字节)中“1”的个数为偶数时,PF = 1;否则PF = 0,3AH + 7CH B6H 10110110B 结果中有5个1,是奇数:PF = 0,PF标志仅反映最低8位中“1”的个数是 偶或奇,即使是进行16位字操作,例:,溢出标志OF(Overflow Flag),若算术运算的结果有溢出, 则OF1;否则 OF0,49H + 6DH B6H, 产生溢出:OF = 1 75H + 8BH (1)26H, 没有溢出:OF =

9、 0,例:,什么是溢出?,处理器内部以补码表示有符号数 8位补码表达的整数范围是:127128 16位补码表达的范围是:3276732768 如果运算结果超出这个范围,就产生了溢出 有溢出,说明有符号数的运算结果不正确,49H 6DH B6H,就是73 109 182, 已经超出128127范围,产生溢出,故OF1; 另一方面,补码B6H表达真值是-74,显然运算结果也不正确。,溢出和进位的区别:,溢出标志OF和进位标志CF是两个意义不同的标志。 进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确。 溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。,溢出和进位的对比:,例

10、1:49H + 6DHB6H 无符号数运算: 73109182 范围内,无进位 有符号数运算: 73109182 范围外,有溢出,例2:BBH + 6AH(1)25H 无符号数运算: 187106293 范围外,有进位 有符号数运算: 6910637 范围内,无溢出,溢出的判断:,判断运算结果是否溢出有一个简单的规则: 只有当两个相同符号数相加(包括不同符号数相减),而运算结果的符号与原数据符号相反时,产生溢出,因为,此时的运算结果显然不正确。 其他情况下,则不会产生溢出,辅助进位标志AF(Auxiliary Carry Flag),49H + 6DH B6H,D3有进位:AF = 1,这个标

11、志主要由处理器内部使用,用于十进制算术运算调整指令中,用户一般不必关心。,若算术运算时D3位(低半字节)有进位或借位,则AF1;否则AF0,例:,方向标志DF(Direction Flag),用于串操作指令中,控制地址的变化方向: 设置DF0,存储器地址自动增加; 设置DF1,存储器地址自动减少。,中断允许标志IF(Interrupt-enable Flag),用于控制外部可屏蔽中断是否可以被处理器响应: 设置IF1,则允许中断; 设置IF0,则禁止中断。,跟踪标志TF(Trap Flag),用于控制处理器进入单步操作方式: 设置TF0,处理器正常工作; 设置TF1,处理器单步执行指令。,单步

12、执行指令:处理器在每条指令执行结束时,便产生一个编号为1的内部中断 这种内部中断称为单步中断 所以TF也称为单步标志 利用单步中断可对程序进行逐条指令的调试 这种逐条指令调试程序的方法就是单步调试,一、8086CPU的引脚及其功能,8086CPU的40条引脚信号按功能可分为四类,它们是: 地址总线 数据总线 控制总线 其它(时钟与电源),2.2 8086CPU的引脚和工作模式,1、最小模式和最大模式概念,(1)最小模式: 在系统中只有一个微处理器。 (2)最大模式: 两个或多个微处理器(主处理器、协处理器),为了尽可能的适应各种应用场合,设计8086CPU时,使其能具有两种工作模式,即最小模式

13、和最大模式。,2、8086的引脚信号,(1)最小模式( MN/MX接5V), AD15AD0,地址/数据总线 A19/S6A16/S3,地址/状态总线 BHE/ S7,高8位数据允许/状态线 MN/MX,最小/最大模式控制信号,输入 RD,读信号 WR,写信号 M/IO,存储器/输入输出控制信号,ALE,地址锁存允许信号 READY(Ready),准备就绪信号 INTR,可屏蔽中断请求信号 INTA,中断响应信号 NMI,非屏蔽中断请求信号 RESET,系统复位信号 DEN,数据允许信号 DT/R,数据发送/接收控制信号,HOLD,总线保持请求信号输入 HLDA,总线保持响应信号 TEST,测

14、试信号 CLK,时钟输入信号 VCC(+5V),GND,(2)最大模式( MN/MX接地),8086 CPU工作在最大模式时,其2431引脚需重新定义,如表2-4所示:,QS1/QS0,指令队列状态信号。 S2、S1、S0 ,总线周期状态信号。 LOCK ,总线封锁信号。 RQ/GT1和RQ/GT0 ,总线请求信号输入/总线请求信号允许输出。,一、 主存储器的分段机制,原因:由于CPU地址线数(20位)与寄存器位数、数据线数(16位)的差异。为了提高主存储器容量,必须采用分段机制 8086CPU有20条地址线 最大可寻址空间为2201MB 物理地址范围从00000HFFFFFH 8086CPU

15、将1MB空间分成许多逻辑段(Segment) 每个段最大限制为64KB (216B) 每个段首个单元物理地址的低4位为0000 这样,一个存储单元除具有一个唯一的物理地址外,还具有多个逻辑地址(在不同的段中),2.3 8086CPU的存储器编址,对应每个物理存储单元都有一个唯一的20位编号,就是物理地址,从00000HFFFFFH。 分段后在用户编程时,采用逻辑地址(即段首地址加段内偏移地址),其形式为: 段基地址 : 段内偏移地址,分隔符,二、 物理地址和逻辑地址,逻辑地址:,段基地址(段首地址)说明逻辑段在主存中的起始位置。(但起始位置不是任意的) 8086规定段地址必须是模16地址:xx

16、xx0H。 省略低4位0000,段地址就可以用16位数据表示,就能用16位段寄存器表达段地址。 偏移地址说明主存单元距离段起始位置的偏移量。 每段不超过64KB,偏移地址也可用16位数据表示。,段基地址 : 段内偏移地址,问题:在20位的8086系统下,主存储器的最大容量可以是多少?32位的80386/80486/Pentium系列呢?,物理地址和逻辑地址的转换,将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址。 一个物理地址可以有多个逻辑地址,逻辑地址 1460:100、1380:F00 物理地址 14700H 14700H,三、8086对存储器的访问,2.4.1、Pentium的性能与先进技术 2.4.2、Pentium的原理结构 2.4.3、Pentium的寄存器 2.4.4、

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号