8086_8088处理器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8086/8088处理器
1、引言
8086/8088微处理器是Intel公司推出的第三代CPU芯片,它们的内部结构基本相同,都采用16位结构进行操作及存储器寻址,但外部性能有所差异,两种芯片都封装在相同的40脚双列直插组件(DIP)中。
2、8086微处理器的一般特点
A、16位内部结构,16位双向数据信号线;
B、20位地址信号线,可寻址1M字节存储单元;
C、较强的指令系统;
D、利用第十六位的地址总线来进行I/O端口寻址,可寻址64K个I/O端口;
E、中断功能强,可处理内部软件中断和外部中断,中断源可达256个;
D、单一的+5V电源,单相时钟5MHz
另外,Intel公司同期推出的Intel 8088微处理器是一种准16位微处理器,其内部寄存器、内部操作等均按16位处理器设计,与Intel 8086微处理器基本相同,不同的是其对外的数据线只有8位,目的是为了更方便地与八位I/O接口芯片相兼容。
8088内部结构图
3、8086/8088 CPU内部寄存器
8086/8088 CPU内部寄存器可分为通用寄存器和专用寄存器两大类,专用寄存器包括指针寄存器、变址寄存器等。
①通用寄存器
8086/8088有4个16位的通用寄存器(AX、BX、CX、DX),可以存放16位的操作数,也可分为8个8位的寄存器(AL、AH;BL、BH;CL、CH;DL、DH)来使用。
其中AX称为累加器,BX称为基址寄存器,CX称为计数寄存器,DX称为数据寄存器。
②指针寄存器
系统中有两个16位的指针寄存器SP和BP,其中SP是堆栈指针寄存器,由它和堆栈段寄存器SS一起来确定堆栈在内存中的位置; BP是基数指针寄存器,通常用于存放基地址。
③变址寄存器
系统中有两个16位的变址寄存器SI和DI,其中SI是源变址寄存器,DI是目的变址寄存器,都用于指令的变址寻址方式。
AH&AL=AX:累加寄存器,常用于运算;
BH&BL=BX:基址寄存器,常用于地址索引;
CH&CL=CX:计数寄存器,常用于计数;
DH&DL=DX:数据寄存器,常用于数据传递。
IP(Instruction Pointer):指令指针寄存器,与CS配合使用,可跟踪程序的执行过程;
SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置。
BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置;
SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;
DI(Destination Index):目的变址寄存器,可用来存放相对于 ES 段之目的变址指针。
④控制寄存器
IP、标志寄存器是系统中的两个16位控制寄存器,其中IP是指令指针寄存器,用来控制CPU的指令执行顺序,它和代码段寄存器CS一起可以确定当前所要取的指令的内存地址。
顺序执行程序时,CPU每取一个指令字节,IP自动加1,指向下一个要读取的字节;当IP单独改变时,会发生段内的程序转移;当CS
和IP同时改变时,会产生段间的程序转移。
标志寄存器的内容被称为处理器状态字PSW,用来存放8086/8088CPU在工作过程中的状态。
⑤段寄存器
系统中共有4个16位段寄存器,即代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附加段寄存器ES。
这些段寄存器的内容与有效的地址偏移量一起,可确定内存的物理地址。
通常CS划定并控制程序区,DS和ES控制数据区,SS 控制堆栈区。
4、处理器状态字PSW
8086/8088内部标志寄存器的内容,又称为处理器状态字PSW。
其中共有9
个标志位,可分成两类:一类为状态标志,一类为控制标志。
其中状态标志表示前一步操作(如加、减等)执行以后,ALU所处的状态,后续操作可以根据这些状态标志进行判断,实现转移;控制标志则可以通过指令人为设置,用以对某一种特定的功能起控制作用(如中断屏蔽等),反映了人们对微机系统工作方式的可控制性。
5、管脚与信号定义
如图所示,是8086/8088CPU的外部结构,即引脚信号图,注意:在不同的工作模式下,其中一部分引脚的名称和功能可能不一致。
8088/8086CPU芯片都是双列直插式集成电路芯片,都有40个引脚,其中32个引脚在两种工作模式下的名称和功能是相同的,还有8个引脚在不同的工作模式下,具有不同的名称和功能。
下面,我们分别来介绍这些引脚的输入/输出信号及其功能。
㈠两种模式下,名称和功能相同的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共有四个组态,用以指明当前使用的段寄存器,如表9-5所示,00—ES,01—SS,10—CS,11—DS。
④ NMI(Non-Maskable Interrupt)、INTR(Interrupt Request):中断请求信号输入引脚(2),引入中断源向CPU提出的中断请求信号,高电平有效,前者为非屏蔽中断请求,后者为可屏蔽中断请求信号。
⑤RD(Read):读控制输出信号引脚(1),低电平有效,用以指明要执行一个对内存单元或I/O端口的读操作,具体是读内存单元,还是读I/O端口,取决于IOM/控制信号。
⑥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/S7(Bus High Enable/Status):高8位数据允许/状态复用信号输出引脚(1) ,输出。
分时输出BHE有效信号,表示高8为数据线D15—D8上的数据有效和S7 状态信号,但S7未定义任何实际意义。
㈡最小模式下的24-31引脚
当8088/8086CPU 的XMMN/引脚固定接+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当前准备发送或接收一项数据。
④RDT/(Data Transmit/Receive):数据收发控制信号输出引脚(1),CPU通过
该引脚发出控制数据传送方向的控制信号,在使用8286/8287作为数据总线收发器时,RDT/信号用以控制数据传送的方向,当该信号为高电平时,表示数据由CPU经总线收发器8286/8287输出,否则,数据传送方向相反。
⑤MIO/(Memory/Input &Output): 存储器/I/O端口选择信号输出引脚(1),这
是CPU区分进行存储器访问还是I/O访问的输出控制信号。
当该引脚输出高⑥WR(Write): 写控制信号输出引脚(1) ,低电平有效,与MIO/配合实现对存
储单元、I/O端口所进行的写操作控制。
⑦HOLD(Hold Request): 总线保持请求信号输入引脚(1),高电平有效。
这是系
统中的其它总线部件向CPU发来的总线请求信号输入引脚。
⑧HLDA(Hold Acknowledge):总线保持响应信号输出引脚,高电平有效,表示
CPU认可其他总线部件提出的总线占用请求,准备让出总线控制权。
㈢最大模式下的24-31引脚
当8088/8086CPU 的XMMN/引脚固定接地时,CPU处于最大模式下,这时候剩余的24—31共8个引脚的名称及功能如下:
① QS1、QS0(Instruction Queue Status):指令队列状态信号输出引脚(2), 这
两个信号的组合给出了前一个T状态中指令队列的状态,以便于外部
8088/8086CPU内部指令队列的动作跟踪。
②2S、 1S 、0S :总线周期状态信号输出引脚(3),低电平的信号输出端,这
些信号组合起来,可以指出当前总线周期中,所进行数据传输过程的类型,总线控制器8288利用这些信号来产生对存储单元、I/O端口的控制信号。
2S、1S、 0S与具体物理过程之间的对应关系。
③LOCK (Lock):总线封锁输出信号引脚(1),低电平有效,当该引脚输出低电
平时,系统中其它总线部件就不能占用系统总线。
LOCK信号是由指令前缀LOCK产生的,在LOCK前缀后面的一条指令执行完毕之后,便撤消 LOCK信号。
此外,在8088/8086的 2个中断响应脉冲之间, LOCK 信号也自动变为有效的低电平,以防止其它总线部件在中断响应过程中,占有总线而使一个完整的中断响应过程被中断。
④1/GTRQ、0/GTRQ(Request/Grant):总线请求信号输入/总线允许信号输出引脚(2)。
这两个信号端可供CPU以外的两个处理器,用来发出使用总线的请求信号和接收CPU对总线请求信号的应答。
这两个引脚都是双向的,请求与应答信号在同一引脚上分时传输,方向相反。