Intel8086系统结构11节

上传人:E**** 文档编号:90248865 上传时间:2019-06-10 格式:PPT 页数:79 大小:2.57MB
返回 下载 相关 举报
Intel8086系统结构11节_第1页
第1页 / 共79页
Intel8086系统结构11节_第2页
第2页 / 共79页
Intel8086系统结构11节_第3页
第3页 / 共79页
Intel8086系统结构11节_第4页
第4页 / 共79页
Intel8086系统结构11节_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《Intel8086系统结构11节》由会员分享,可在线阅读,更多相关《Intel8086系统结构11节(79页珍藏版)》请在金锄头文库上搜索。

1、第2章 Intel8086系统结构,8086微处理器是Intel系列微处理器中具有代表性的16位微处理器。 8086微处理器采用HMOS工艺技术制造,外型封装为双列直插式,有40个引脚。 主时钟频率有5MHz,8MHz和10MHz几种。 内部采用16位数据通路和流水线结构,使取指令与执行指令实现了并行操作。 8086有20位地址线,可直接寻址的空间达1MB。 8086支持多处理器系统,可方便地与数值协处理器8087和I/O处理器8089相连,组成多处理器系统,大大提高了系统的数据处理能力。,2.1.1 8086微处理器的功能结构,8086微处理器采用不同于第二代微处理器(8080,Z80)的一

2、种全新结构形式,由两个独立的单元组成,一个称为总线端口单元BIU (Bus Interface Unit),另一个称为执行单元EU (Execution Unit),其功能框图如图2.1所示。,图2.1 8086 CPU的功能结构,1. 指令执行单元EU 指令执行单元EU的功能是负责执行指令,即负责全部指令的译码和执行,同时管理CPU内部的有关寄存器。执行单元EU由算术逻辑单元(ALU)、标志寄存器、8个寄存器,以及数据暂存器和EU控制器等组成。 1) 算术逻辑运算单元(ALU) 16位的运算器,可用于8位或16位二进制算术运算或逻辑运算。 2) 标志寄存器 用来存放ALU运算后的结果特征或机

3、器运行状态,标志寄存器长16位,实际使用了9位。,3) 通用寄存器组 包含8个16位的寄存器,按功能分为两组,一组包括AX,BX,CX,DX4个寄存器,称为通用数据寄存器,用来存放操作数或地址。另一组包括DI,SI,SP和BP4个寄存器,称为专用寄存器。 4) EU控制器 EU控制器的作用是从BIU的指令队列中取指令,并对指令进行译码,根据指令要求向EU内部各部件发出相应的控制命令以完成每条指令所规定的功能。因此相当于传统计算机CPU中的控制器。,指令执行单元EU的工作就是执行指令,并不直接与外部发生联系,而是从总线端口单元BIU的指令队列中源源不断地获取指令并执行,省去了访问存储器取指令的时

4、间,提高了CPU的利用率和整个系统的运行速度。,2. 总线端口单元BIU BIU是8086微处理器在存储器和I/O设备之间的端口部件,负责对全部引脚的操作,即8086对存储器和I/O设备的所有操作都是由BIU完成的。BIU提供了16位双向数据总线、20位地址总线和若干条控制总线,其具体任务是:负责从内存单元中预取指令,并将其送到指令队列缓冲器暂存。 总线端口单元BIU主要由4个段寄存器、1个指令指针寄存器、1个与EU通信的内部寄存器、先入先出的指令队列、总线控制逻辑和计算20位物理地址的地址加法器组成。,1) 地址加法器和段寄存器 8086 微处理器的20位物理地址是由专门的地址加法器将有关段

5、寄存器内容(段的起始地址)左移4位后,与16位的偏移地址相加。 2) 16位指令寄存器(Instruction Pointer,IP) 指令寄存器IP用来存放下一条要执行指令的偏移地址EA(也叫有效地址),IP只有和CS相结合,才能形成指向指令存放单元的物理地址。,3) 指令队列缓冲器 指令队列的作用是预存BIU从存储器中取出的指令代码。容量为6B,按“先进先出”的方式工作,其操作遵循以下原则: (1) 当指令队列中存入一条指令后,EU就立即开始执行。 (2) 当BIU发现队列中空了2个字节时,就自动地进行预取指令操作,直至填满为止。 (3) 当EU执行一条转移、调用或返回指令后,BIU就会清

6、除指令队列,并从新地址开始预取指令,实现程序段的转移。,BIU和EU是各自独立工作的,在EU执行指令的同时,BIU可预取下一条或几条指令。从而减少了CPU为取指令而等待的时间,提高了CPU的利用率,加快了整机的运行速度。另外也降低了对存储器存取速度的要求。 4) 总线控制逻辑电路 总线控制逻辑电路将8086微处理器的内部总线和外部总线相连,是8086微处理器与内存单元或I/O端口进行数据交换的必经之路。它包括16条数据总线、20条地址总线和若干条控制总线。,2.1.2 8086的存储器分段组织,1. 存储器地址空间和数据存储格式,8086的存储器是以字节(8位) 为单位组织的。具有20条地址总

7、线,所以可寻址的地址空间容量为1MB。每个字节对应一个唯一的地址,地址范围为00000FFFFFH,如图2.2所示。,图2.2 存储器的地址,存储器内两个连续的字节,定义为一个字。一个字中的每个字节,都有一个字节地址,每个字的低字节(低8位)存放在低地址中,高字节(高8位)存放在高地址中,字的地址指低字节的地址。,图2.3 数据存储格式,2. 存储器的分段 8086微处理器地址总线20条,存储器地址空间为1MB。但是,8086 所有的寄存器都是16位的,最多只能寻址64KB空间。为此引入了存储空间分段概念,即将整个1MB的存储空间分成若干个存储段,每个段是存储器中可独立寻址的逻辑单位,称为逻辑

8、段,每个段的长度为64KB,段内地址是连续的,允许各个逻辑段在整个1MB存储空间内浮动,但每个逻辑段的起始地址(简称段基址/段首址) 的低4位二进制码必须是0。一个段的起始地址的高16位被称为该段的段地址。,显然,在1MB的存储器地址空间中,可以有216个段地址。任意相邻的两个段地址相距16个存储单元。段内一个存储单元的地址,可用相对于段起始地址的偏移量来表示,这个偏移量称为段内偏移地址,也称为有效地址EA。偏移地址也是16位的,所以,一个段最大可以包括一个64KB的存储器空间。各个逻辑段之间可以首尾相连,也可以完全分离或者重叠(部分重叠或完全重叠),如图2.5所示。,图2.5 存储器分段和段

9、的重叠,3. 物理地址的形成 任何一个存储单元,可以包含在一个逻辑段中,也可以包含在两个或多个重叠的逻辑段中,只要能得到它所在段的段基址和段内偏移地址就可以对它进行访问。 在8086系统中,每个存储单元在存储器中的位置可以用逻辑地址和物理地址来表示。所谓逻辑地址,由段基址和段内偏移地址两部分组成,段基址和段内偏移地址都是无符号的16位二进制数。物理地址也叫实际地址或绝对地址,是CPU访问存储器时实际使用的地址,地址总线上传送的就是这个地址。,物理地址应由逻辑地址变换得到,两者的变换关系如图2.6所示。即将16位段基址左移4位,然后与16位段内偏移地址相加而获得20位物理地址,这相当于完成以下地

10、址计算:,物理地址段基址16段内偏移地址,图2.6 物理地址的形成过程,地址计算过程是由CPU内BIU中的地址加法器完成的。例如,某条指令在代码段中的逻辑地址为:CS1000H,IP4052H,则其物理地址为14052H。,图2.7 逻辑地址与物理地址,显然,当CS1200H,IP2052H时,物理地址也是14052H。这就是说,同一个物理地址可以对应多个逻辑地址。 段地址总是由段寄存器提供的。8086微处理器的BIU单元设有4个段寄存器(CS、DS、SS、ES),所以CPU可以通过这4个段寄存器来访问4个不同的段。用程序对段寄存器的内容进行修改,可实现对所有段的访问。,4. 信息的分段存储与

11、段寄存器的关系,为了操作方便,存储器可相应地划分为:程序区,该区存储程序的指令代码;数据区,存储原始数据、中间结果和最终结果;堆栈区,存储需要压入堆栈的数据或状态信息。 段寄存器的分工是:代码段寄存器CS划定并控制着程序区;数据段寄存器DS和附加段寄存器ES控制着数据区;而堆栈段寄存器SS对应堆栈存储区。,表2-1 各种类型存储器访问所使用的段寄存器和段内偏移地址,(1) 段地址要么由默认段寄存器提供,要么由“指定”段寄存器提供。 (2) 段寄存器DS、ES和SS的内容是在程序中通过指令设置的,任何传送类指令不能直接向CS中传送数据,但转移、调用、返回类指令可以设置和影响CS的内容。 (3)

12、取指令访问内存时,段内偏移地址只能由指令指针IP提供;当堆栈进行压入和弹出操作时,段内偏移地址只能由SP提供等。除此之外的内存访问,段内偏移地址则由指令码规定的寻址方式确定。,每个段的最大容量为64KB,一般情况下,不需要这么大的空间,因而段有部分重叠。如下图所示。,(a) 段不重叠,(b) 段部分重叠,图2.8 典型分段方法,2.1.3 8086的寄存器结构 8086 微处理器内部寄存器结构如图2.9所示。14个寄存器按功能不同可分为3组,分别为通用寄存器组、段寄存器组和控制寄存器组。,1. 通用寄存器组 8个16位通用寄存器分为两组:数据寄存器及地址指针和变址寄存器。,图2.9 8086的

13、寄存器结构,1) 数据寄存器 数据寄存器包括AX,BX,CX,DX这4个寄存器。 通用数据寄存器主要用来存放算术/逻辑运算操作数,中间结果和地址。 不仅为编程提供方便,更主要的是可以加快CPU的运行速度。 数据寄存器既可作为一个16位的寄存器使用,也可以分别作为两个8位寄存器使用。,2) 地址指针和变址寄存器 包括SP,BP,SI,DI 四个16位寄存器。 一般是用来存放操作数的偏移地址。 SP称为堆栈指示器 BP为基址寄存器 SI和DI称为变址寄存器 通用寄存器除具有通用特性外,还具有各自的特定用法,表2-2 通用寄存器的特定用法和隐含性质,2. 段寄存器组 代码段寄存器 (CS)。存放当前

14、代码段的段基址值。代码段用来存放程序代码。CS的内容左移4位再加上指令指针IP的内容就是下一条要执行的指令。例如,某指令在代码段内的偏移地址为0100H,即IP0100H,当前代码段寄存器CS2000H,则该指令在主存储器中的物理地址为 PA(CS)左移4位(IP)20000H0100H20100H,数据段寄存器 (Data Segment,DS)。它存放当前数据段的段基址。通常数据段用来存放数据和变量。当访问数据段中某一变量时,该变量的物理地址PA为 PA(DS)左移4位该变量的偏移地址 堆栈段寄存器 (Stack Segment,SS)。它存放当前堆栈段的段基址。栈顶的物理地址应为,PA(

15、SS)左移4位(SP),附加段寄存器 (Extra Segment,ES)。,一般来说,当程序较少,数据量又不大时,代码段、数据段、堆栈段和附加段可设置在同一段内。当程序和数据量较大,超过64KB时,可定义多个代码段、数据段、附加段和堆栈段。这时在CS,DS,SS和ES中存放的是当前正在使用的逻辑段段基址,使用中可以通过修改这些段的寄存器的内容,以访问其他段扩大程序规模。必要时,可通过在指令中增加段超越前缀符来指向其他段。,3. 控制寄存器组 1) 指令指针 (Instruction Pointer,IP) 用来存放下一条要执行的指令在当前代码段中的偏移地址。在程序运行中,IP的内容自动修改,

16、总是指向下一条要执行的指令。其内容程序不能直接访问,但当执行转移指令、调用指令时,其内容可被修改,置入的是目标地址或子程序首地址,IP的原内容被压入堆栈,返回时再被恢复。,2) 标志寄存器(FLAG) 标志寄存器也称程序状态字(PSW)寄存器。,图2.10 8086标志寄存器格式,一类叫状态标志,用来表示运算结果的特征,共6个: CF,PF,AF,ZF,SF和OF。 一类叫控制标志,用来控制CPU的操作或工作状态,共3个:DF,IF和TF。,(1) 状态标志位功能说明 进位标志(Carry Flag,CF) 奇偶标志(Parity Flag,PF) 辅助进位标志(Auxiliary Carry Flag,AF) 零标志(Zero Flag,ZF) 符号标志(Sign F1ag SF) 溢出标志(Overflow Flag,OF),(2) 控制标志位功能 中断允许标志(Interrupt Enable F1ag,IF) (Direction Flag,DF)方向标志 (Trap Flag,TF)单步标志,2.2.1

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

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

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