8051与8086、8088的区别

news/2024/12/1 5:48:59/
主要8051是8位,而8086和8088是16位,所以汇编时会在书写方面不一样,那就要注意算法了,但只要掌握好8051就很快可以过度到16位机
以下是一些概括性的资料:(是复制粘贴的)
8086是intel的CPU,地球上生产CPU的不只intel还有motorola.随着人类的进步cpu也不断发展。8086发育得越来越丰满了,也就是以后的/80286/80386/80486/奔腾/p2/p3/p4.
8051是单片机,是一种计算机了,实际上8051内除有CPU外,内部还包括RAM、ROM、定时器、I/O接口等,只是她比PC机小得多,用处也不一样而已。为什么说8051系列呢?8051是intel发明的技术,它有自己的这种技术的产品--MCS-51。MCS-51系列单既包括三个基本型80C31、8051、8751,对应的低功耗型号80C31、8051、87C51,因而MCS-51特指Intel的这几种型号。上个世纪80年代中期以后,Intel将8051内核以专利转让的形式卖了出去,8051被不同的公司AMTEL、WINBOND、PHILIPS、、MOTOROLA、ANANOG DEVICES、DALLAS这些包下了,弄出了各有千秋,风姿sex appeal的C51系列。如:ZILOG的Z8系列,PHILIPS的51X系列,motorola的68HC05/08系列等8086/8088微处理器 
8086是Inter系列的16位微处理器,芯片上有2.9万个晶体管,采用 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. 数据寄存器 
数据寄存器为图中最上边所示的4个寄存器AX,BX,CX,DX。这些寄存器用以暂时保存计算过程中所得到的操作数及结果。他能处理16位数,也能处理8位数,当处理8位数时,这4个16位寄存器作为8个8为寄存器AH,AL,BH,BL,CH,CL,DH,DL来使用。 
这4个数据寄存器除了作为通用寄存器以外,还有各自的专门用途: 
AX(accumulator)做累加器用,是算术运算的主要寄存器。AX还用在字乘和字除法中,此外,所有的I/O指令都是以AX为中心与外部设备进行信息传送; 
BX(base)在计算寄存器地址时,常用做基值寄存器; 
CX(count)再串操作指令及循环中用做计数器; 
DX(data)在字乘法,字除法运算中,将DX,AX组合成一个双字长数,DX用来存放高16位数。另外,在间接的I/O指令中,DX用来指定I/O端口地址 
2. 指针寄存器及变址寄存器 
指针寄存器包括堆栈寄存器SP(stack pointer)和基数指针寄存器BP(base pointer),变 
值寄存器包括源变址寄存器SI(source index)和目的变值寄存器DI(destination index)。这 
4个寄存器都是16位寄存器,这些寄存器在运算过程中也可以用来存放操作数(只能 
以字为单位),但经常的用途是在段内寻址时提供偏移地址,SP,BP一般与段寄存器SS 
联用,以确定堆栈寄存器中某一单元的地址,SP用以指示栈顶的偏移地址,而BP可 
作为堆栈区中的一个基地址,用以确定在堆栈中的操作数地址。SI,DI一般与段寄存器 
DS联用,以确定数据段中某一存储单元的地址,SI,DI具有自动增量和自动减量的功能, 
这一点使在串操作指令中用做变址非常方便,SI作为隐含的源变址DS联用,DI作为 
隐含的目的变址和ES连用,从而达到在数据段和附加段中寻址的目的 
3. 段寄存器 
一共有4个段地址寄存器,他们是: 
CS(code segment register)16位代码段寄存器 
DS(data segment register)16位数据段寄存器 
SS(stack segment register)16位堆栈段寄存器 
ES(extra segment register )16为附加段寄存器 
下面将要讲到,在IBM PC机中采用存储器地址分段的办法,使8086/8088能寻址1MB的内存。而段寄存器就是用来存放段地址的,CS段寄存器用来存放当前正在运行的程序;DS段寄存器用来存放当前运行的数据,若程序中使用了段操作指令,源操作数也 
存放在数据段中,SS段寄存器规定了堆栈所处的区域;ES段寄存器用来存放辅助数据 
,因ES是一个附加的数据段,在执行串操作指令时,目的操作数也一般存放在ES段中。 
4. 控制寄存器 
IP(instruction pointer)是指令指针寄存器,是一个16位寄存器,用来存放代码段中的偏移地址。他与CS连用才能确定下一条指令的地址,根据这一地址,控制器从指定的存储器中,取出下一条要执行的指令,并修改IP,以便指向下一条要执行的指令。可见IP 
寄存器是用来控制指令系列的执行流程的。 
PSW(processor status word)是状态标志寄存器,也是一个16位寄存器,我们将在本节后面加以介绍。 
上面介绍的这些寄存器在计算机中有非常重要的作用,在运算过程中,这些寄存器起着存储器的作用,但存取速度比存储器快得多。 
1.3.2 8086/8088的编程结构 
所谓编程结构是指从使用者看到的结构,这是一种按功能划分的结构,这种结构与CPU内部的实际物理结构当然是有区别的。 
8086的编程结构见图1-4。他分两部分。即总线接口部分BIU(bus interface unit)和执行部件EU(execution unit). 总线接口部分负责与存储器,外设端口传送数据。具体讲,总线接口部分从内存中取出指令送到指令队列时,CPU执行指令时,所需的操作数也由总线接口部分从指定的内存单元或外设端口取来,传送给执行部分去执行,反过来,执行部分的操作结果也通过 
总线接口传送到指定的内存单元或外设端口中去。 
总线接口部件由下面4部分组成: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执行一条指令时,造成指令队列空出2个或空出一个指令字节时 ,BIU马上从内存中取出下面一条或几条指令,以添满他的指令队列。这样,一般情况下,CPU在执行完一条指令后,便可马上执行下一条指令,不像以往8位CPU那样,执行完一条指令后,需等待下一条指令 
1.3.3 8086/8088的存储器组织 
1. 存储单元的地址和内容 
2. 在计算机中用以存储信息的基本单位是一个二进制位,每8个组成一个字节

http://www.ppmy.cn/news/416190.html

相关文章

tomcat启动不了,显示Several ports (8005, 8080, 8009) required by Tomcat v5.5 Server at localhost are alread

这种情况主要就是端口被占用的问题,我给出一种我解决的方法, 1.先重启一下eclipse,看是不是缓存的原因;如果没用,往下面看: 2.第一步,查看占用8080端口进程是哪一个:查看方式&…

启动Tomcat服务器报错: Several ports (8005, 8080, 8009) required by Tomcat v5.5 Server at localhost are alr

启动Tomcat服务器报错: Several ports (8005, 8080, 8009) required by Tomcat v5.5 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you wil…

8088微处理器引脚

最小模式下 1、AD0—AD7:低8位地址和低8位数据信号分时复用。在传送地址信号时为单向,传送数据信号时为双向。 2、A8—A15 :8位地址信号 3、A16–A19:高4位地址信号,与状态信号分时复用。 4、SS0与IO/M、DT/R决定了…

Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use.

Windows下Tomcat报端口被占用问题 平时都好好的tomcat,今天突然报出来Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use. The server may already be running in another process, or a system process may be u…

Windows 服务器怎么开启8081端口

在 Windows 服务器上开启8081端口的方法如下: 打开命令提示符,输入 "netsh" 并回车。输入 "advfirewall firewall add rule name"Open Port 8081" dirin actionallow protocolTCP localport8081" 并回车。重启防火墙服务,…

OCR中相关概念解析

1,连通体 OCR指的是光学字符识别技术,用于将扫描或拍摄的文本图像转换为可编辑的文本格式。在OCR处理过程中,一个很重要的步骤是将图像中的字符分割出来,以便进行识别。在字符分割过程中,连通体是一个常用的概念。 连通…

Tomcat运行错误,端口占用(8005, 8080, 8009)

Tomcat错误信息如下: Several ports (8005, 8080, 8009) required by Tomcat v5.5 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will n…

tomcat报错,提示Several ports (8005, 8080, 8009) required by Tomcat v8.5 Server at localhost are already

eclipse运行web项目报错提示: Several ports (8005, 8080, 8009) required by Tomcat v8.5 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server yo…