目录
2.1 8086微处理器的基本结构
前言
8086简介
Intel系列的第三代16位(字长,由加法器、寄存器、数据总线的位数决定,第1章中1.2.2有说明)微处理器
采用了HMOS高密度工艺,集成度达每片4万多只晶体管
单一+5V电源,主频为5M Hz /10M Hz
内部和外部的数据总线宽度都是16位
地址总线宽度20位,可寻址空间达2^20,即1MB
2^10——1KB 2^20——1MB 2^30——1GB 2^40——1TB
8088设计目标是为了与Intel的8位外围接口芯片直接兼容。
8088和8086的内部结构基本相同,两者的软件也完全兼容;最主要的区别是外部数据总线:8086是16位数据总线,8088是8位数据总线。
2.1.1 8086的功能结构
前言总结
8086微处理器的内部功能结构由两个独立的工作部件:执行部件EU(Execution Unit)和总线接口部件BIU(Bus Interface Unit)构成。
EU由运算器(运算器由算术逻辑单元(ALU)、累加器、状态寄存器、通用寄存器组等组成)、寄存器组、控制器等组成,负责指令的执行;
BIU由指令队列、地址加法器、总线控制逻辑等组成,负责与系统总线打交道。
8086CPU的内部功能结构框图
1.执行部件EU
(1)EU的功能
从BIU的指令队列缓冲器中取出指令,由EU控制器的指令译码器译码产生相应的操作控制信号给各部件。
对操作数进行算术运算和逻辑运算,并将运算结果的状态特征保存到状态寄存器FR<见本章2.1.2的4.指令指针寄存器和标志寄存器,FR为标志寄存器>中。
EU不直接与CPU外部系统相连,当需要与主存储器或I/O设备交换数据时,EU向BIU发出命令,并提供给BIU16位有效地址(偏移地址)及所需传送的数据。
(2)EU的组成
说法一:
EU由算术逻辑单元ALU,通用数据寄存器组,地址指针和变址寄存器,标志寄存器,数据暂存寄存器和EU控制器组成。
说法二:
EU由运算器、寄存器组、控制器等组成,负责指令的执行。
(3)EU的特点
通用数据寄存器AX,BX,CX,DX,既可以作16位寄存器使用,也可以分成高、低8位分别作两个8位寄存器使用;地址指针BP、SP和变址寄存器SI、DI都是16位寄存器,一般用来存放地址信息。
ALU的核心是16位二进制加法器。其功能:一是进行算术/逻辑运算,二是按指令的寻址方式提供给BIU所需要操作对象的16位(偏移)地址,让BIU对内存储器或I/O空间寻址,传输操作对象。
16位状态标志寄存器FR(7位未用)存放操作后的状态特征和设置的控制标志<见本章2.1.2的4.指令指针寄存器和标志寄存器>。
EU控制器是执行指令的控制电路,实现从队列中取指令、译码、产生控制信号等。
2.总线接口部件BIU
(1)BIU的功能
BIU负责完成CPU与存储器或I/O设备之间的数据传送。它的具体功能为以下三个方面:
①BIU从主存(外面存储器)取指令送到指令队列缓冲器。
②CPU执行指令时,总线接口单元要配合EU,从指定的主存单元或外设端口中取数据将数据传送给EU,或把EU的操作结果传送到指定的主存单元或外设端口中。
③计算并形成访问存储器的20位物理地址<8086有20根地址线>。
(2)BIU的组成
BIU由4个16位段寄存器(CS、DS、SS、ES)、16位指令指针寄存器(IP)、20位物理地址加法器、6字节指令队列及总线控制逻辑组成。
(3)BIU的特点
指令队列是由6个字节的寄存器组成(8088指令队列由4个字节组成) 先进先出
地址加法器是用来产生20位存储器物理地址的,物理地址 = 16×段地址 + 偏移地址 = 段地址 <<4 + 偏移地址(二进制)。
8086分配20条引脚线分时传送20位地址、16位数据和4位状态信息。
EU和BIU两部分在很多时候可以并行工作
使取指令、指令译码、执行指令构成作业流水线。
每当指令队列中出现空字节,且EU没有访问存储器和接口的要求时,BIU自动从存储器读出指令代码,存于指令队列,供EU执行。
在一条指令执行的过程中,就可以预取下一条(或多条)指令,从而减少了8086CPU为取指令而等待的时间,提高了CPU的运行速度。
在以后的几代微处理器中,对内部结构的改进主要由此入手,将指令的执行过程进一步分解,尽可能使每一步骤都能同时执行,由此提高微处理器的执行速度。
2.1.2 8086的寄存器结构【14个寄存器,必须掌握】
8086CPU内部设有三组信息寄存器和一个标志寄存器,即:通用数据寄存器组(AX/BX/CX/DX)、地址指针(SP/BP)和变址寄存器(SI/DI)、段寄存器组(CS/DS/SS/ES)、16位的指令指针寄存器IP和标志寄存器FR。
它们用于暂存CPU操作过程中需要的指令地址、数值计算的数据和数据处理的中间结果。
1.通用数据寄存器(AX/BX/CX/DX)
EU中设置了四个16位通用寄存器,它们是AX、BX、CX和DX,而且都可以拆成两个独立的8位寄存器使用。
四个寄存器(8位或16位):存放计算过程中所用到的操作数、结果或其他信息。
AX:累加器(Accumulator),算术计算的主要寄存器,所有的I/O指令都使用这一寄存器与外部设备传送信息。
BX:通用寄存器,在计算存储器地址时,用作基址(Base)寄存器。
CX:通用寄存器,在循环和串处理指令中用作隐含的计数器(Counter)。
DX:通用寄存器,数据(Data)寄存器,一般在作双字长运算时把DX和AX组合在一起存放一个双字长数,用来存放高位字,也可用来存放I/O的端口地址。
8086中通用寄存器的一般用法和隐含用法
2.地址指针(SP/BP)和变址寄存器(SI/DI)
EU中设有两个地址指针寄存器SP、BP和两个变址寄存器SI、DI。
指针及变址寄存器(4个16位寄存器)
指针寄存器
SP (Stack Pointer) 堆栈指针寄存器(存放栈顶的偏移地址)
BP (Base Pointer) 基址指针寄存器(堆栈区中的一个基址地址)
变址寄存器
SI (Source Index) 源变址寄存器
DI (Destination Index) 目的变址寄存器
8086中地址寄存器的一般用法和隐含用法
需要特别指出:
(1&#x