当前位置:文档之家› 8086简介

8086简介

第二章8086微处理器

【回顾】微型计算机及微机系统的组成、结构与工作过程,CPU的基本概念与一般结构。本讲重点8086微处理器的一般性能特点,内部编程结构的两大组成部分及在信息处理中的相互协调关系,处理器状态字PSW及各个标志位,8086微机系统的存储器组织。一、8086微处理器

1.引言

8086微处理器是Intel公司推出的第三代CPU芯片,它们的内部结构基本相同,都采用16位结构进行操作及存储器寻址,但外部性能有所差异,两种处理器都封装在相同的40脚双列直插组件(DIP)中。

2.8086微处理器的一般性能特点:

16位的内部结构,16位双向数据信号线;

20位地址信号线,可寻址1M字节存储单元;

较强的指令系统;

利用第16位的地址总线来进行I/O端口寻址,可寻址64K个I/O端口;

中断功能强,可处理内部软件中断和外部中断,中断源可达256个;

单一的+5V电源,单相时钟5MHz。

另外,Intel公司同期推出的Intel8088微处理器一种准16位微处理器,其内部寄存器,内部操作等均按16位处理器设计,与Intel8088微处理器基本上相同,不同的是其对外的数据线只有8位,目的是为了方便地与8位I/O接口芯片相兼容。

3.8086CPU的编程结构

编程结构:是指从程序员和使用者的角度看到的结构,亦可称为功能结构。

如图2-1所示是8086CPU的内部功能结构。

从功能上来看,8086CPU可分为两部分,即总线接口部件BIU(Bus Interface Unit)和执行部件EU(Execution Unit)。

(1) 执行部件(EU)

功能:负责指令的执行。

组成:包括①ALU(算术逻辑单元)、②通用寄存器组和③标志寄存器等,主要进行8位及16位的各种运算。

图2-1 8086/8088CPU内部功能结构图

(2) 总线接口部件(BIU)

功能:负责与存储器及I/O接口之间的数据传送操作。具体来看,完成取指令送指令队列,配合执行部件的动作,从内存单元或I/O端口取操作数,或者将操作结果送内存单元或者I/O端口。

组成:它由①段寄存器(DS、CS、ES、SS)、②16位指令指针寄存器IP(指向下一条要取出的指令代码)、③20位地址加法器(用来产生20位地址)和④6字节(8088为4字节)指令队列缓冲器组成。

(3) 8086 BIU的特点

①8086的指令队列分别为6/4个字节,在执行指令的同时,可从内存中取出后续的指令代码,放在指令队列中,可以提高CPU的工作效率。

②地址加法器用来产生20位物理地址。8086可用20位地址寻址1M字节的内存空间,而CPU内部的寄存器都是16 位,因此需要由一个附加的机构来计算出20位的物理地址,这个机构就是20位的地址加法器。

例如:CS=0FE00H,IP=0400H,则表示要取指令代码的物理地址为0FE400H。(4) BIU与EU的动作协调原则:

总线接口部件(BIU)和执行部件(EU)按以下流水线技术原则协调工作,共同完成所要求的信息处理任务:

①每当8086的指令队列中有两个空字节,或BIU就会自动把指令取到指令队列中。其取指的顺序是按指令在程序中出现的前后顺序。

②每当EU准备执行一条指令时,它会从BIU部件的指令队列前部取出指令的代码,然后用几个时钟周期去执行指令。在执行指令的过程中,如果必须访问存储器或者I/O端口,那么EU就会请求BIU,进入总线周期,完成访问内存或者I/O端口的操作;如果此时BIU正好处于空闲状态,会立即响应EU的总线请求。如BIU正将某个指令字节取到指

令队列中,则BIU将首先完成这个取指令的总线周期,然后再去响应EU发出的访问总线的请求。

③当指令队列已满,且EU又没有总线访问请求时,BIU便进入空闲状态。

④在执行转移指令、调用指令和返回指令时,由于待执行指令的顺序发生了变化,则指令队列中已经装入的字节被自动消除,BIU会接着往指令队列装入转向的另一程序段中的指令代码。

从上述BIU与EU的动作管理原则中,不难看出,它们两者的工作是不同步的,正是这种既相互独立又相互配合的关系,使得8086可以在执行指令的同时,进行取指令代码的操作,也就是说BIU与EU是一种并行工作方式,改变了以往计算机取指令→译码→执行指令的串行工作方式,大大提高了工作效率,这正是8086获得成功的原因之一。

(5) 8086 CPU内部寄存器

8086 内部的寄存器可以分为通用寄存器和专用寄存器两大类,专用寄存器包括指针寄存器、变址寄存器等。

①通用寄存器

8086 有4个16位的通用寄存器(AX、BX、CX、DX),可以存放16位的操作数,也可分为8个8位的寄存器(AL、AH;BL、BH;CL、CH;DL、DH)来使用。其中AX称为累加器,BX称为基址寄存器,CX称为计数寄存器,DX称为数据寄存器,这些寄存器在具体使用上有一定的差别,如表2-1所示。

②指针寄存器

系统中有两个16位的指针寄存器SP和BP,其中SP是堆栈指针寄存器,由它和堆栈段寄存器SS一起来确定堆栈在内存中的位臵;BP是基数指针寄存器,通常用于存放基地址。

③变址寄存器

系统中有两个16位的变址寄存器SI和DI,其中SI是源变址寄存器,DI是目的变址寄存器,都用于指令的变址寻址方式。

④控制寄存器

IP、标志寄存器是系统中的两个16位控制寄存器,其中IP是指令指针寄存器,用来控制CPU的指令执行顺序,它和代码段寄存器CS一起可以确定当前所要取的指令的内存地址。顺序执行程序时,CPU每取一个指令字节,IP自动加1,指向下一个要读取的字节;当IP单独改变时,会发生段内的程序转移;当CS和IP同时改变时,会产生段间的程序转移。

标志寄存器的内容被称为处理器状态字PSW,用来存放8086 CPU在工作过程中的状态。

表2-1 内部寄存器主要用途

寄存器用途

AX 字乘法,字除法,字I/O

AL 字节乘,字节除,字节I/O,十进制算术运算

AH 字节乘,字节除

BX 转移

CX 串操作,循环次数

CL 变量移位,循环控制

DX 字节乘,字节除,间接I/O

⑤段寄存器

系统中共有4个16位段寄存器,即代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附加段寄存器ES。这些段寄存器的内容与有效的地址偏移量一起,可确定内存的物理地址。通常CS划定并控制程序区,DS和ES控制数据区,SS控制堆栈区。

(6) 处理器状态字PSW

8086 内部标志寄存器的内容,又称为处理器状态字PSW。其中共有9个标志位,可分成两类:一类为状态标志,一类为控制标志。其中状态标志表示前一步操作(如加、减等)执行以后,ALU所处的状态,后续操作可以根据这些状态标志进行判断,实现转移;控制标志则可以通过指令人为设臵,用以对某一种特定的功能起控制作用(如中断屏蔽等),反映了人们对微机系统工作方式的可控制性。

图2-2 标志寄存器

PSW中各标志位的安排如图2-2所示,这些标志位的含义如下:

①状态标志:6个

✧CF—进位标志位,做加法时最高位出现进位或做减法时最高位出现借位,该位臵1,反

之为0。

✧PF—奇偶标志位,当运算结果的低8位中l的个数为偶数时,则该位臵1,反之为0。

✧AF—半进位标志位,做字节加法时,当低四位有向高四位的进位,或在做减法时,低

四位有向高四位的借位时,该标志位就臵1。通常用于对BCD算术运算结果的

调整。(例:1101 1000+1010 1110=1 1000 0110其中AF=1,CF=1)

✧ZF—零标志位,运算结果为0时,该标志位臵1,否则清0。

✧SF—符号标志位,当运算结果的最高位为1,该标志位臵1,否则清0。即与运算结果

的最高位相同。

✧OF—溢出标志位,OF溢出的判断方法如下:

加法运算:

若两个加数的最高位为0,而和的最高位为1,则产生上溢出;

若两个加数的最高位为1,而和的最高位为0,则产生下溢出;

两个加数的最高位不相同时,不可能产生溢出。

减法运算:

若被减数的最高位为0,减数的最高位为1,而差的最高位为1,则产生上溢出;

若被减数的最高位为1,减数的最高位为0,而差的最高位为0,则产生下溢出;

被减数及减数的最高位相同时,不可能产生溢出。

如果所进行的运算是带符号数的运算,则溢出标志恰好能够反映运算结果是否超出了8位或16位带符号数所能表达的范围,即字节运算大于十127或小于-128时,字运算大于十32767或小于-32768时,该位臵1,反之为0。

【例1】

0101 0100 0011 1001

+0100 0101 0110 1010

1001 1001 1010 0011

CF=0、AF=1、PF=1、ZF=0、SF=1、OF=1(两正数相加结果为负)

一般来讲,不是每次运算后所有的标志都改变,只是在某些操作之后,才对其中某个标志进行检查。

②控制标志:3个

✧TF—陷阱标志位(单步标志位、跟踪标志)。当该位臵1时,将使8086/8088进入单步工

作方式,通常用于程序的调试。

✧IF—中断允许标志位,若该位臵1,则处理器可以响应可屏蔽中断,否则就不能响应可

屏蔽中断。

✧DF—方向标志位,若该位臵1,则串操作指令的地址修改为自动减量方向,反之,为自

动增量方向。

二、存储器组织

1. 存储容量

8086有20根地址总线,因此,它可以直接寻址的存储器单元数为220=1Mbyte

2. 物理地址

8086可直接寻址1Mbyte的存储空间,其地址区域为00000H—FFFFFH,与存储单元一一对应的20位地址,我们称之为存储单元的物理地址。

3. 存储器的分段及段地址

由于CPU内部的寄存器都是16位的,为了能够提供20位的物理地址,系统中采用了存储器分段的方法。规定存储器的一个段为64KB,由段寄存器来确定存储单元的段地址,由指令提供该单元相对于相应段起始地址的16位偏移量。

这样,系统的整个存储空间可分为16个互不重叠的逻辑段,如图2-3所示。

存储器的每个段的容量为64KB,并允许在整个存储空间内浮动,即段与段之间可以部分重叠、完全重叠、连续排列,非常灵活,如图2-4所示。

图2-3 存储空间段结构图2-4 分段逻辑结构

4. 偏移地址

偏移地址是某存储单元相对其所在段起始位臵的偏移字节数,或简称偏移量。它是一个16位的地址,根据指令的不同,它可以来自于CPU中不同的16位寄存器(IP、SP、BP、SI、DI、BX等)。

5. 物理地址的形成

物理地址是由段地址与偏移地址共同决定的,段地址来自于段寄存器(CS、DS、ES、SS),是十六位地址,由段地址及偏移地址计算物理地址的表达式如下:

物理地址=段地址×16+偏移地址

例如:系统启动后,指令的物理地址由CS的内容与IP的内容共同决定,由于系统启动的CS=0FFFFH,IP=0000H,所以初始指令的物理地址为0FFFF0H,我们可以在0FFFF0H 单元开始的几个单元中,固化一条无条件转移指令的代码,即转移到系统初始化程序部分。

6. 存储器分段组织带来存储器管理的新特点

首先,在程序代码量、数据量不是太大的情况下,可使它们处于同一段内,即使它们在64Kbyte的范围内,这样可以减少指令的长度,提高指令运行的速度;

其次,内存分段为程序的浮动分配创造了条件;

第三,物理地址与形式地址并不是一一对应的,举例:6832H:1280H,物理地址为695A0H。

第四,各个分段之间可以重叠

7. 特殊的内存区域

8088/8086系统中,有些内存区域的作用是固定的,用户不能随便使用,如:中断矢量区:00000H—003FFH共1K字节,用以存放256种中断类型的中断矢量,每个中断矢量占用4个字节,共256×4=1024=1K

显示缓冲区:B0000H—B0F9FH约4000(25×80×2)字节,是单色显示器的显示缓冲区,存放文本方式下,所显示字符的ASCII码及属性码;B8000H—BBF3FH约16K字节,是彩色显示器的显示缓冲区,存放图形方式下,屏幕显示象素的代码。

启动区:FFFF0H—FFFFFH共16个单元,用以存放一条无条件转移指令的代码,转移到系统的初始化部分。

习题与思考

1.8086/8088 CPU由哪两部分组成?它们的主要功能各是什么?它们之间是如何协调工作的?2.8086/8088 CPU中有哪些寄存器?各有什么用途?标志寄存器F有哪些标志位?各在什么情况下臵位?

3.8086/8088系统中储存器的逻辑地址和物理地址之间有什么关系?表示的范围各为多少?

4.已知当前数据段位于储存器的A1000H到B0FFFH范围内,问DS=?

5.某程序数据段中存有两个数据字1234H和5A6BH,若已知DS=5AA0H,它们的偏移地址分别为245AH 和3245H,试画出它们在储存器中的存放情况。

2.2 8086微处理器

【回顾】8086微型计算机的组成、结构及微机系统的工作过程,微机系统的存储器组织及相关概念。

【本讲重点】8086CPU的两种工作模式,8086 CPU的外部结构,即引脚信号及其功能。

1.8086CPU的两种工作模式

为了适应各种使用场合,在设计8086CPU芯片时,就考虑了其应能够使它工作在两种模式下,即最小模式与最大模式。

所谓最小模式,就是系统中只有一个8086微处理器,在这种情况下,所有的总线控制信号,都是直接由8086CPU产生的,系统中的总线控制逻辑电路被减到最少,该模式适用于规模较小的微机应用系统。

最大模式是相对于最小模式而言的,最大模式用在中、大规模的微机应用系统中,在最大模式下,系统中至少包含两个微处理器,其中一个为主处理器,即8086/8086CPU,其它的微处理器称之为协处理器,它们是协助主处理器工作的。

与8086CPU配合工作的协处理器有两类,一类是数值协处理器8087另一类是输入/输出协处理器8089。

8087是一种专用于数值运算的协处理器,它能实现多种类型的数值运算,如高精度的整型和浮点型数值运算,超越函数(三角函数、对数函数)的计算等,这些运算若用软件的方法来实现,将耗费大量的机器时间。换句话说,引入了8087协处理器,就是把软件功能硬件化,可以大大提高主处理器的运行速度。

8089协处理器,在原理上有点象带有两个DMA通道的处理器,它有一套专门用于输入/输出操作的指令系统,但是8089又和DMA控制器不同,它可以直接为输入/输出设备服务,使主处理器不再承担这类工作。所以,在系统中增加8089协处理器之后,会明显提高主处理器的效率,尤其是在输入/输出操作比较频繁的系统中。

2.8086 CPU的引脚信号和功能

(1).引言

如图2-5所示,是8088CPU的外部结构,即引脚信号图,注意:在不同的工作模式下,其中一部分引脚的名称功能可能不一致。

8088/8086CPU芯片都是双列直插式集成电路芯片,都有40个引脚,其中32个引脚在两种工作模式下的名称和功能是相同的,还有8个引脚在不同的工作模式下,具有不同的名称和功能。下面,我们分别来介绍这些引脚的输入/输出信号及其功能。

图2-5 8086/8088CPU引脚功能

(2).两种模式下,名称和功能相同的32个引脚

①VCC、GND:电源、接地引脚(3),8088/8086CPU采用单一的+5V电源,但有两个接

地引脚。

②AD15—AD0(Address Data Bus):地址/数据复用信号输入/输出引脚(16),分时输出

低16位地址信号及进行数据信号的输入/输出。

③A19/s6—A15/s3(Address Status Bus):地址/状态复用信号输出引脚(4),分时输出地址

的高4位及状态信息,其中s6为0用以指示8086/8088CPU当前与总线连通;s5为1表明8086/8088CPU可以响应可屏蔽中断;s4、s3共有四个组态,用以指明当前使用的段寄存器,00—ES,01—SS,10—CS,11—DS。

④NMI(Non-Maskable Interrupt)、INTR(Interrupt Request):中断请求信号输入引脚(2),引入中断源向CPU提出的中断请求信号,高电平有效,前者为非屏蔽中断请求,后者为可屏蔽中断请求信号。

⑤RD(Read):读控制输出信号引脚(1),低电平有效,用以指明要执行一个对内存单

M/控制信号。

元或I/O端口的读操作,具体是读内存单元,还是读I/O端口,取决于IO

⑥CLK/(Clock):时钟信号输入引脚(1),时钟信号的方波信号,占空比约为33%,即1/3周期为高电平,2/3周期为底电平,8088/8088的时钟频率(又称为主频)为4.77MHz,即从该引脚输入的时钟信号的频率为4.77MHz。

⑦Reset(Reset):复位信号输入引脚(1),高电平有效。8088/8086CPU要求复位信号至少维持4个时钟周期才能起到复位的效果,复位信号输入之后,CPU结束当前操作,并对处理器的标志寄存器、IP、DS、SS、ES寄存器及指令队列进行清零操作,而将CS设臵为0FFFFH。

⑧READY(Ready):“准备好”状态信号输入引脚(1),高电平有效,“Ready”输入引脚接收来自于内存单元或I/O端口向CPU发来的“准备好”状态信号,表明内存单元或I/O 端口已经准备好进行读写操作。该信号是协调CPU与内存单元或I/O端口之间进行信息传

送的联络信号。 ⑨TEST (Test):测试信号输入引脚(1),低电平有效,TEST 信号与WAIT 指令结合起来使用,CPU 执行WAIT 指令后,处于等待状态,当TEST 引脚输入低电平时,系统脱离等待状态,继续执行被暂停执行的指令。

⑩MN/MX (Minimum/Maximum Model Control )最小/最大模式设臵信号输入引脚(1),该输入引脚电平的高、低决定了CPU 工作在最小模式还是最大模式,当该引脚接+5V 时,CPU 工作于最小模式下,当该引脚接地时,CPU 工作于最大模式下。 ⑩BHE /S 7(Bus High Enable/Status ):高8位数据允许/状态复用信号输出引脚(1),输出。分时输出BHE 有效信号,表示高8为数据线D 15—D 8上的数据有效和S 7 状态信号,但S 7未定义任何实际意义。 利用BHE 信号和AD 0信号,可知系统当前的操作类型,具体规定见表2-2所示。

表2-2 BHE 和A0的代码组合和对应的操作

BHE

A0 操作 所用数据引脚 0

0 从偶地址单元开始读/写一个字 AD 15 ~ AD 0 0

1 从奇地址单元或端口读/写一个字节 AD 15 ~ AD 8 1

0 从偶地址单元或端口读/写一个字节 AD 7 ~ AD 0 1

1 无效 -- 0

1 从奇地址开始读/写一个字(在第一个总线周期将低8位数据送到AD 15 ~AD 8,下一个周期将高8位数据送到AD 7 ~AD 0 ) AD 15 ~ AD 0

1 0 在8088系统中,该引脚为0SS ,用来与R DT /、IO M /一起决定8088芯片当前总线周期的读写操作,如下表所示。

IO M / R DT / 0SS 性能

1 0 0 中断响应

1 0 1 读I/O 端口

1 1 0 写I/O 端口

1 1 1 暂停(Halt )

0 0 0 取指令操作码

0 0 1 读存储器

0 1 0 写存储器

0 1 1 无源

(3).最小模式下的24--31引脚

当8088/8086CPU 的X M MN /引脚固定接+5V 时,CPU 处于最小模式下,这时候剩余的24—31共8个引脚的名称及功能如下:

① INTA (Interrupt Acknowledge )中断响应信号输出引脚(1)

低电平有效,该引脚是CPU 响应中断请求后,向中断源发出的认可信号,用以通知中断源,以便提供中断类型码,该信号为两个连续的负脉冲。

② ALE (Address Lock Enable ):地址锁存允许输出信号引脚(1)

高电平有效,CPU 通过该引脚向地址锁存器8282/8283发出地址锁存允许信号,把当前地址/数据复用总线上输出的是地址信息,锁存到地址锁存器8282/8283中去。注意:ALE 信号不能被浮空。 ③DEN (Data Enable ):数据允许输出信号引脚

低电平有效,为总线收发器8286提供一个控制信号,表示CPU 当前准备发送或接收一项数据。 ④R DT /(Data Transmit/Receive ):数据收发控制信号输出引脚(1)

CPU 通过该引脚发出控制数据传送方向的控制信号,在使用8286/8287作为数据总线收发器时,R DT /信号用以控制数据传送的方向,当该信号为高电平时,表示数据由CPU 经总线收发器8286/8287输出,否则,数据传送方向相反。 ⑤M IO /(Memory/Input &Output ): 存储器/I/O 端口选择信号输出引脚(1)

这是CPU 区分进行存储器访问还是I/O 访问的输出控制信号。当该引脚输出高电平 时,表明CPU 要进行I/O 端口的读写操作,低位地址总线上出现的是I/O 端口的地址;当该引脚输出低电平时,表明CPU 要进行存储器的读写操作,地址总线上出现的是访问存储器的地址。

⑥WR (Write): 写控制信号输出引脚(1) 低电平有效,与M IO /配合实现对存储单元、I/O 端口所进行的写操作控制。

⑦HOLD(Hold Request): 总线保持请求信号输入引脚(1)

高电平有效。这是系统中的其它总线部件向CPU 发来的总线请求信号输入引脚。 ⑧HLDA (Hold Acknowledge ):总线保持响应信号输出引脚

高电平有效,表示CPU 认可其他总线部件提出的总线占用请求,准备让出总线控制权。

(4).最大模式下的24--31引脚

当8088/8086CPU 的X M MN /引脚固定接地时,CPU 处于最大模式下,这时

候剩余的24—31共8个引脚的名称及功能如下:

① QS 1、QS 0(Instruction Queue Status ):指令队列状态信号输出引脚(2)

这两个信号的组合给出了前一个T 状态中指令队列的状态,以便于外部8088/8086CPU 内部指令队列的动作跟踪,如下表所示: 1QS 0QS 性 能 0

0 无操作 0

1 从指令队列的第一个字节取走代码 1

0 队列为空 1

1 除第一个字节外,还取走了后续字节中的代码

②2S 、1S 、0S :总线周期状态信号输出引脚(3)

低电平的信号输出端,这些信号组合起来,可以指出当前总线周期中,所进行数据传输过程的类型,总线控制器8288利用这些信号来产生对存储单元、I/O 端口的控制信号。2S 、1S 、0S 与具体物理过程之间的对应关系,如表2-2所示。

这里对无源状态(在的最小模式中也存在,见P19)作一说明:从表1-6中可以看出,每一种2S 1S 0S 的组合都对应一个具体的总线操作,除111外,其余都称为有源状态。也就是说,在有源状态(对应前一个总线周期的4T 和本总线周期的1T 和2T 状态)中,2S 1S 0S 至少有一个信号为0,当111012 S S S 时(对应总线周期的3T 和w T 且READY =1),也就是一个总线操作即将结束,另一个总线周期还未开始时,称为无源状态,很显然,这时2S 1S 0S 中任一信号的改变,都意味着一个新的总线周期的开始。

③LOCK (Lock):总线封锁输出信号引脚(1)

低电平有效,当该引脚输出低电平时,系统中其它总线部件就不能占用系统总线。

LOCK 信号是由指令前缀LOCK 产生的,在LOCK 前缀后面的一条指令执行完毕之后,便撤消LOCK 信号。此外,在8088/8086的2个中断响应脉冲之间,LOCK 信号也自动变为有效的低电平,以防止其它总线部件在中断响应过程中,占有总线而使一个完整的中断响应过程被中断。

④1/GT RQ 、0/GT RQ (Request/Grant):总线请求信号输入/总线允许信号输出引脚(2)

这两个信号端可供CPU 以外的两个处理器,用来发出使用总线的请求信号和接收CPU 对总线请求信号的应答。这两个引脚都是双向的,请求与应答信号在同一引脚上分时传输,方向相反。其中1/GT RQ 比0/GT RQ 的优先级高。 (5).相关问题的说明

① 8088/8086的数据线与地址线、状态线是分时复用的,即在某一时刻,总线上出现的是输出地址信息,在另一时刻,总线上是所需读、写的数据信息,或状态信息。

② 除了个别引脚外,8088/8086的控制信号引脚的定义是一致的,有差别的是,8088的第18脚为M O I /,8086为M IO /,主要是为了使前者能与8位微处理器8080/8085 相兼容的缘故。

8086为BHE /S 7,这是因为8086 有16根数据线,可以用高、低8位总线分别进行一

个字节的传送,也可以同时进行两个字节的传送,BHE 正是为了指明这几类操作而设臵的,而8088的数据线只有8根,就不存在这一要求,因此就不需要BHE 引脚了。

③Reset 引脚是复位信号输入端,系统启动、或在系统运行过程中,CPU 在接收到Reset 信号后,会使系统复位。复位后,CPU 处于如下状态:

CPU 的标志寄存器、指令指针寄存器IP 、段寄存器DS 、ES 、SS 和指令队列均被清零,码段寄存器CS 被臵为FFFFH ,CPU 将从0FFFF0H 处开始执行指令。 ④CPU 与内存、I/O 端口之间在时间上的匹配主要靠“READY ”信号。 ⑤RD 信号与M IO /(或M O I /)配合使用,指明从内存或者I/O 端口读信息

⑥高4位地址线与状态线分时复用,在T 1状态,输出地址信息,在其余状态,输出状态信息。

表2-2 0S ~2S 的状态编码 0S 1S

2S

性能 1 0 0 中断响应 1 0 1 读I/O 端口 1 1 0 写I/O 端口 1 1 1 暂停 0 0 0 取指 0 0 1 读存储器 0 1 0 写存储器 0

1

1

无作用

(6).8086 CPU 的引脚分类

8086 CPU 的40个引脚可以分成下列几大类:

(1)数据/地址复用线、地址线、地址/状态复用线――AD 0~AD 7 、AD 8~AD 15、) A 16~A 19/S 3~S 6;

(2)常规信号—GND (2个)、cc V 、CLK ; (3)常用信号—ALE 、IO M /、RD 、WR ; (4)中断—INTR 、NMI 、INTA ; (5)MX MN /、READY 、RESET ; (6)HOLD 、HLDA ;

(7)7/S BHE (8086)0SS (8088)

、D E N 、R DT /、TEST 。

3.两种模式下系统的典型配置

我们除了要了解CPU 的内、外部结构之外,

还要进一步了解各模式下,系统的典型配臵情况,即除了CPU 之外,还需要哪些芯片来构成来一个最基本的应用系统。 (1)最小模式

如图2-5所示,是8088/8086在最小模式下的典型配臵,它具有 以下几个方面的特点。

①X M MN /端接+5V ,决定了CPU 的工作模式 ②有一片8284A ,作为时钟信号发生器 ③有一片8282或74LS273,用来作为地址信号的锁存器

③ 当系统中所连的存储器和外设端口较多时,需要增加数据总线的驱动能力,这时,需用2片8286/8287作为总线收发器。

图2-5 最小模式下的系统典型配置

(2)最大模式

如图2-6所示,是8088/8086在最大模式下的典型配臵, 可以看出,最大模式和最

小模式在配臵上的主要差别在于在最大模式下,要用8288总线控制器来对CPU 发出的控制信号进行变换和组合,以得到对存储器或I/O 端口的读/写信号和对锁存器8282及总线收发器8286的控制信号。

最大模式系统中,需要用总线控制器来变换与组合控制信号的原因在于:在最大模式的系统中,一般包含2个或多个处理器,这样就要解决主处理器和协处理器之间的协调工作,和对系统总线的共享控制问题,8288总线控制器就起了这个作用。

在最大模式的系统中,一般还有中断优先级管理部件。8259A用以对多个中断源进行中断优先级的管理,但如果中断源不多,也可以不用中断优先级管理部件。

图2-6 最大模式下的系统典型配置

习题与思考

1.8086/8088系统中为什么一定要有地址锁存器?需要锁存哪些信息?

2.若8086CPU工作于最小模式,试指出当CPU完成将AH的内容送到物理地址为91001H的存储单元操作时,以下哪些信号应为低电平:M/IO、RD、WR、BHE/S7、DT/R。若CPU完成的是将物理地址91000H单元的内容送到AL中,则上述哪些信号应为低电平。

3.什么是引脚的分时复用?请说出8086/8088CPU有哪些引脚是分时复用引脚?其要解决的问题是什么?

4.试说明8086/8088工作在最大和最小模式下系统基本配臵的差异。

2.3 典型时序分析

回顾:8086 CPU的内、外部结构,两种工作模式,微型计算机系统的工作过程。

本讲重点与微机系统工作过程定时相关的三种周期,时序的基本概念,研究时序的意义,两种工作模式下的典型时间序列分析。

一、相关的基本概念

1.什么是时序

时序是计算机操作运行的时间顺序。

2. 为什么要研究时序

(1)可以进一步了解在微机系统的工作过程中,CPU各引脚上信号之间的相对时间关系。

由于微处理器内部电路、部件的工作情况,用户是看不到的,通过检测CPU引脚信号线上,各信号之间的相对时间关系,是判断系统工作是否正常的一种重要途径;

(2)可以深入了解指令的执行过程;

(3)可以使我们在程序设计时,选择合适的指令或指令序列,以尽量缩短程序代码的长度

及程序的运行时间。因为对于实现相同的功能,可以采用不同的指令或指令序列,而这些指令或指令序列的字节数及执行时间有可能不相同的。

(4)对于学习各功能部件与系统总线的连接及硬件系统的调试,都十分有意义,因为CPU

与存储器、I/O端口协调工作时,存在一个时序上的配合问题。

(5)才能更好地处理微机用于过程控制及解决实时控制的题

3. 指令周期、总线周期及时钟周期

微机系统的工作,必须严格按照一定的时间关系来进行,CPU定时所用的周期有三种,即指令周期、总线周期和时钟周期。

(1).指令周期

一条指令从其代码被从内存单元中取出到其所规定的操作执行完毕,所用的时间,称为相应指令的指令周期。由于指令的类型、功能不同,因此,不同指令所要完成的操作也不同,相应地,其所需的时间也不相同。也就是说,指令周期的长度因指令的不同而不同。

(2).总线周期

我们把CPU通过总线与内存或I/O端口之间,进行一个字节数据交换所进行的操作,称为一次总线操作,相应于某个总线操作的时间即为总线周期。虽然,每条指令的功能不同,所需要进行的操作也不同,指令周期的长度也必不相同。但是,我们可以对不同指令所需进行的操作进行分解,它们又都是由一些基本的操作组合而成的。如存储器的读/写操作、I/O端口的读/写操作、中断响应等,这些基本的操作都要通过系统总线实现对内存或I/O端口的访问的。不同的指令所要完成的操作,是由一系列的总线操作组合而成的,而线操作的数量及排列顺序因指令的不同而不同。

8088的总线操作,就是8088CPU利用总线(AB、DB、CB)与内存及I/O端口进行信息交换的过程,与这些过程相对应的总线上的信号变化的相对时间关系,就是相应总线操作的时序。

(3).时钟周期

时钟周期是微机系统工作的最小时间单元,它取决于系统的主频率,系统完成任何操作所需要的时间,均是时钟周期的整数倍。时钟周期又称为T状态。

时钟周期是基本定时脉冲的两个沿之间的时间间隔,而基本定时脉冲是由外部振荡器产生的,通过CPU的CLK输入端输入,基本定时脉冲的频率,我们称之为系统的主频率。例如8088CPU的主频率是5MHz,其时钟周期为200ns。

一个基本的总线周期由4个T 状态组成,我们分别称为41~T T 4个状态,在每个T 状态下,CPU 完成不同的动作。

4. 8086/8088微机系统的主要操作

8086/8088微机系统,能够完成的操作有下列几种主要类型: ✧ 系统的复位与启动操作; ✧ 暂停操作;

✧ 总线操作;(I/O 读、I/O 写、存贮器读、存贮器写) ✧ 中断操作;

✧ 最小模式下的总线保持; ✧ 最大模式下的总线请求/允许。

二、 典型的8088时序分析 1.引言

指令所执行的操作,可以分为内部操作和外部操作。不同的指令其内、外部操作是不相同的,但这些操作可以分解为一个个总线操作。即总线操作的不同组合,就构成了不同指令的不同操作,而总线操作的类型是有限的,我们如果能够明确不同种类总线操作的时序关系,且可以根据不同指令的功能,把它们分解为不同总线操作的组合,那么,任何指令的时序关系,我们就都可以知道了。

2.最小模式下的典型时序

CPU 为了与存贮器或I/O 端口进行一个字节的数据交换,需要执行一次总线操作,按数据传输的方向来分,可将总线操作分为读操作和写操作两种类型;

按照读/写的不同对象,总线操作又可分为存贮器读/写与I/O 读/写操作,下面我们就最小模式下的总线读/写操作时序,来进行具体分析。 (1). 最小模式下的总线读操作时序

时序如图图1-15(P21)所示,一个最基本的读周期包含有4个状态,即1T 、2T 、3T 、

4T ,必要时可插入1个或几个w T 。 ✧ 1T 状态

①IO M /有效,用来指出本次读周期是存贮器读还是I/O 读,它一直保持到4T 有效。 ②地址线信号有效,高4位通过地址/状态线送出,低16位通过地址/数据线送出,用来指出操作对象的地址,即存贮器单元地址或I/O 端口地址。

③ALE 有效,在最小模式的系统配臵中我们讲过,地址信号通过地址锁存器8282锁存,ALE 即为8282的锁存信号,下降沿有效。

④BHE (对8088无用)有效,用来表示高8位数据总线上的信息有效,现在通过8

15~A A 传送的是有效地址信息,BHE 常作为奇地址存贮体的选通信号,因为奇地址存贮体中的信息总是通过高8位数据线来传输,而偶地址体的选通则用0A 。

⑤当系统中配有总线驱动器时,1T 使R DT /变低,用来表示本周期为读周期,并通知总

线驱动器接收数据(T /−−→←接收

R DT )

✧ 2T 状态

⑥高四位地址/状态线送出状态信息,63~S S 。 ⑦低16位地址/数据线浮空,为下面传送数据准备。 ⑧7/S BHE 引脚成为7S (无定义)。

⑨RD 有效,表示要对存贮器/I/O 端口进行读。

⑩DEN 有效,使得总线收发器(驱动器)可以传输数据(OE −−→←接收DEN )

。 ✧ 3T 状态

从存贮器/I/O 端口读出的数据送上数据总线(通过015~A A )。 ✧ w T 状态

若存贮器或外设速度较慢,不能及时送上数据的话,则通过READY 线通知CPU ,CPU 在3T 的前沿(即2T 结束末的下降沿)检测READY ,若发现READY =0,则在3T 结束后自动插入1个或几个w T ,并在每个w T 的前沿处检测READY ,等到READY 变高后,则自动脱离w T 进入4T 。 ✧ 4T 状态

在4T 与3T (或w T )的交界处(下降沿),采集数据,使各控制及状态线进入无效。

(2). 最小模式下的总线写操作时序

时序如图2-7所示,最基本的总线写周期也包括四个状态41~T T 必要时插入w T 。

图2-7 总线写周期时序

✧ 1T 状态

基本上同读周期,只有此时R DT /为高不是低。 ✧ 2T 状态

与读周期有两点不同: ①RD 变成WR ;

②015~A A 不是浮空,而是发出要写入存贮器/I/O 端口的数据。 ✧ 3T 状态 ✧ w T 状态 ✧ 4T 状态

3T 、w T 、4T 三个状态同读周期。

已完成CPU →存贮器/I/O 端口的数据传送,使数据线上的数据无效,同时,使各控制与状态信号无效。

(3).中断响应周期(对可屏蔽中断)

波形图如图2-8所示,由两个连续的总线周期所组成。

图2-8 中断响应周期时序

说明:

①要求INTR 信号是一个高电平信号,并且维持两个T ,因为CPU 在一条指令的最后一个T 采样INTR ,进入中断响应后,它在第一个周期的1T 仍需采样INTR 。

②在最小模式下,中断应答信号INTA 来自8086的引脚,而在最大模式时,则是通过0S 、1S 、

2S 的组合由总线控制器产生。

③第一个总线周期通过INTA 用来通知外设,CPU 准备响应中断,第二个总线周期通过INTA 通知外设送中断类型码,该类型码通过数据总线的低8位传送,来自中断源。CPU 据此转入中断服务子程序。

④在中断响应期间,IO M /为低,数据/地址线浮空,7/S BHE 数据/状态线浮空。在两个中断响应周期之间可安排2~3个空闲周期(8086)或没有(8088)。 (4). 系统的复位和启动操作(对最大小模式都一样)

8086/8088的复位和启动操作,是通过RESET 引脚上的触发信号来执行的,当RESET 引脚上有高电平时,CPU 就结束当前操作,进入初始化(复位)过程,包括把各内部寄存器(除CS )清0,标志寄存器清0,指令队列清0,将FFFFH 送CS 。重新启动后,系统从

FFFF0H 开始执行指令。重新启动的动作是当RESET 从高到低跳变时触发CPU 内部的一个复位逻辑电路,经过7个T 状态,CPU 即自动启动。

要注意的是,由于在复位操作时,标志寄存器被清0,因此其中的中断标志IF 也被清0,这样就阻止了所有的可屏蔽中断请求,都不能响应,即复位以后,若需要必需用开中断指令来重新设臵IF 标志。

复位操作的时序图如图2-9所示,表2-3

给出了复位后寄存器的状态。

图2-9 系统复位时序

(5). 总线占用周期

当系统中有其它总线主设备有总线请求时,向CPU 发总线请求信号HOLD ,HOLD 信号可以与时钟信号异步,则在下一个时钟的上升沿同步HOLD 信号。

CPU 收到HOLD 信号后,在当前总线周期的T 4或下一个总线周期的T 1的后沿,输出保持响应信号HLDA ,从下一个时钟周期开始CPU 出让总线控制权,进入总线占用周期;DMA 传送结束,掌握总线控制权的总线主设备使HOLD 信号变低,并在接着的下降沿使HLDA 信号变为无效,系统退出总线占用周期。 (6). 总线空操作

前面我们曾讲过,只有在CPU 与存贮器或I/O 端口之间传送数据时,CPU 才执行相应的总线操作,而当它们之间不传送数据时,则进入总线空闲周期,而总线空闲周期即对应总线空操作。

在总线空闲周期内,CPU 的各种信号线上的状态维持不变。要注意的是,总线空操作并不意味着CPU 不工作,只是总线接口部件BIU 不工作,而总线执行部件EU 仍在工作,如进行计算、译码、传送数据等。实质上总线空操作期间,是BIU 对EU 的一种等待。

3.最大模式下的典型时序

(1). 最大模式下的总线读周期

时序图如图2-10 所示,与最小模式下的读周期相比,不同的就是读信号考虑加入总线控制器后,它可以由2S 、1S 、0S 状态信号来产生MRDC 和IORC ,这两个信号与原RD 相比,不仅明确指出了操作对象,而且信号的交流特性也好,所以我们下面就考虑用它们

表2-3 复位后寄存器的状态

寄存器

状态

寄存器 状态 寄存器 状态 F (PSW ) 0000H IP 0000H CS 0FFFFH DS 0000H SS 0000H

ES

0000H 指令队列

IF

0(禁止)

不用RD ,若用RD 信号的话,则最大模式与最小模式相同。

图2-10 最大模式存储器读周期时序

✧ 1T 状态

基本同最小模式,不同的是ALE 、R DT /是由总线控制器发出的。 ✧ 2T 状态

不同的是此时RD 变成MRDC 或IORC ,送到存贮器或I/O 端口。 ✧ 3T 状态

数据已读出送上数据总线,这时2S 、1S 、0S =111进入无源状态。 若数据没能及时读出,则同最小模式一样自动插入w T 。 ✧ 4T 状态

数据消失,状态信号进入高阻,2S 、1S 、0S 根据下一个总线周期的类型进行变化。 (2). 最大模式下的总线写周期

时序图如图1-21 所示(P23),与上述最大模式下的总线读周期相比,就是MRDC 和

IORC 成为MWTC 和IOWC ,另外还有一组AMWC 或AIOWC (比MWTC 和IOWC 提前一个T 有效),这时MWTC (AMWC )或IOWC (AIOWC )取代最小模式下的WR 。

图2-11 最大模式存储器写周期时序

✧ 1T 状态

同读周期。 ✧ 2T 状态

AMWC 或AIOWC 有效,要写入的数据送上DB ,DEN 有效。 ✧ 3T 状态

MWTC 或IOWC 有效,比AMWC 等慢一个T ,2S 、1S 、0S 进入无源状态。若需要的话,自动插入w T 。 4T 状态

AMWC 等被撤消,2S 、1S 、0S 根据下一总线周期的性质变化,DEN 失效,从而停止总线收发器的工作,其它引脚高阻。 (3). I/O 读/写周期

I/O 读写周期的时序如图2-12 所示,与存储器读/写周期的时序基本相同。不同之处在于:

①一般I/O 接口的工作速度较慢,因而需插入等待周期T w 。 ②T 1期间只发出16位地址信号,A 19~16为0。 ③8288发出的读/写命令为IORC /AIOWC 。

图2-12 最大模式I/O 读写周期时序

8086简介

第二章8086微处理器 【回顾】微型计算机及微机系统的组成、结构与工作过程,CPU的基本概念与一般结构。本讲重点8086微处理器的一般性能特点,内部编程结构的两大组成部分及在信息处理中的相互协调关系,处理器状态字PSW及各个标志位,8086微机系统的存储器组织。一、8086微处理器 1.引言 8086微处理器是Intel公司推出的第三代CPU芯片,它们的内部结构基本相同,都采用16位结构进行操作及存储器寻址,但外部性能有所差异,两种处理器都封装在相同的40脚双列直插组件(DIP)中。 2.8086微处理器的一般性能特点: 16位的内部结构,16位双向数据信号线; 20位地址信号线,可寻址1M字节存储单元; 较强的指令系统; 利用第16位的地址总线来进行I/O端口寻址,可寻址64K个I/O端口; 中断功能强,可处理内部软件中断和外部中断,中断源可达256个; 单一的+5V电源,单相时钟5MHz。 另外,Intel公司同期推出的Intel8088微处理器一种准16位微处理器,其内部寄存器,内部操作等均按16位处理器设计,与Intel8088微处理器基本上相同,不同的是其对外的数据线只有8位,目的是为了方便地与8位I/O接口芯片相兼容。 3.8086CPU的编程结构 编程结构:是指从程序员和使用者的角度看到的结构,亦可称为功能结构。 如图2-1所示是8086CPU的内部功能结构。 从功能上来看,8086CPU可分为两部分,即总线接口部件BIU(Bus Interface Unit)和执行部件EU(Execution Unit)。 (1) 执行部件(EU) 功能:负责指令的执行。 组成:包括①ALU(算术逻辑单元)、②通用寄存器组和③标志寄存器等,主要进行8位及16位的各种运算。

CPU介绍

CPU介绍 对于一台电脑系统,CPU的作用就像心脏对我们一样重要。我们选购电脑时总要首先问,是486还是586,是100还是300,是MMX还是3D—NOW!,这些指的就全是CPU的指标,CPU在整个微机系统的核心作用,足以作为划分CPU档次的标准,这使它几乎成为各种档次微机的代名词。我们可以说,CPU的性能大致反映出我们的微机系统的性能,这对我们的选择的重要性是显而易见的。 1、什么是CPU? CPU是英语"CentralProcessingUnit"的缩写,其中文的直译为”中央处理单元”,CPU的主要功能是进行运算和逻辑运算,其物理结果包括逻辑运算单元、控制单元和存储单元组成。在逻辑运算和控制单元中包括一些寄存器,这些寄存器用于CPU在处理数据过程中数据的暂时保存。在这里,并不需要弄清楚CPU的复杂原理,我们只是从性能参数的挑选方面对其进行一些必要的认识。 2、CPU主要的性能指标: 主频:即CPU内部核心工作的时钟频率,单位一般是兆赫兹(MHz)。这是我们最关心的一个参数,我们通常所说的233、300、450等就是指它。对于同种类的CPU,主频越高,CPU的速度就越快,整机的性能就越高。由于内部的结构不同,不同种的CPU之间不能直接通过主频来比较,而且高主频的CPU的实际表现性能,还与外频、缓存等大小有关,带有特殊指令的CPU,则相对程度地依赖软件的优化程度。 外频和倍频数:外频即CPU的外部时钟频率。CPU的主频与外频的关系是:CPU主频二外频X倍频数,外频是由电脑主板提供的,486的外频一般是33MHz,40MHz,Pentium主板的外频一般是66MHz,也有主板支持75各83MHz。而目前Intel公司最新的芯片组440BX可以使用100MHz甚至更高的时钟频率。另外VIA公司的MVP3、MVP4,APPLOPRO等一些非Intel的芯片组也开始支持100MHz的外频,一些主板由于技术精良,工艺先进,可以超频1/3以上稳定使用,成为超频爱好者的首选。Intel公司的下一代主板芯片将支持133MHz的外频,AMD的K7甚至将使用200MHz的外频。 内部缓存(L1Cache):采用速度极快的SRAM制作,与CPU共同封装于芯片内部的高速缓存,用于暂时存储CPU运算时的最近的部分指令和数据,存取速度与CPU主频相同(一般称为全速),L1缓存的容量一般以KB 为单位。L1缓存全速工作,其容量越大,使用频率最高的数据和结果就越容易尽快进入CPU进行运算,CPU工作时与存取速度较慢的L2缓存和内存间交换数据的次数越少,相对电脑的运算速度可以提高。486就因为集成了内部Cache,速度比386快了许多。最早的486内部一般有1K〜8K的L1Cache,现在的PentiumII的L1Cache一般有32K,而Cyrix和AMD的芯片内部有64K甚至更多。 二级缓存(L2Cache):集成于CPU外部的高速缓存,L2Cache的一般容量是128K〜2M。容量越大,系统的综合性能越高。一般的L2Cache运行于系统外频或CPU主频的一半,后来PentiumPro处理器采用的L2和CPU运行在相同频率下,由于芯片成品率太低,成本昂贵,所以后来PentiumII的L2Cache运行在相当于CPU频率一半下的,但容量增加为512K。现在的至强处理器又采用了全速的L2Cache,容量增大至512K到2M之间,以求性能获得提高。没有Cache的赛扬处理器,性能下降不少。 MMX技术:是"多媒体扩展指令集"的缩写。MMX是Intel公司为增强PentiumCPU在音像、图形和通信应用方面而采取的新技术。这一技术为CPU增加了全新的57条MMX指令,还将CPU芯片内的L1缓存由原来的16KB增加到32KB(16K指命+16K数据),因此MMXCPU比普通CPU在运行含有MMX指令的程序时,处理多媒体的能力上提咼了60%左右。即使不使用MMX指令的程序,也能获得15%左右的性能提升。MMX已经成为选择CPU的一个基本标准,目前CPU基本都具备MMX技术,除PentiumP55C(PentiumMMX)和PentiumIICPU 还有K6、K63D(K6—2)、MII,6X86MX,IDTC6等。不支持MMX指令的CPU可以不用考虑了。 3D指令技术:MMX指令解决了多媒体运算的瓶颈,但只是加速了整数运算速度,对于需要大规模浮点运算的3D图形处理和游戏就无能为力了。针对日益增长的3D处理要求,支持3D指令将同支持MMX指令一样重要。目前支持3D指令的CPU只有AMD一家,使用3D—Now,技术的CPU可以大幅度加速三维处理速度,从而把游戏和图形处理带入一个崭新的境界。Intel即将出台的MMX2指令集将更为强大,这些指令集必须依靠软件的优化支持才能完全发挥CPU的性能。制造工艺:单位是微米。现在CPU的制造工艺是一般0.35微米,最新的PII和K6—2可以达到0.28〜0.25微米,不远的将来,CPU制造工艺可以达到0.18微米甚至0.13微米。CPU的微米级别直接决定了CPU的极限频率,0.35微米的CPU工作频率一般不超过250MHz,而0.13微米的铜芯技术芯片可以稳

Cpu简介

Cpu简介 Cpu即中央处理器又称微处理器,使计算机核心部件,是整个计算机的控制中心,其功能主要是解释计算机指令以及处理计算机软件中的数据。其重要性好比大脑。Cpu对整个计算机系统的运行是极其重要的,主要具体有如下四个方面的基本功能: 1,指令控制:也称程序的顺序控制,控制程序严格按照规定的顺序执行; 2,操作控制:将取出的指令产生一系列的控制信号(微指令),分别送往相应的部件,从而控制这些部件指令的要求进行工作。 3,时间控制:有些控制信号在时间上有严格的先后顺序,如读取储存器的数据,只有当地址线信号稳定之后,才能通过数据线将所需的数据读出,这样计算机才能有条不紊的工作。 4,数据加工:对数据进行算术运算或者逻辑运算处理。 Cpu的发展史 目前cpu的两大巨头——Inter和AMD 下面介绍一下它们的发展历程。 Inter系列cpu: 1.8088,8086 Inter公司于1978年推出8086微处理器,属于16位微处理器,同时还生产出与之相配合的数学协处理器8087.次年,Inter退出了8088微处理器,这两种16位的微处理器比以往的8位机功能大大增强,有20条地址线,内存寻址范围为IMB,它们的区别在于:8086外部的数据是16位,而8088的外部数据为8位。1981年8088芯片首次用于IMB PC中,开创了微型计算机时代,从8088开始,PC(personal computer,个人计算机)的概念开始在全世界范围内发展起来。 2,80286 1982年,Inter公司退出了80826芯片,80826比8088和8086有了飞跃的发展,虽然它仍然是旧的16位结构,但是它含有13.4万个晶体管,其频率比8086更高,有24条地址线,内存寻址范围可达到16MB。 3,80386 从80386开始,Inter系列微处理器进入了32位时代,80386属于32位cpu,其内部和外部数据总线都是32位,地址总线也是32位,可寻址4GB内存。它增加了一种叫虚拟86的工作方式,可以通过同时模拟多个8086处理器来提供多任务能力。80386主要型号有:80386—SX,80386—DX,80386—SL,80386—DL。另外除了Inter公司生产386芯片外,AMD,Cyrix,Ti,IMB等厂商也生产于386兼容的cpu。 4,80486 1998年Inter公司推出了80486,也属于32位处理器,内部集成了120万个晶体管,80486时钟频率从25MHZ逐步提高到33MHZ,50MHZ,它将80386和数学协处理器80386以及一个8KB的高速缓存集成在一个芯片内,并且在80X86系列中首次采用了RISC技术,可以在一个时钟周期内执行一条指令。486 cpu采用了突发总线方式,大大提高了cpu与内存的数据交换速度。 5,Pentium(奔腾)是Inter公司于1993年推出的微处理器,为了防止别的公司侵权,就将cpu命名为Pentium,而没有继续叫586,它的内部集成了310万个晶体管,拥有64位数据总线,16KB的高速缓存。Pentium微处理器使用更高的时钟频率,最初为60MHZ,后提高到200MHZ。 Pentium cpu的出现进一步加速了cpu的更新速度,随后,inter公司又推出了pentium pro,中文称作高能奔腾,它使用了大量的新技术,在pentium pro的一封装中除pentium pro芯片

8086cpu

转载自Zachary.XiaoZhen - 梦想的天空 PS:感觉其实前边通用寄存器里边已经把一些段寄存器的一些东西介绍过了,所以感觉这里的东西没有上一篇内容多。。段寄存器(CS,IP,SS,SP,DS,ES) 由于段寄存器总是和其他一些像指针寄存器,变址寄存器,控制寄存器一起使用, 所以在这里,我并不会单独介绍段寄存器,而是将段寄存器和一些其他的常用寄存器搭配介绍。 由于下面的介绍中会涉及到很多关于段和栈的概念,而段和栈的介绍又都必须关系到物理内存, 所以在介绍段寄存器以及其他一些呈协作关系的寄存器之前,还是先来介绍一下这几个基本的概念比较好。 8086 CPU 访问内存(物理地址): 当CPU 需要访问一个内存单元时,需要给出内存单元的地址, 而每一个内存单元在物理内存空间中都有一个唯一的地址, 即可以通过这个地址定位到内存单元,而这个地址即为物理地址。 CPU 通过地址总线将一个内存单元的物理地址送入存储器, 而后CPU 便可以通过这个物理地址来访问这个物理地址所指向的内存单元了。 那么这个物理地址在CPU 中是如何形成的呢? 首先,我们知道8086 CPU 的地址总线是20 根, 即每次都可以传输20 位的地址,从而寻址能力有220也就是1MB 的大小, 但是8086 CPU 的寄存器只有16 位,也就是在8086 CPU 的内部, 一次性处理,传输,暂存的地址都只能是16 位, 即8086 CPU 不能完整的保存下一个物理地址(物理地址为20 位), 如果单单以最简单的方式(即直接用16 位寄存器来保存物理地址)的话,那么,寻址能力只有216,也就是64KB, 如果真以如此简单的方式的话,那么地址总线还需要20 根干嘛呢?而且,难不成我们以后的内存就是64KB 了吗? 当然不是的,8086 CPU 在这里采取了一定的措施从而使其寻址能力达到1MB 。 8086 CPU 在内部通过两个16 位的地址进行合成从而形成一个20 位的物理地址,由此,8086 CPU 的寻址能力便可以达到1MB 。 那么8086 CPU 又是如何将两个16 位的地址合成为一个20 位的物理地址的呢? 当CPU 在访问内存时,其会使用一个16 位的基地址,然后再使用一个16 位的偏移地址, 通过将基地址和偏移地址传入8086 CPU 的地址加法器中进行合成即可以构造出20 位的物理地址。 至于合成的方式如下: 基地址其实是通过一个16 位的段地址来形成的,将一个段地址左移4 位即形成了基地址, 而至于偏移地址的话,自然不必多说,为16 位,通过将基地址和偏移地址相加便形成了20 位的物理地址。 下面给出一幅示意图来表示物理地址的合成:

emu8086介绍解析

emu8086 EMU8086是学习汇编必不可少的工具,它结合了一个先进的原始编辑器、组译器、反组译器、具除错功能的软件模拟工具(虚拟PC),还有一个循序渐进的指导工具。该软件包含了学习汇编语言的全部内容。Emu8086集源代码编辑器,汇编/反汇编工具以及可以运行debug 的模拟器(虚拟机器)于一身,此外,还有循序渐进的教程。 目录 软件简介 使用方法 如何运行 十进制系统 二进制系统 十六进制系统 十进制到另外进制的换算 有符号数 汇编语言

通用寄存器 段寄存器 寻址方式 MOV 指令 数组 常量 中断 运算与逻辑指令 程序控制转移 堆栈 展开 软件简介 使用方法 如何运行 十进制系统 二进制系统 十六进制系统 十进制到另外进制的换算有符号数 汇编语言 CPU内部

通用寄存器 段寄存器 寻址方式 MOV 指令 数组 常量 中断 运算与逻辑指令 程序控制转移 堆栈 展开 编辑本段软件简介 EMU8086是你学习汇编必不可少的工具! Emu8086-MicroprocessorEmulator结合了一个先进的原始编辑器、组译器、反组译器、具除错功能的软件模拟工具(虚拟PC),还有一个循序渐进的指导工具。这对刚开始学组合语言的人会是一个很有用的工具。它会在模拟器中一步一步的编译程序码并执行,视觉化的工作环境让它更容易使用。你可以在程序执行当中检视暂存器、旗标以及

记忆体。模拟器会在虚拟PC中执行程序,这可以隔绝你的程序,避免它去存取实际硬体,像硬碟、记忆体,而在虚拟机器上执行组合程序,这可以让除错变得更加容易。这个软件完全相容於Intel的下一代处理器,包括了PentiumII、Pentium4,而相信Pentium5也会继续支援8086的。这种现象让8086程序码的可携性相当高,它可以同时在老机器以及现代的电脑是执行,8086的另一个优势是它的指令比较小且相当容易学习。 该软件包含了学习汇编语言的全部内容。Emu8086集源代码编辑器,汇编/反汇编工具以及可以运行debug的模拟器(虚拟机器)于一身,此外,还有循序渐进的教程。这套软件对于刚开始学习汇编语言的朋友非常有帮助.它能够编译源代码,并在模拟器上一步一步的执行。可视化界面令操作易如翻掌.可以在执行程序的同时可观察寄存器,标志位和内存.算术和逻辑运算单元(ALU)显示中央处理器内部的工作情况. 这个模拟器是在一台"虚拟"的电脑上运行程序的,它拥有自己独立的“硬件”,这样你程序就同诸如硬盘与内存这样的实际硬件完全隔离开,动态调试(DEBUG)时非常方便.8086的机器代码同INTEL下一代微处理器完全兼容,包括Pentium II 和Pentium 4,我相信Pentium 5同样也会支持8086指令.这意味着8086代码具有很广泛的应用范围,它在老式的和最新的计算机系统上都能工作. 8086指令的另外一个优点是它的指令集非常小,这样学起来会容易得多.Emu8086同主流汇编程序相比,语法简单得多,但是它能生

8086的存储组织简介

8086的存储组织简介 在高档32位微机时代,再仔细讨论8086的存储器组织意义已不大,但是对有助于理解32位微型计算机存储器系统的内容做一些介绍还是必要的。 8086是标准的16位CPU,数据总线宽度为16位,从发挥CPU工作效率的角度考虑,和存储器的数据交换应是16位的。但是,出于程序设计的需要,8086的指令系统中还设有对存储器进行字节访问的指令,而指令本身也有单字节的(单字节指令),因此,在进行存储器设计时,要求既能进行16位的访问,又能进行 8位的访问。实际上,Intel公司在设计8086时已经做了基础安排,用作为高8位数据的选通信号,用A0兼作低8位数据的选通信号。在存储器中,一个存储单元只能和cPu的一组数据线(低8位或高8位)相连,和低8位相连的用AO选通,所以这些存储单元的地址都是偶地址(AO为0,选通低8位数据线);和高8位相连的用选通,所以这些存储单元的地址都是奇地址(这时A0 不能为0,否则低8位数据线也被选通)。也就是说,存储器中所有偶地址的字节都应该用A0选通,所有奇地址的字节都应该用选 通。由此可见,在物理结构上,8086的1 MB寻址空间应分成两个 https://www.doczj.com/doc/1d19306889.html, 独立的512 KB的存储体,如图3.33所示。它们分别称为低位存储体和高位存储体。地址线A19~Al同时接到两个存储体,作为体内寻址。两个体的选择由A0和控制。 按这种结构组织的存储器,对字节的访问是显然的。下面看对16位字的访问。在存储器中,一个16位字总是放在地址相邻的两个存储单元中,根据刚才所讲,这两个存储单元分别位于两个存储体。对偶地址字(字

的低位字节的地址为字地址)的访问只需一个总线周期,该周期内AO、均为低电平,共同选通16位数据线。而对奇地址字的访问则需两个总线周期,第一个总线周期传送该字的奇地址字节,第二个总线周期传送偶地址字节。当然,这种操作是机器自动进行的,对用户透明。不过,了解这一点,有助于更好地编写程序。 https://www.doczj.com/doc/1d19306889.html, 需要指出,如果既要进行字访问,又要进行字节访问,那么不管8086实际所配的存储容量多少,都必须分成两个物理存储体,并且对存储系统中不同类型(指SRAM、DRAM和ROM。)部分,也必须各自分成两个物理存储体。图3.34所示是8086最大模式时存储器构成的一个例子。图中的6264是8 K×8位SRAM芯片,它有两个极性相反的片选信号;2732是4 K×8位EPROM芯片,它和2716用法一样,只是存储容量扩大了一倍,多了一根地址线。 DRAM与CPU的连接 比起SRAM,DRAM与CPU相连时需要多考虑两点,一是刷新,二是行、列地址分时传送。图3.32所示是一个用16片2164(64 K×l位)构成128 KB DRAM的示例。 2164是“×l位”结构,每8片可组成64 KB的存储空间。一组中每片的数据输入线和数据输出线应连在一起,再分别和CPI.7的相应的一根数据线相连;8片的RAS、CAS、WE分别连在一起,用来同时对8片进行操作。 因为2164内部的行地址和列地址是分别锁存的,所以应将行地址和列地址分时送出,图中的行/列多路器用来完成此功能。又由于2164是DRAM,需要刷新,所以用刷新多路器对CPU正常读/写的行地址和刷新用的行地址进行选择。刷新行地址是由刷新时钟对刷新计数器计数产生。 这里突出了行、列地址分时送出及刷新行地址的产生。至于RAS和CAS的产生,和sRAM有相同之处,即除了进行片内寻址的低位地址线(A15~A0)外,由高位地址进行译码产生,但要考虑RAS和CAS的时序配合问题。 上面分析了和动态RAM相连从原理上需要外加的电路。实际上,这些电路早已被包括在集成化的动态RAM 控制器中。例如,Intel 8203就是用来支持8086/8088 CPU和2164、2118(16 K×1位)等DRAM相连的控制器。在现代微型计算机中,动态RAM控制器被集成在称为控制芯片组的逻辑中。 https://www.doczj.com/doc/1d19306889.html,

8086所有寄存器简介

首先浅要介绍一下 Intel CPU 的发展史吧: Intel CPU 系列,最初是 4 位微处理器 4004,然后到到 8 位微处理器的 8008 , 再到 8 微微处理器 8080,以及稍后的 16 位微处理器 8086, 由 8086 开始,Intel 进入现在所谓的 x86 时代。 Intel 8086 为 16 位 CPU ,而因为在 8086 之前的 CPU 都是 8 位 CPU,这样也就造成了很多的外设也只支持 8 位, 因此 Intel 紧接着就退出了 8 位的 8088 CPU,因此 Intel 8088 也就可以看做是 8086 的 8 位版本; 如果是但从汇编语言的角度上来说,8086 和 8088 是没有区别的,即 8086 上跑的程序可以不加修改的移植到 8088 , 8088 上跑的程序也可以不加修改的移植到 8086 上, 当然,还是有些特殊的地方是不同的,而这些基本上在这里可以忽略掉, 在 8088 CPU 之后,Intel 又推出了 80186 ,80286 ,这两款 CPU 均是 16 位 CPU , 而对于 80186 来说,其与 8086 的区别可以简单的看做是 80186 多了几条指令而已, 而 80286 则不同,80286 的地址总线数目有了变化, 在 8086 , 8088 , 80186 上,CPU 的地址总线都是 20 根,即可最大寻址 220 即达到 1MB 的寻址能力, 而对于 80286 CPU 来说,其地址总线数目达到了 24 根,从而最大寻址能力为 224即 16MB, 由于支持更多的物理内存寻址,因此 80286 便开始成为了多任务,多用户系统的核心。 而后来,Intel 又推出了 80386 ,80386 为 32 位微处理器,Intel 80x86 家族的 32 位微处理器始于 80386; 同时 80386 也完全兼容先前的 8086/8088,80186,80286,并且 80386 全面支持 32 位数据类型和 32 位操作, 并且 80386 的数据总线根数和地址总线根数均达到了 32 根,从而可以最大物理寻址为 232 即 4GB 。 而之后的 80486 也是 32 位微处理器,而后又出来了 Pentium 和 Pentium Pro 等等第五代微处理器, 这些处理器虽然也是 32 位微处理器,但是他们的数据总线和地址总线都有所扩展, 比如 Pentium 的数据总线达到 64 位,而 Pentium Pro 的地址总线位数达到了 36 位。 好,关于 Intel CPU 的介绍就到这里了,下面就要开始回归中心,看 CPU 中的寄存器了, 首先,从学习的角度来说,从 8086/8088 CPU 下手是不错的选择,而我这里选择的也是 8086 CPU 而已, 说实在的,像 80386 CPU 我也还没有研究过,像奔腾这些,呵呵,扯更远了, 说到底也就只能拿 8086 出来晒晒而已,当然,从 8086 开始也是学习的最佳路径。 说了这么久,到底寄存器是什么呢?其实很简单,寄存器就是个存储信息的单元或者说是器件又或者说是容器而已, 就比如内存也是一个存储介质或者说是存储单元而已,其实寄存器从理解上来说和内存差不多, 只不过寄存器(这里讨论的寄存器都是 CPU 中的寄存器,不包括外设上的寄存器)位于 CPU 内部,而内存位于 CPU 外部,而且,寄存器比内存可是珍贵得多啊,就拿内存和硬盘来比,肯定是内存在使用上珍贵得多,是 PC 中的稀有资源, 而寄存器是 CPU 中的稀有资源,内存和寄存器相比就像硬盘和内存相比一样。 而对于一个汇编程序员来说,CPU 中主要可以使用的也就是寄存器而已,汇编程序员可以使用指令来读写 CPU 中的寄存器,从而可以实现对于 CPU 的控制,当然,不同的 CPU ,寄存器的个数和结构都是不一样的, 比如 8086 CPU 中,寄存器的个数也就 14 个而已, 并且 8086 CPU 中所有的寄存器的结构为 16 位,即一个寄存器中可以存放下 2B 即 2 个字节, 而到了 80386 CPU 中,寄存器的个数也比 8086 增多了,比如在 80386 中添加了系统地址寄存器等寄存器, 同时寄存器的结构也变了,比如在 80386 中绝大多数的寄存器为 32 位,而有些寄存器则是 16 位。 8086 CPU 中寄存器总共为 14 个,且均为 16 位。 即AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES共 14 个。 而这 14 个寄存器按照一定方式又分为了通用寄存器,控制寄存器和段寄存器。 通用寄存器: AX,BX,CX,DX 称作为数据寄存器: AX (Accumulator):累加寄存器,也称之为累加器; BX (Base):基地址寄存器; CX (Count):计数器寄存器; DX (Data):数据寄存器; SP 和 BP 又称作为指针寄存器: SP (Stack Pointer):堆栈指针寄存器; BP (Base Pointer):基指针寄存器; SI 和 DI 又称作为变址寄存器: SI (Source Index):源变址寄存器; DI (Destination Index):目的变址寄存器; 控制寄存器: IP (Instruction Pointer):指令指针寄存器; FLAG:标志寄存器; 段寄存器: CS (Code Segment):代码段寄存器; DS (Data Segment):数据段寄存器; SS (Stack Segment):堆栈段寄存器; ES (Extra Segment):附加段寄存器; 通用寄存器 从上面可以知道,在 8086 CPU 中,通用寄存器有 8 个,分别是 AX,BX,CX,DX,SP,BP,SI,DI , 至于为什么给它们取名做通用寄存器,那是因为,这些个寄存器每一个都有自己专门的用途, 比如 CX 作为计数寄存器,则是在使用 LOOP 指令循环时用来指定循环次数的寄存器, 如果它们每一个都只有一个专用的作用,那就它们只能称之为专用寄存器了, 正是因为这些个寄存器还可以用来传送数据和暂存数据,所以才称它们为通用寄存器。 下面就按顺序来一一介绍这几个通用寄存器了: 数据寄存器(AX,BX,CX,DX): 数据寄存器有 AX,BX,CX,DX 四个组成, 由于在 8086 之前的 CPU 为 8 位 CPU,所以为了兼容以前的 8 位程序, 在 8086 CPU 中,每一个数据寄存器都可以当做两个单独的寄存器来使用, 由此,每一个 16 位寄存器就可以当做 2 个独立的 8 位寄存器来使用了。 AX 寄存器可以分为两个独立的 8 位的 AH 和 AL 寄存器; BX 寄存器可以分为两个独立的 8 位的 BH 和 BL 寄存器; CX 寄存器可以分为两个独立的 8 位的 CH 和 CL 寄存器; DX 寄存器可以分为两个独立的 8 位的 DH 和 DL 寄存器;

8086的应用及原理图

8086的应用及原理图 一、简介 8086是由英特尔(Intel)公司于1978年推出的一款16位微处理器。它成为了后续x86架构的基础,并且在80年代和90年代广泛应用于各种个人电脑和工作站中。 二、8086的应用 8086微处理器在各个领域有着广泛的应用,以下是一些常见的应用场景: 1.个人电脑:8086是最早的一种个人电脑用微处理器。在80年代和 90年代,它极大地推动了个人电脑的发展,成为了当时最主流的处理器。 2.工业控制:8086在工业控制系统中也被广泛使用。由于其较高的计 算能力和稳定性,能够处理复杂的算法和控制逻辑,因此在自动化生产线、仪器仪表和机械设备等方面有着重要的应用。 3.嵌入式系统:由于8086具有较小的体积和低功耗的特点,使得它在 嵌入式系统中有广泛的应用。像医疗设备、智能家居和智能穿戴设备等嵌入式系统中,8086可以负责控制和处理各种传感器和设备。 4.航空航天:8086在航空航天领域有着重要的作用。由于其高可靠性 和强大的计算能力,使得它被广泛应用于火箭控制系统、卫星通信和导航系统等方面。 三、8086的原理图 1. 存储器单元 •内部存储器:用于存放指令和数据,包括寄存器和内存。 –寄存器:包括通用寄存器、指令指针寄存器、段寄存器等。 –内存:分为代码段、数据段和堆栈段等。 2. 控制单元 •指令寄存器(IR):用于存放当前执行的指令。 •程序计数器(PC):存放指令的地址。 •指令译码器:将指令解码为对应的操作。 •控制逻辑:根据指令执行的需求,控制各个模块的工作。

3. 算术逻辑单元 •运算器:负责执行各种算术运算和逻辑运算。 •标志寄存器(FLAGS):状态寄存器,记录运算结果中的状态。 4. 输入输出单元 •输入端口:负责接收外部设备的数据。 •输出端口:负责将数据发送给外部设备。 四、总结 8086微处理器作为早期个人电脑使用的重要组成部分,对计算机技术的发展有着深远的影响。它在个人电脑、工业控制、嵌入式系统和航空航天等领域有着广泛的应用。理解8086的原理图对于深入学习计算机体系结构和微处理器技术非常有帮助。

总结8086

总结8086 简介 8086是Intel公司于1978年推出的一款16位微处理器,也是x86架构的起点,后续发展为80286、80386等系列。8086是Intel公司成功的一款产品,不仅适用于普通的个人电脑,也广泛应用于工业自动化、嵌入式系统等领域。 8086的特点 1.16位架构:8086是一款16位微处理器,相比之前的8位处理器, 8086能够进行更多的数据处理操作,提升了系统的性能。 2.可寻址1MB空间:8086具有20位的地址总线,可以寻址1MB的 内存空间,满足了当时计算机系统越来越复杂的内存需求。 3.段寻址机制:8086采用了段寻址机制,将内存地址分为段和偏移量 两部分,可以方便地访问大于64KB的内存空间。 4.指令集丰富:8086拥有丰富的指令集,包括数据传输指令、算术运 算指令、逻辑运算指令、控制转移指令等等,能够完成各种复杂的计算和控制任务。 8086的应用 1.个人电脑:8086被广泛应用于个人电脑,成为早期PC机的基础。 后来,随着英特尔推出了更高性能的80386、80486等处理器,8086逐渐退出了个人电脑市场。 2.工业自动化:8086在工业自动化领域得到了广泛应用。工业自动化 领域对计算能力要求相对较低,而8086性能稳定、价格适中,非常适合用于控制和监测设备。 3.嵌入式系统:8086也被应用于嵌入式系统,如工业控制器、自动售 货机、家用电器等。8086的低功耗、可靠性和成本效益等特点使其成为这些嵌入式系统的理想选择。 8086的优缺点 优点: - 强大的性能:相比之前的8位处理器,8086的16位架构使其具备更高的计算能力和数据吞吐量。 - 大内存地址空间:8086的1MB内存寻址能力满足了当时系统对内存的需求。 - 兼容性良好:8086与后续的80286、80386兼容,可以在这些处理器上运行8086的软件。 - 成本效益高:8086的价格相对较低,适合广泛的应用场景。 缺点: - 性能限制:相比后续的处理器,8086的性能较低,不能满足某些复杂应用的要求。 - 指令集有限:8086的指令集相对较小,缺少一些现代处理器常用

8086结构组成

8086结构组成 一、简介 8086是英特尔(Intel)公司于1978年推出的16位微处理器,是第一款具有高度通用性的微处理器。8086结构包括各种功能部件,如寄存器组、运算单元、控制单元等。本文将详细介绍8086的结构组成和各个组成部分的功能。 二、8086结构组成 1. 寄存器组 8086包含了多个寄存器,用于存储各种数据和地址信息。寄存器组包括通用寄存器、指令指针寄存器、段寄存器等。 1.1 通用寄存器 8086拥有四个16位的通用寄存器:AX、BX、CX、DX。这些寄存器可以用于存储数据、地址以及进行运算。 1.2 指令指针寄存器 指令指针寄存器IP存储当前执行指令的地址,可以进行程序的跳转和控制。 1.3 段寄存器 8086采用段寄存器和偏移地址的方式来定位内存中的数据。段寄存器包括代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附加段寄存器ES。 2. 运算单元 8086拥有一个功能强大的运算单元,可以执行各种运算和逻辑操作。运算单元包括算术逻辑单元ALU、标志寄存器FLAGS等部件。

2.1 算术逻辑单元(ALU) ALU是8086中重要的组成部分,负责执行各种算术和逻辑运算,如加法、减法、与、或等。 2.2 标志寄存器(FLAGS) FLAGS寄存器用于存储运算结果的状态信息,包括进位标志、零标志、溢出标志等。这些标志位可以帮助程序进行条件分支和判断。 3. 控制单元 控制单元是8086中负责控制和协调各个部件工作的组成部分。主要包括指令译码器、时钟发生器等。 3.1 指令译码器 指令译码器用于解析指令,将指令转化为相应的控制信号,控制其他部件的工作。 3.2 时钟发生器 时钟发生器为8086提供稳定的时钟信号,用于同步各个部件的工作,确保指令能 够按序执行。 4. 外部接口 8086能够与外部设备进行通信,包括输入输出接口和存储器接口。 4.1 输入输出接口 输入输出接口负责将内部数据和外部设备进行数据交换,通过输入输出指令控制。 4.2 存储器接口 存储器接口用于访问外部存储器,包括读取和写入数据。

8288简介

1.6 8288总线控制器 在MN//MX信号为低电平的系统状态下,为了译出/S0,/S1和/S2状态线,必须使用8288总线控制器,用以产生系统总线信号。为了将几个微处理器接到一组系统总线上,或者为了给一个8086提供几组系统总线,也可使用8288总线控制器。 8288总线控制器的基本作用是译出/S0,/S1和/S2三个状态信号的意义但这些功能用个简单的3-8译码器即可完成。8288除此之外还有下列功能: (1)8288能产生系统总线或仅有I/O装置的总线的控制信号。 (2)可浮空系统总线信号,以允许直接存储器访问,或仲裁总线优先权。 (3)两根写控制线提供备用的先行控制输出是专为慢速存储器或I/O装置而设计的。 (4)可以封装控制信号,作为多总线或多微理器结构中实行存储器保护逻辑的一种方法。 (5)产生线路驱动器所需的信号。 (6)产生简单或复合中断逻辑所需的控制信号。 8288总线控制器是利用双极工艺制作的,为20引脚的双列直插封装,所有信号为TTL 电平兼容。 1.6.1 8288总线控制器信号与引脚分配 图1.56示出了8288的信号与引脚分配。 从前面已介绍过的8086的读写总线周期的时序可知读写控制信号出现低脉冲要比写控制信号提前约一个时钟周期。8288产生两个备用写控制信号,其时序与读控制信号相同。 这些备用写控制信号被称为先行写控制信号,因为它们要比标准的写控制信号提前一个时钟周期出现低电平。

所以,8288系统总线控制信号可概括如下: /MRDC是存储器读控制信号。 /MWTC是存储器写控制信号。 /AMWC是存储器写控制信号,其时序与MRDC一致。 /INTA是存储器读控制信号,它在两个中断响应总线周期期间输出。 /IORC是I/O装置读控制信号。 /IOWC是I/O装置写控制信号。 /AIOWC是备用I/O装置写控制信号,其时序与/IORC一致。 连接在总线上的装置大致都用/IOWC和/MWTC,或者用/AIOWC和/AMWC,但不会四种信号都用。即是说,你要么用正规的写控制信号,要么用先行写控制信号。 所有8288控制信号都是三态的。它们可以被禁止,从而可以与系统总线断开。 还有两种选用控制信号,它们可改变8288总线控制器的控制信号逻辑。 利用IOB引脚,你可以在I/O总线模式或系统总线模式下使用8288器件。 利用CEN引线,你可封锁控制信号。 当IOB引脚接收高电平输入时,8288总线控制器只产生控制I/O总线的信号。IOB高电平是/MRDC,/MWTC和/AMWC恒为浮空,但输出/INTA,/IORC,/IOWC和/AIOWC信号。在I/O总线模式中,这四个I/O控制信号不能浮空。由于这4条I/O控制器总是有效的,故使8288产生的I/O总线是个逻辑总线,你不能与其他微处理器共用这一局部总线。 8288I/O总线有两个控制信号,即/PDEN和/DT//R,它们驱动I/O口和长线驱动器。/DT/R,在8086的有关章节中介绍过,是控制双向总线驱动器用的。在高电平时,DT//R使总线驱动器处于输出状态;在低电平时,DT//R使总线驱动器处于输入状态。/PDEN发出低脉冲作数据开启信号。/PDEN等效于8086输出的标准总线数据开启信号/DEN。 IOB是低电平时产生正规系统总线。所有七个控制信号都是有效的;然而,/AEN是总线选通信号(与8080A系统中8288总线控制器用的/BUSEN信号很相似)。 当IOB是高电平并产生I/O总线时,/AEN无作用。只有当IOB是低电平,产生系统总线时,/AEN才有作用。

8086cpu

8086 CPU 简介 8086 是英特尔(Intel)公司于 1978 年推出的 16 位微处理器。它是最早的 x86 微处理器之一,被广泛应用于个人电脑(PC)的起步阶段,对于计算机技术的发展和普及起到了重 要的推动作用。本文将介绍 8086 CPU 的基本特征、工作原理和应用领域。 8086 CPU 的特点 1.16 位架构: 8086 CPU 是一种 16 位微处理器,相 对于 8 位微处理器,它能够处理更多的数据,提高计算机 的处理能力。 2.寻址能力强: 8086 CPU 支持 1MB 的物理内存寻址, 这在当时是非常先进的。它通过分段的方式来实现 1MB 内存的寻址,其中代码段和数据段的概念对于内存管理非常 重要。 3.复杂指令集: 8086 CPU 拥有丰富的指令集,包括 算术运算、逻辑运算、条件分支、循环等指令。这使得编 程人员能够更灵活地进行程序设计。

4.支持多种工作模式: 8086 CPU 支持实模式和保护模式两种工作模式,实模式是与早期的 8080 和 8085 微处理器兼容的模式,保护模式则是为了在用户程序和操作系统之间提供更高的安全性和稳定性。 8086 CPU 的工作原理 8086 CPU 主要包括以下几个部分: 1.总线接口单元(BIU):负责处理与外部器件之间的数据传输,例如内存读写、I/O 设备访问等。 2.执行单元(EU):负责指令的解码和执行,包括算术逻辑运算、数据传输等操作。 3.时钟发生器(CLK):生成 CPU 的时钟信号,控制CPU 的工作频率。 8086 CPU 的工作过程如下: 1.取指令(Fetch): BIU 从指令队列(Instrution Queue)中读取指令,并将其送往指令寄存器(Instruction Register)中进行解码。

8086和825574LS373控制LED流水灯课设.

课程设计任务书 专业自动化班级** 姓名** 设计起止日期2013.12.16~2013.12.20 设计题目:多路流水灯控制程序的设计 设计任务(主要技术参数): 按要求设计出模拟多路流水灯控制系统。通过8086系统总线单元和输入输出并行接口8255单元、74LS373以及LED显示单元进行连接,并应用所设计的程序使连接好的线路工作正常。 指导教师评语: 成绩:签字: 年月日

1 引言 随着科学技术的不断发展 ,在高精尖科技的面前微型计算机的应用是无处不在的,所以要学好微机原理及其应用。对于本次课程设计,按要求通过汇编语言设计出模拟热水器控制系统。根据提供的8086系统总线单元、输入输出并行接口8255单元、74LS373以及LED 显示进行连接,并应用所设计的程序使连接好的线路工作正常。 本次课程设计的题目为“多路流水灯控制程序的设计”,并行通信就是把一个字符的各位同时用几根线进行传输。传输速度快,信息率高。电缆要多,随着传输距离的增加,电缆的开销会成为突出的问题,所以,并行通信用在传输速率要求较高,而传输距离较短的场合。 应用程序设计的具体内容如下: 在本实验中要求用8255A 的B 口做为输出,接16个发光二极管,从而实现16 位流水灯的显示效果,故基本的接线。在PA 0-PA 7口分别对应的接八个发光二极管。在PB 0-PB 7口分别对应的接八个发光二极管。使16只彩灯从左往右依次点亮然后熄灭。使16只彩灯从右往左依次点亮后熄灭。使16只彩灯闪烁。接着重复以上动作,这样一直循环下去。 2 设计方案论证 2.1设计原理 本次课程设计的内容为模拟流光灯控制系统设计与实现。根据需要,需选择的芯片有74LS373变换芯片,8255可编程并行接口。 1)设计题目分析 编写程序,使用8255的A 口和B 口均为输出,实现16位流水灯显示效果 2)功能扩展 i :将流水灯设计成可以正着流水,也可以倒着流水 ii :通过开关对流水灯闪烁的速度进行控制,高电平时为快,低电平时为慢速

基于8086波形发生器设计

信息工程学院 课程设计报告 设计题目: 波形发生器的设计 名称: 微机原理与接口课程设计 班级: 1002 姓名: 学号: 设计时间: 至 指导教师: 评语: 评阅成绩: 评阅教师:

目录 一.引言 (3) 二.设计目的 (3) 三.原理说明 (3) 四. 硬件设计 (6) 五. 设计原理 (8) 六. 程序编译 (10) 1. 输出方波的子程序 (10) 2. 输出三角波子程序 (11) 3. 输出锯齿波子程序 (11) 4. 输出正弦波子程序 (12) 5. 输出梯形波子程序 (13) 七.调试方法与结果 (14) 八.心得体会 (17)

一.引言 波形发生器是一种常用的信号源,广泛的应用于电子电路、自动控制系统和教学实验等领域,是现代测试领域应用最为广泛的通用仪器之一。在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都需要有信号源。由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察。测量被测仪器的输出响应,以分析确定它们的性能参数。信号发生器是电子测量领域中最基本、应用最为广泛的一类电子仪器。它可以产生多种波形信号,如锯齿波、三角波、梯形波等,因而广泛应用于通信、雷达、导航、宇航等领域。 本次课程设计使用的8086和DAC0832构成的发生器可产生三角波,波形的周期可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。此设计给出了源代码,通过仿真测试,其性能指标达到了设计要求。 二.设计目的 1、掌握DAC0832与PC机的接口方法。 2、掌握D/A转换应用程序设计方法。 三.原理说明 1.知识简介: DAC0832当今世界在以电子信是8位分辨率的D/A转换集成芯片,与微处理器完全兼容,这个系列的芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到了广泛的应用。这类D/A转换器由8位输入锁存器,8位DAC寄存器,8位D/A转换电路及转换控制电路构成。 2.DAC0832的引脚及功能: DAC0832是8分辨率的D/A转换集成芯片。与微处理器兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。

相关主题
文本预览
相关文档 最新文档