收藏 分享(赏)

第2章8086CPU的原理.ppt

上传人:hyngb9260 文档编号:7248756 上传时间:2019-05-10 格式:PPT 页数:41 大小:273KB
下载 相关 举报
第2章8086CPU的原理.ppt_第1页
第1页 / 共41页
第2章8086CPU的原理.ppt_第2页
第2页 / 共41页
第2章8086CPU的原理.ppt_第3页
第3页 / 共41页
第2章8086CPU的原理.ppt_第4页
第4页 / 共41页
第2章8086CPU的原理.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

1、第二章 16位和32位处理器,主要内容:1、8086内部结构、工作模式、时序和存储器管理2、80386体系结构、工作方式和存储器管理3、Pentium处理器先进技术和体系结构,2.1.1 8086CPU编程结构,总示意图,1F100h 1F101h 1F102h,1FFFFh,地址 内存,. . .,总线,2.1 16位处理器8086CPU,IP,译码,FLAGS,总 线 接 口,指令队列,地址合成,AX BX CX DX,控制器,1 8086CPU寄存器组 寄存器是CPU内部一种特殊的存储器,CPU的ALU部件可以直接对寄存器中的数进行操作。CPU内部寄存器的存取速度很快,相对在内存中存取数

2、据来说,其存取时间可以忽略。因此,在所有8086的指令中,用寄存器进行运算的指令速度最快!8086CPU包括4个16位数据寄存器(又可分为8个独立的8位寄存器),2个16位堆栈指针寄存器,2个16位变址寄存器,1个16位指令指针寄存器,1个16位的标志寄存器,4个16位段寄存器。1)数据寄存器:8086的数据寄存器指AX、BX、CX、DX和AH、AL、BH、BL、CH、CL、DH、DL,其中:AH、AL寄存分别表示AX寄存器的高8位和低8位,如下图:,AH AL,AX,AH=1Fh AL=50h AX=1F50h但AH和AL都可以作为8位的寄存器独立使用,如 MOV BL,AH 指令执行后,

3、BL=1Fh其余的8位寄存器如上所述。8086的4个数据寄存器,通常都是用来存储供CPU处理的数据或保存结果的,但在特定的场合里,它们又有自己的特殊用途。 (1)AX、AL-累加器:在乘法、除法和符号扩展指令中,有一个操作数预先放在累加器中;在I/O操作时,通过它CPU与接口交换数据。累加器也是所有寄存器中执行速度最快的。,(2)BX:基址寄存器,当CPU对存储器数据段寻址时,它可以用来存放偏移地址。它是4个16位数据寄存器中唯一可以存放地址的。 (3)CX:计数器,在LOOP循环指令和重复的串处理指令中,用于循环计数。 (4)DX:在32位数操作时,它和AX配合存储32位数,其中,AX存放低

4、16位,DX存放高16位;在I/O操作时,DX是唯一可以存放I/O地址的寄存器。2)变址寄存器SI、DISI 称源变址寄存器,DI 称目的变址寄存器。它们在一般的数据传送指令中,与BX一样,用来与DS配合存放16偏移地址。但在串传送指令中,SI 是源串的地址(指针),与DS合用,而DI 是目的串的地址(指针)与ES合用。,3)堆栈指针寄存器SP、BPSP和BP与SS合用存取堆栈段的数据,其中,SP是栈顶指针,在栈操作指令中,SP自动增加或减少。BP则是堆栈段的基址寄存器(与BX不同哦)。4)指令指针寄存器IPIP用于CPU取指令的,它与CS合用,取代码段的指令。通常IP是一个加1计数器,在遇到

5、转移指令时,IP会被重新置值。5)段寄存器CS,DS,SS,ESCPU内部的地址指针只有16位,无法对20位物理地址寻址,通常采用分段的方法(逻辑段)解决问题。每个应用程序可能拥有4个逻辑段:代码段(存放指令代码)、数据段(存放要处理的数据)、堆栈段(建立堆栈)和附加数据段(在串数据传送时使用)。,(1)CS:代码段段寄存器,保存代码段的段值,与IP合用产生20位物理地址。 (2)DS:数据段段寄存器,在数据段寻址时,与BX、SI、DI 合用。 (3)SS:堆栈段段寄存器,在栈操作时,与SP合用对栈顶数据进行存取。在对栈中数据存取时与BP合用。 (4)ES:附加数据段段寄存器,在串操作时,存放

6、目标串,与DI合用。也可以用来存放数据。 2 标志寄存器FLAGSFLAGS是16位寄存器,包含9个标志,标示CPU的状态和某些操作特性。,15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,9个标志分2组:运算结果标志-有6个,CPU状态标志-3个1)运算结果标志CF 进位标志:在加法运算时是否产生进位,减法运算时是否产生借位。CF=1表示有进位(借位),CF=0表示没有进位(借位)。ZF 零标志:运算结果是否为0,ZF=1表示结果为0,否则相反。SF 符号标志:运算结果最高位为1,则SF=1,否则相反。OF 溢出标志:在有符号数的加、减法运算时,OF=1表示运算结果

7、产生溢出,否则相反。PF 奇偶标志:反映运算结果中1的个数,PF=1表示1的个数为偶数,否则为奇数。AF 辅助进位标志:在字节操作时,低4位向高4位进位或借位,字操作时,低8位向高8位进位或借位,则AF=1,否则相反。,2)状态控制标志DF 方向标志:在串处理指令中决定串指针的移动方向。DF=0,SI、DI 增加;DF=1,SI、DI 减少。DF 的值由专门的指令控制,即:STD 指令置DF=1CLD 指令置DF=0IF 中断允许标志: IF 的值决定CPU是否响应外部的可屏蔽中断。当 IF=1 时,CPU可以响应外部的可屏蔽中断,否则相反。IF 的值由专门的指令控制,即:STI 指令置 IF

8、=1CLI 指令置 IF=0当 IF=0 时,CPU不能屏蔽非屏蔽中断和CPU内部中断。TF 跟踪标志: TF=1 时,CPU进入单步程序执行方式,TF的控制没有专用的指令,要通过其它方式设置。,3、8086的总线周期8086CPU通过外部总线和存储器进行交互(包括取指令和传送数据),需要在一定的时序控制完成:称总线操作周期,简称总线周期。1个基本的总线周期由4个T状态组成,即T1、T2、T3、T4,其中一个T为CPU的工作时钟周期。其中T1状态是地址产生周期,T2状态为外部总线状态转换和产生各种控制信号,T3状态为内部数据总线和外部数据总线之间数据稳定周期、CPU完成数据读写操作,T4为总线

9、周期结束。,2.1.2 8086的工作模式及引脚功能,8086的工作模式及引脚功能,1 40,2 39,3 38,4 37,5 36,6 35,7 8086 34,8 33,9 32,10 31,11 30,12 29,13 28,14 27,15 26,16 25,17 24,18 23,19 22,20 21,GND,AD,14,AD,13,AD,12,AD,11,AD,10,AD,9,AD,8,AD,7,AD,6,AD,5,AD,4,AD,3,AD,2,AD,1,AD,0,NMI,INTR,CLK,GND,V,CC,(+5V),AD,15,A,16,/S,3,A,17,/S,4,A,18

10、,/S,5,A,19,/S,6,BHE,/S,7,MN/,MX,RD,HOLD(,RQ,/,GT,0,),HLDA(,RQ,/,GT,1,),WR,(,LOCK,),M/,IO,(,S,2,),DT/,R,(,S,1,),DEN,(,S,0,),ALE(QS,0,),INTA,(QS,1,),TEST,READY,RESET,1 40,2 39,3 38,4 37,5 36,6 35,7 8088 34,8 33,9 32,10 31,11 30,12 29,13 28,14 27,15 26,16 25,17 24,18 23,19 22,20 21,GND,A,14,A,13,A,12,A

11、,11,A,10,A,9,AD,8,AD,7,AD,6,AD,5,AD,4,AD,3,AD,2,AD,1,AD,0,NMI,INTR,CLK,GND,V,CC,(+5V),A,15,A,16,/S,3,A,17,/S,4,A,18,/S,5,A,19,/S,6,SS,0,(HIGH),MN/,MX,RD,HOLD(,RQ,/,GT,0,),HLDA(,RQ,/,GT,1,),WR,(,LOCK,),M/,IO,(,S,2,),DT/,R,(,S,1,),DEN,(,S,0,),ALE(QS,0,),INTA,(QS,1,),TEST,READY,RESET,图(3.5)8086/8088的引脚

12、信号,最小方式用于单个微处理器组成的系统,由8086产生系统所需的全部控制信号。 最大方式用于多处理器系统中,8086不直接提供控制信号 。18086在两种模式中相同的引脚与功能 (1)地址/数据总线AD0AD15(双向、三态) (2)地址/状态线A16/S3A19/S6(输出、三态),(3)控制总线 总线高字节允许状态BHE/S7(输出、三态)。 读控制信号线RD(输出、三态) 。 准备好信号READY(输入),该信号由I/O或存储器发出。 等待测试信号TEST(输入),由专用的Wait指令引起。 可屏蔽中断请求信号INTR(输入)。 非屏蔽中断请求信号NMI(输入)。,复位信号RESET(

13、输入) 系统时钟CLK(输入) 最小/最大方式信号MN/MX(输入),当33脚(MN/MX)接5V时,CPU处于最小工作方式。 M/IO(输出)M/IO引脚用于区别CPU访问的是存储器还是I/O 端口。 WR(write Line)(输出) 写控制,用来选通将8086的数据输出到存储器或I/O设备。 INTA(interrupt acknowledge)(输出)中断响应信号是对INTR输入引脚的响应。 ALE (Address latch enable) (输出)地址锁存允许信号表明8086的地址/数据总线包含的是地址信息,该地址可以是存储器地址也可以是I/O端口号。,最小模式下8086的引脚

14、与功能,最小模式下8086的引脚与功能,DT/R(输出)数据发送/接收信号(data transmit/receive)表明微处理器数据总线是发送数据(DT/R1)还是接收数据(DT/R0)。 DEN(输出)数据总线允许(data bus enable)用来激活外部数据总线缓冲器。 HOLD(输入)保持请求信号用来申请一次直接存储器存取(DMA),高电平有效。 HLDA(输出)-CPU响应HOLD信号,高电平有效,最大模式下8086的引脚与功能,当33脚(MN/MX)接地时,CPU处于最大工作方式。S2、S1、S0(Status)状态信号,为输出信号,三态。,QS1、QS0(Queue Sta

15、tus)指令队列状态,输出信号。,RQ/GT0、RQ/GT1(Request/Grant)二者均为总线请求/允许信号,双向,负脉冲有效。 LOCK总线封锁,为输出信号,低电平有效。封锁其它总线请求设备,不允许它们此时提出总线请求,直到CPU将该指令执行完为止。,最大组态下系统总线的形成,(1)控制总线主要由总线控制器8288形成。(2)地址总线由两个三态透明锁存器8283形成。(3)数据总线通过总线收发器8286形成和驱动,2.1.3 8086的总线时序,课时:1课时主要内容:8086总线周期、8086基本时序、具有等待的8086时序。重点内容:8086基本时序、具有等待的8086时序。难点:

16、8086时序,一、CPU时钟周期、总线周期、指令周期1、时钟周期:CPU1个时钟脉冲的长度,代表了CPU的运行速度。2、总线周期:CPU执行一次外部操作所需的时间。一般对存储器的操作要短些,I/O端口的操作要长些。3、指令周期:CPU执行1条指令所需的时间。最短的指令操作为1个机器时钟,最长的(如乘法指令)达124个时钟周期。,二、CPU复位操作CPU的RESET引脚是CPU复位操作的引脚,由8284(时钟发生器)对外部复位信号整行得到的,一般RESET信号要保持4个CPU时钟周期,低电平有效。8086CPU复位后,CS=FFFFH,其它的内部寄存器清零,指令队列清零。因此CPU复位后执行的首

17、条指令地址为:FFFF0H,为BIOS的地址。,三、总线操作CPU的操作分内操作和外操作,外操作就是CPU和外部器件交换数据的操作,如存储器、I/O接口。外操作指的就是总线操作,有以下4种形式:1、存储器或I/O口的写操作2、存储器或I/O口的读操作3、中断响应操作4、总线请求及响应操作(DMA),指出下列指令的操作类型:XCHG BX, CXADD AX,5MOV BX,2000HINC WORD PTR SI,8282,8286,AD0AD15,A16A19,ALE,STB,T,OE,DEN,DT/R,存储器,I/O,D0D15,A0A19,IO/M,RD,WR,局部总线,外部总线,808

18、6,四、8086CPU总线时序,典型的总线周期由T1-T44个T状态构成,在I/O或存储器忙时,CPU还会产生TW(等待)状态 。其中,T1是地址产生周期,同时CPU检查M/IO信号;在T2周期,CPU产生各种控制信号(如读写、DT/R、DEN),同时AD0AD15进行信号转换;T3周期AD0AD15出现稳定的数据信号(写),或者I/O、存储器译码,读出数据;T4周期完成读写操作。,T1,T2,T3,T4,T1,CLK,地址,数据,A0A15,高电平,存储器读写,否则I/O,M/IO,DEN,WR,DT/R,CPU写操作,T1,T2,T3,T4,T1,CLK,地址,数据,A0A15,高电平,存

19、储器读写,否则I/O,M/IO,DEN,RD,DT/R,CPU读操作,T1,T2,T3,TW,T4,CLK,地址,状态输出,A16A19,地址,数据,A0A15,高电平,存储器读写,否则I/O,M/IO,ALE,DEN,RD,READY,具有等待的CPU读操作,2.1.4 地址和存储器分段,一、 地址 1、地址: 地址就是存储单元的编号。象学过的指针,就是表示地址值。IBM-PC系列的微机对存储器是按 8 位编址的。,对于一个16位地址的计算机系统,它的地址编号从 0000h-FFFFh,如右图所示:即有216 个存储单元,每个单元可存放2位16进制数。对于1个字节的数据,用1个存储单元存放;

20、对于1个字的数据,用2个连续的单元存放,且地址编号小的存放低8位,大的存放高8位。如果0001h单元为字数据,则内容为: (0001h)=1F37h,0000h 0001h 0002h 0004hFFFDh FFFEh FFFFh,. . . .,8086的地址总线为20位,其地址编号为:00000h-FFFFFh,共有 220 个存储单元(1MB),2、地址译码地址译码就是将20 位地址信号转化为该地址编码表示的存储单元的片选信号CS,如图所示,是由译码器完成的。,地址总线,CS,. . .,CS,CS,每个单元都有个片选信号CS,当它有效时,该单元的数据就会出现在数据总线上,被CPU取走。

21、,二、 存储器分段 1、存储器分段的概念8086CPU地址总线为20位,可寻址空间为1MB,而CPU内部用于描述地址的寄存器(如 BX)只有16位,所表示的最大地址范围为64KB,怎样才能对1MB空间寻址呢?解决的办法是对存储器进行逻辑分段,然后利用寻址寄存器在逻辑段内寻址-即表示段内的相对偏移量。,0000:0000h 0000:0001h0000:2200h 0000:2201h,. . .,. . .,2200h,BX,如图所示,某段段值为0000h,用BX表示相对偏移,则BX指示的存储单元的地址为:0000:2200h。,2、8086分段的原理8086系统的应用程序通常分为4个逻辑段:

22、代码段,段值保存在CS寄存器中;数据段,段值保存在DS寄存器中;堆栈段,段值保存在SS寄存器中;附加数据段,段值保存在ES寄存器中。事实上,某个逻辑段的首地址(20位物理地址),是用相应的段寄存器中的值表示的,而段寄存器为16位,为解决此问题,规定段首地址的低4位为0,段寄存器只保存其高16位即可。根据这个原理,8086 1MB空间可作首地址的单元有64K个。如,某首地址为:1F220h,其段地址为1F22h。且由于每段的偏移由16位寻址寄存器描述,故每段的最大长度为64KB。且最小为16字节(必须低4位为0)。8086的这种分段方法实现了代码和数据的分离,有效地实现对1MB存储单元的管理。,

23、10,20,A0,.,.,40,30,20,20,35,CB,代码段 CS=0F00h,数据段 DS=1F00h,堆栈段 SS=2F00h,附加段 ES=3F00h,0F00:0000h,0F00:0001h,1F00:0000h,1F00:0001h,2F00:0000h,2F00:0100h,.,3F00:0000h,3F00:0001h,IP,变量X,变量Y,SP,某应用程序内存分布图,3、物理地址的形成用段寄存器的值和相对偏移值表示的地址称逻辑地址,如:1F00:2200h 其段值为:1F00h,偏移值为:2200h 。逻辑地址只有转化为物理地址才能真正实现寻址,其转化公式为: 物理地

24、址=段值16 + 偏移即在段值左移4位,或者在16进制表示的段值后添个0再加上偏移值,如上面的物理地址为:1F000+2200=21200h 。,1F00h,2200h,DS,BX,21200h,20位物理地址,如图为 CPU 利用BX寄存器访问数据段,其20位物理地址的形成示意图。,4、应用举例MOV AX, 2200h 其中,数据段 DS=1F00h,内存,21200h,译 码,1F00h,DS,21200h,指令队列,译码,控制器,2200h,2F30h,AX,2F30h,地址 合成,三、I/O地址分配8086CPU与外部设备之间通过I/O接口进行数据交换,I/O接口与CPU之间通过总线相连接,称为内部总线;I/O接口与I/O设备之间通过专用的信号线连接,称为外部总线。CPU在读写I/O接口时,也像对存储器操作一样需要指明I/O接口的地址,这样,CPU必须对I/O接口进行编址。8086CPU对I/O接口采用独立编址的方式,在8086CPU系统中使用低10位地址线(A0A9)连接I/O端口,能够管理1024个I/O端口地址,在80386及以上的计算机系统中,使用低16位地址线连接I/O端口,可以管理64K个I/O端口地址。8086CPU对I/O的操作也采用独立的I/O读写指令:IN和OUT。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报