第二章微处理器Word格式.docx
《第二章微处理器Word格式.docx》由会员分享,可在线阅读,更多相关《第二章微处理器Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
8086有16根数据线和20根地址线,其寻址空间达1M字节;
8088是一种准16位微处理器,它的内部寄存器、内部运算部件以及内部操作都是按16位设计的,但对外的数据总线只有8条。
8086/8088芯片内设有硬件乘除指令部件和串处理指令部件,可对位、字节、字串、BCD码等多种数据类型进行处理。
1)总线接口单元BIU和执行单元EU
1总线接口单元BIU
Ø
BIU的功能是8086CPU与存储器或I/O设备之间的接口部件,负责全部引脚的操作。
具体来说,BIU负责产生指令地址,根据指令地址从存储器取出指令,送到指令队列中排队或直接送给EU去执行。
BIU也负责从存储器的指定单元或外设端口中取出指令规定的操作数传送给EU,或者把EU的操作结果传送到指定的存储单元或外设端口中。
BIU内部设有4个16位的段寄存器:
代码段寄存器CS(CodeSegment)、数据段寄存器DS(DataSegment)、堆栈段寄存器SS(StakeSegment)、附加段寄存器ES(ExtraSegment)。
一个16位的指令指针寄存器IP(InstructionPointer)
6字节指令队列缓冲器。
20位地址加法器和总线控制电路。
2执行单元EU
执行单元EU的功能是从BIU的指令队列中取出指令代码,然后执行指令所规定的全部功能。
在执行指令的过程中,如果需要向存储器或I/O传送数据,则EU向BIU发出访问存储器或I/O的命令,并提供访问的地址和数据。
16的算术逻辑单元ALU(ArithmeticandLogicUnit)
16位的状态标志寄存器F(Flags)
一组数据暂存寄存器
一组指令指针和变址寄存器
一个数据暂存器
EU控制电路
2)8086CPU内部寄存器
Intel8086/8088CPU共有14个16位的寄存器。
1通用寄存器
通用寄存器共有8个,按照使用情况分为数据寄存器(DataRegister)、指针寄存器(PointerRegister)和变址寄存器(IndexRegister)。
2段寄存器
8086CPU的BIU中有4个16位的段寄存器,它们是用来存放段起始地址值(又叫段基址值),8086的指令能直接访问这4个段,它们(SLCodeSegment)代码段寄存器、SS(StackSegment)堆栈段寄存器、DS(DataSegment)数据段寄存器和ES(ExtraSegment)附加段寄存器。
3状态寄存器
Intel8086/8088CPU的处理器设置了一个16位的状态标志寄存器(Flags)。
其中安排了9位用作标志位,包括6个状态标志位(CF、PF、AF、ZF、SF、OF)和3个控制标志位(TF、IF、DF)。
4指令指针寄存器
IP(InstructionPointer)指令指针寄存器相当于程序计数器PC,用于控制程序中指令的执行顺序。
IP内容是下一条待取指令的偏移地址,每取一次指令,IP内容就自动加1,从而保证指令按顺序执行。
IP实际上是指令机器码存放单元的地址指针,IP的内容可以被转移指令强制改写。
但程序不能直接访问IP,即不能用指令去取出IP的值或给IP赋值。
2.8086/8088的引脚和工作方式
1)8086/8088CPU引脚特性
8086/8088CPU采用双列直插式的封装形式,有40条引脚,如下图所示。
1地址/数据总线AD15~AD0(AddressDataBus)
这是分时复用的存储器或I/O端口地址和数据总线,双向工作,三态。
在总线周期的T1状态作为地址线,输出要访问的存储器或I/O端口的地址;
在总线周期的T2~T3状态作为数据线传输数据。
2地址/状态线A19/S6~A16/S3(AddressStatus)
地址/状态复用引脚,输出,三态。
在总线周期的T1状态,用来输出地址的最高4位。
在总线周期的T2、T3、TW和T4状态时,用来输出状态信息。
3控制总线
READY
INTR(InterruptRequest)
NMI(Non-MaskableInterrupt)
RESET
CLK(Clock)
2)最小/最大工作方式
18086最小工作方式时的引脚功能
8086/8088CPU最小工作方式用于单片微处理器组成的小系统,在这种方式中,由8086/8088CPU直接产生小系统所需要的全部控制信号。
当接+5V电压时,CPU工作于最小方式,引脚24~31的控制功能有变化。
28086最小工作方式时的系统总线结构
最小工作方式,就是系统中只有一个微处理器(如8086)。
在这种系统中,所有的总线控制信号都直接由8086产生,系统中总线控制逻辑电路减少到最少。
最小工作方式系统适合于较小规模的应用,其典型系统结构图如下图所示。
38086最大工作方式时的引脚功能
当8086的33脚接地时,系统工作于最大方式。
最大方式用在中规模或大规模的8086/8088系统中,包含有两个或多个微处理器,其中8086或8088是主处理器,其他的称为协处理器。
和8086匹配的协处理器有两个:
一个是8087,专用于数值运算,能实现多种类型的数值操作;
另一个是用于输入/输出处理的8089,它有专用的输入/输出指令系统,8086就不用再处理这类工作,从而提高主处理器的效率。
48086最大工作方式时的系统总线结构
系统中增加了总线控制器8288,使总线控制功能更加完善。
在最大方式下,许多总线控制信号都是通过总线控制器8288产生的,而不是8086直接产生,这样在8086最小方式下提供的总线控制信号就可以重新定义,这些引脚大多用来支持多微处理器系统。
8086CPU最大方式时的典型系统结构如下图所示。
第二讲8088/8086微处理器(续)
3.8086/8088的存储器组织
1)存储器的标准结构
8086CPU有20根地址线,可寻址1MB存储空间。
存储器按字节编址,从00000H—FFFFFH,每个字节用惟一的地址表示。
存放的数是字节形式,存储器按顺序排列存放。
存放的数为一个字时,将字的高位字节放在高地址中,将低位字节放在低地址中,高低地址连续。
对于存放的字,其低位字节可以在奇数地址中(即从奇地址开始)存放,这种方式称为非规则存放,这样存放的字称为非规则字,CPU需要两次访问存储器才能存取该字。
也可以在偶数地址中(即从偶地址开始)存放,这是规则存放,这样存放的字称为规则字,CPU一次便可对该字所在的两个存储单元进行存取。
为加快程序的运行速度,编程时应注意用规则字。
8088系统外部数据总线只有8位,CPU每次访问存储器只读写一个字节,如果要读写一个字,CPU需要访问两次存储器。
2)存储器的分段
8086的内部结构以及内部数据的直接处理能力和寄存器都只有16位,故只能直接提供16位地址,寻址64KB存储空间。
将1MB字节的存储器空间分成若干逻辑段,每个段最长为64KB,段内地址是连续的。
逻辑段之间可以是连续的,也可以是分开的或重叠的。
段的首地址必须能被16整除,即每段首地址的低4位必须为0,高16位就是段基地址值。
段内任一存储单元与它所在段的段基地址值之间的距离称为偏移量或偏移地址。
段基地址值存放在段寄存器CS、SS、DS、ES中,程序可以从4个段寄存器给出的逻辑段中存取代码和数据。
3)物理地址和逻辑地址
物理地址(PhysicalAddress)又叫实际地址,是CPU和存储器进行数据交换时使用的地址。
已知一个存储单元的段基地址值和它的偏移量,就可计算方其物理地址:
值×
10H+偏移地址
逻辑地址由两部分组成:
段基值和偏移量。
它们都是用无符号的16位二进制数或4位十六进制数表示。
逻辑地址的一般表示形式为:
段基值:
偏移量
4)堆栈
所谓堆栈(Stack)是为保护数据、调度数据而开辟的特殊数据区域。
堆栈的一端是固定的(栈底),另一端是浮动的(栈顶),正常的堆栈操作,其信息的存取在浮动的一端进行。
堆栈中的数据严格按照“先进后出(FirstInLastOut或FILO)”的原则进行存取操作,即数据是由栈顶压入和弹出的。
由堆栈段寄存器SS提供段基值,堆栈指针寄存器SP提供偏移地址,每当压入或弹出数据时,SP的内容会自动修改,它始终指向堆栈的顶部。
计算物理地址的公式是:
物理地址(PA)=(SS)×
10H+(SP)
当需要对堆栈段中的某个单元的数据进行操作时,还可使用BP寄存器通过各种寻址方式得到有效地址EA作为偏移地址,这样其物理地址是:
物理地址(PA)=(SS)×
10H+EA
4.8086的工作时序
1)系统的复位和启动操作
8086/8088的复位和启动操作是通过RESET引脚触发执行的。
要求复位信号RESET至少维持4个时钟周期的高电平,当该信号一旦进入高电平,8086/8088CPU就会结束现行操作,保持在复位状态,直到RESET变为低电平为止。
2)8086CPU最小方式时总线时序
8086/8088CPU与存储器及I/O端口交换数据需要执行一个总线周期。
它可分为两部分,即读总线周期和写总线周期。
前者是CPU从存储器或I/O端口读取数据。
后者是CPU将数据写入存储器或I/O端口。
1读总线周期时序
一个最基本的读总线周期包含4个状态,即T1、T2、T3、和T4。
在存储器和外设速度较慢时,要在T3之后插入一个或几个等待状态TW。
如下图所示为8086CPU最小方式时读总线周期时序图。
图中画了4个T状态即一个总线周期,且每个T状态都是一个占空度约33%的时钟周期,全部时序图都以这个时钟作为基准。
2写总线周期时序
3中断相应周期时序
当CPU检测出外部中断源通过INTR引线向CPU发出中断请求信号后,如果标志寄存器的中断允许标志位IF=1,则CPU在当前指令执行完以后,进入中断响应过程。
通过执行两个连续的中断响应周期,CPU转去执行中断服务程序。
中断响应周期时序如下图所示。
4总线请求与总线响应时序
第三讲80286微处理器
80286是INTEL公司继8086之后推出的产品,它是8086的改进型微处理器。
同8086相比,80286是