8051与8086和8088的区别
以下是一些一般信息:(是复制粘贴的)
8086是英特尔的cpu。地球上不仅英特尔,摩托罗拉也生产CPU。随着人类的进步,CPU也在不断发展。8086发展的越来越丰满,也就是后来的/80286/80386/80486/奔腾/p2/p3/p4。
8051是单片机,是计算机的一种。实际上,8051不仅包含CPU,还包含RAM、ROM、定时器、I/O接口等。,但比PC小很多,用途也不一样。为什么说8051系列?8051是intel发明的一项技术,它有自己的这项技术的产品——MCS-51+0。MCS-51系列列表包括80C31、8051、8751三个基本型号,对应的低功耗型号80C31、8051,所以MCS-51。80年代中期以后,Intel以专利转让的形式销售8051内核,8051内核由AMTEL、华邦、飞利浦、摩托罗拉、ANANOG DEVICES、DALLAS等不同公司封装,生产出了性感的C51系列。比如:ZILOG的Z8系列,飞利浦的51X系列,摩托罗拉的68HC05/08系列等。
8086/8088微处理器
8086是Inter系列的16位微处理器,芯片上有29000个晶体管,采用HMOS技术。
艺术制造,采用+5V单电源,时钟频率5MHz~10MHz。
8086有16条数据线和20条地址线。它可以处理16位数据和8位数据。能
寻址的存储空间是1MB。
Inter公司在推出8086的时候,也推出了一种准16位的微处理器8088和8088内部寄存器。运算部件和内部数据总线都是按照16位设计的,只有8条单条外部数据总线。推出8086的主要目的是直接兼容当时的一套Inter外部设备接口芯片。8086和8088在寄存器结构、编程结构、存储器组织和I/O端口组织上完全相同或略有不同。在本节中,将解释这些差异。
寄存器结构为1.3.1 8086/8088
图1-3显示了8086/8088的寄存器结构。
1.数据寄存器
数据寄存器是图顶部所示的四个寄存器AX、BX、CX和DX。这些寄存器用于临时存储操作数和计算期间获得的结果。它可以处理16位数和8位数。处理8位时,这4个16位寄存器作为8个8位寄存器使用,即AH、Al、BH、BL、CH、CL、DH、DL。
除了作为通用寄存器,这四个数据寄存器还有自己的特殊用途:
AX(累加器)用作累加器,是算术运算的主寄存器。AX也用于字乘和字除。此外,所有I/O指令都与AX周围的外部设备传输信息。
计算寄存器地址时,BX(base)常被用作基值寄存器;
CX(count)在操作指令和循环中用作计数器;
DX(数据)在字乘和字除运算中,DX和AX组合成一个双字数,DX用来存储高度为16的数字。此外,在间接I/O指令中,DX用于指定I/O端口地址。
2.指针寄存器和变址寄存器
指针寄存器包括堆栈寄存器SP(堆栈指针)和基数指针寄存器BP(基址指针),并改变
值寄存器包括源变址寄存器SI(源变址)和目的变址寄存器DI(目的变址)。这
这四个寄存器都是16位寄存器,也可用于在操作期间存储操作数(仅
在字中),但它通常用于在段内寻址时提供偏移地址。SP和BP通常与段寄存器SS相同。
为了确定堆栈寄存器中某个单元的地址,SP用来表示堆栈顶部的偏移地址,BP可以
作为堆栈区的基址,用来确定堆栈中的操作数地址。SI、DI通用寄存器和段寄存器
DS用于确定数据段中存储单元的地址。si和di具有自动递增和自动递减功能。
这使得在字符串操作指令中用作索引非常方便。SI用作隐含源索引DS,DI用作索引。
ES使用隐式目的地索引来达到数据段和附加段寻址的目的。
3.分段寄存器
一个* * *有四个段地址寄存器,它们是:
CS(代码段寄存器)16位代码段寄存器
Ds(数据段寄存器)16位数据段寄存器
SS(堆栈段寄存器)16位堆栈段寄存器
Es(额外段寄存器)16是一个附加段寄存器。
下面会提到,IBM PC采用内存地址分段法,这样8086/8088可以寻址1MB内存。段寄存器用于存储段地址,CS段寄存器用于存储当前运行的程序。DS段寄存器用于存储当前运行的数据。如果程序中使用了段操作指令,源操作数也
存储在数据段,SS段寄存器指定堆栈所在的区域;ES段寄存器用于存储辅助数据。
因为ES是一个附加的数据段,所以在执行字符串操作指令时,目的操作数一般存储在ES段。
4.控制寄存器
IP(指令指针)是一个指令指针寄存器,是一个16位寄存器,用来存储代码段中的偏移地址。它只能与CS一起使用,以确定下一条指令的地址。根据这个地址,控制器从指定的存储器中取出下一条要执行的指令,并修改IP以指向下一条要执行的指令。可见IP
寄存器用于控制指令系列的执行流程。
PSW(处理器状态字)是一个状态标志寄存器和16位寄存器,我们将在本节稍后介绍。
上面介绍的这些寄存器在计算机中起着非常重要的作用。在运算过程中,这些寄存器起着存储器的作用,但存取速度比存储器快得多。
1.3.2 8086/8088的编程结构
所谓编程结构,是指从用户角度看的结构,是按功能划分的结构,当然和CPU内部实际的物理结构是不一样的。
8086的编程结构见图1-4。他被分成两部分。即总线接口部分BIU(总线接口单元)和执行部分EU(执行单元)。
总线接口部分负责与内存和外设端口传输数据。具体来说,当总线接口部分从存储器中取出指令并发送到指令队列时,CPU执行指令时,所需的操作数也被总线接口部分从指定的存储单元或外设端口中取出,并发送到执行部分执行,反之,执行部分的运算结果也被传递。
总线接口被传送到指定的存储单元或外设端口。
总线接口组件由以下四部分组成:4个段寄存器、指令指针寄存器IP、20位地址加法器和6字节指令队列。
地址加法器用于产生20个地址。如上所述,8086/8088中的所有寄存器都是16位,8086/8088可以用20位地址寻址1MB存储空间,这就需要一个按照16的地址加法器。
寄存器信息,计算20位物理地址,具体算法会在本节后面讲内存组织的时候介绍。
总线接口部分需要注意的一点是,8086的指令队列是6字节,而8088的是4字节。无论是8086还是8088,在执行指令的同时都会从内存中取出下面的一条或多条指令,取出的指令依次放入指令队列,按顺序排列,依次在EU中执行。执行部分EU的功能是负责指令的执行。
执行部分包括:4个数据寄存器、2个指针寄存器、2个变量值寄存器、1个状态标志寄存器和一个算术逻辑单元。
从程序结构中可以看出,由于总线接口部分和执行部分是分离的,所以每当EU执行一条指令,导致指令队列中有两个或一个指令字节空缺时,BIU立即从内存中取出下面的一个或几个指令来填充他的指令队列。这样,一般情况下,CPU执行完一条指令就可以立即执行下一条指令,不像以前的8位CPU执行完一条指令就需要等待下一条指令。
1.3.3 8086/8088的内存组织
1.存储单元的地址和内容
2.计算机存储信息的基本单位是二进制位,每八位组成一个字节。