一文看懂8088和8086微型计算机的区别
一、8088介绍
8088是一个Intel以8086为基础的微处理器,拥有16位元暂存器和8位元外部资料总线。8088使用8位元的设计,所针对的是较为经济之系统。在它推出时候,大的资料总线宽度电路板还是相当地昂贵。8088的预取(prefetch)贮列(queue)是4字节,相对于8086的是6字节。1979年,英特尔公司开发出了8088。8086和8088在芯片内部均采用16位数据传输,所以都称为16位微处理器,但8086每周期能传送或接收16位数据,而8088每周期只采用8位。因为最初的大部分设备和芯片是8位的,而8088的外部8位数据传送、接收能与这些设备相兼容。
8088功能结构;
8088CPU内部用两个独立的功能部件组成,分别为BIU和EU。
BIU(BusInterfaceUnit)BIU由段寄存器、IP、指令队列、地址加法器和控制逻辑组成。
BIU的功能是负责从内存中取指令送入指令队列,实现CPU与存储器、I/O接口之间的数据传送。
EU(ExecuTIonUnit)EU由通用寄存器、F寄存器、ALU和EU控制部件组成。EU的功能是分析指令和执行指令。
8088的指令系统:
MOV传输指令
1.数据传送指令(包括:MOV传送指令、堆栈操作指令、数据交换指令、地址传送指令、标志寄存器传送指令、换码指令、输入输出指令)
数据传送指令的特点:将数据从一个地址传送到另一个地址;数据在传送过程中不发生任何变化;对标志寄存器的内容无任何影响。
2.算术运算指令(包括:加法指令、减法指令、乘法指令、除法指令、十进制调整指令)
算术运算指令的特点:对状态标志位有影响;源操作数不变;目标操作数多数情况下发生变化。
3.逻辑运算和移位指令(包括:逻辑运算指令、移位指令、循环指令)
4.串操作指令(包括:MOVS指令、LODS指令、STOS指令、SCAS指令、CMPS指令)
重复操作前缀REP;REPZ/REPE;REPNZ/REPNE
串指令;若(CX)≠0,重复执行串指令
串指令;若(CX)≠0且(ZF)=1,重复执行串指令
串指令;若(CX)≠0且(ZF)=0,重复执行串指令偶就
5.控制转移指令(包括:无条件转移指令、条件转移指令、循环控制指令、子程序调用指令、子程序返回指令、中断返回指令)
控制转移指令的特点:将目标地址送入IP、CS从而实现转移。
二、8086介绍
Intel 8086是一个由Intel于1978年所设计的16位微处理器芯片,是x86架构的鼻祖。不久之后,Intel 就推出了 Intel 8088 (一个拥有8根外部数据总线的微处理器)。它是以8080和8085的设计为基础,拥有类似的寄存器组,但是数据总线扩充为16位。总线界面单元(Bus Interface Unit)透过6字节预存(prefecth) 的队列(queue)位指令给执行单元(ExecuTIon Unit),所以取指令和执行是同步的,8086 CPU有20条地址线,可直接寻址1MB的存储空间,每一个存储单元可以存放一个字节(8位)二进制信息。
8086结构:
1、总线接口单元
总线接口部件由下列各部分组成
⑴4个段地址寄存器:
CS(code segment)——16位的代码段寄存器;
DS(data segment)——16位的数据段寄存器;
ES(extra segment)——16位的扩展段寄存器;
SS(stack segment)——16位的堆栈段寄存器;
⑵16位的指令指针寄存器IP;
⑶20位的地址加法器;
⑷6字节的指令队列缓冲器。
2、执行单元
执行部件由下列几个部分组成:
⑴8个通用寄存器:即AX、BX、CX、DX,BP,SP,SI,DI ;
其中,4个数据寄存器:AX、BX、CX、DX;
2个地址指针寄存器:BP(base pointer),SP(stack pointer);
2个变址寄存器:SI(source index),DI(desTInaTIon index) [2] ;
⑵标志寄存器FR(flags register);
⑶算术逻辑单元ALU(arithmetic logic unit)。
EU负责全部指令的执行,同时向BIU输出数据(操作结果),并对寄存器和标志寄存器进行管理。在ALU中进行16位运算,数据传送和处理均在EU控制下执行。
8086cpu结构图
8086的两种工作方式:
1、最小模式
用于由8086单一微处理器构成的小系统。在这种方式下,由8086CPU直接产生小系统所需要的全部控制信号。器系统特点是:总线控制逻辑直接由8086CPU产生和控制。若有CPU以外的其他模块想占用总线,则可以向CPU提出请求,在CPU允许并响应的情况下,该模块才可以获得总线控制权,使用完后,又将总线控制权还给CPU。
2、最大模式
用于实现多处理机系统,其中,8086CPU被称为主处理器,其他处理器被称为协处理器。在这种方式下,8086CPU不直接提供用于存储器或I/O读写的读写命令等控制信号,而是将当前要执行的传送操作类型编码为3个状态位输出,由总线控制器8288对状态信号进行译码产生相应控制信号。最大模式系统的特点是:总线控制逻辑由总线控制器8288产生和控制,即8288将主处理器的状态和信号转换成系统总线命令和控制信号。协处理器只是协助主处理器完成某些辅助工作,即被动的接受并执行来自主处理器的命令。和8086配套使用的协处理器有两个:一个是专用于数值计算的协处理器8087,另一个是专用于输入输出操作的协处理器8089。8087通过硬件实现高精度整数浮点数运算。8089有其自身的一套专门用于输入输出操作的命令系统,还可带局部存储器,可以直接为输入输出设备服务。增加协处理器,使得浮点运算和输入输出操作不再占用8086时间,从而大大提高了系统的运行效率。
三、8088和8086微型计算机的区别
8088和8086两者的执行部件EU完全相同,其指令系统,寻址能力及程序设计方法都相同,所以两种CPU完全兼容。8086和8088在芯片内部均采用16位数据传输,所以都称为16位微处理器,但8086每周期能传送或接收16位数据,而8088每周期只采用8位。因为最初的大部分设备和芯片是8位的,而8088的外部8位数据传送、接收能与这些设备相兼容。8088采用40针的DIP封装,工作频率为6.66MHz、7.16MHz或8MHz,微处理器集成了大约29000个晶体管。8088和8086的不同大致可归纳为以下几个:
1、外部数据总线位数的差别
8086CPU的外部数据总线有16位,在一个总线周期内可输入/输出一个字(16位数据),使系统处理数据和对中断响应的速度得以加快;而8088CPU的外部数据总线为8位,在一个总线周期内只能输入/输出一个字节(8位数据)。也正因为如此,8088被称为准16位处理器。
2、指令队列容量的差别
8086CPU的指令队列可容纳6个字节,且在每个总线周期中从存储器中取出2个字节的指令代码填入指令队列,这可提高取指操作和其它操作的并行率,从而提高系统工作速度;而8088CPU的指令队列只能容纳4个字节,且在每个总线周期中只能取一个字节的指令代码,从而增长了总线取指令的时间,在一定条件下可能影响取指令操作和其它操作的并行率。
3、引脚特性的差别
两种CPU的引脚功能是相同的,但有以下几点不同:
(1)AD15~AD0的定义不同:在8086中都定义为地址/数据复用总线;而在8088中,由于只需用8条数据总线,因此,对应予8086的AD15~AD8这8条引脚,只作地址线使用。
(2)34号引脚的定义不同:在8086中定义为BHE信号;而在8088中定义为SS0,它与DT/R,IO/M一起用作最小方式下的周期状态信号。
(3)28号引脚的相位不同:在8086中为M/IO;而在8088中被倒相,改为IO/M,以便与8080/8085系统的总线结构兼容。