第二章8086微处理器_第1页
第二章8086微处理器_第2页
第二章8086微处理器_第3页
第二章8086微处理器_第4页
第二章8086微处理器_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章8086微处理器8086微处理器采用HMOS工艺技术制造,外型封装为双列直插式,有40个引脚。主时钟频率有5MHz,8MHz和10MHz几种。内部采用16位数据通路和流水线结构,从而允许其在总线空闲时预取指令,使取指令与执行指令实现了并行操作。8086有20位地址线,可直接寻址的空间达1MB。Intel公司为了与一整套外围设备兼容推出准16位CPU8088,内部结构和8086相同,但对外数据总线只有8位。2.18086/8088微处理器的内部结构

微处理器执行一条指令的过程:取指令取操作数执行指令传送结果

在8086/8088内部分两大部件:

执行部件(EU):负责指令的执行总线接口部件(BIU):负责与存储器、I/O端口传送数据

这两大部件构成两级流水线,使取指和执行可并行完成,并成为后续CPU的基本技术。内部总线16位8位队列总线总线控制逻辑

地址加法器20位地址总线16位(8位)数据总线总线接口部件BIU123456指令队列CSDSSSES80888086IP暂存器总线EU控制单元ALU暂存器标志寄存器执行部件EU通用寄存器AXAHALBXBHBLCXCHCLDXDHDLSPBPDISI8086/8088结构图举例8086的内部寄存器含14个16位寄存器,按功能可分为三类

数据寄存器(AX,BX,CX,DX)地址指针寄存器(SP,BP)变址寄存器(SI,DI)8个通用寄存器4个段寄存器2个控制寄存器CS:代码段寄存器DS:数据段寄存器ES:附加段寄存器SS:堆栈段寄存器IP:指令指针寄存器PSW:状态寄存器数据寄存器

用于存放各种数据8086含4个16位数据寄存器,它们又可分为8个8位寄存器,即:AXAH,ALBXBH,BLCXCH,CLDXDH,DL

AX(Accumulator)累加器在乘法和除法指令中作累加器,所有I/O指令都使用该寄存器与外设端口传送数据。BX(Base)基址寄存器在计算内存地址时,常用来存放偏移地址。CX(Count)计数器在循环和串操作指令中用作计数器。DX(Data)数据寄存器在寄存器间接寻址的I/O指令中存放端口地址,在做双字长乘除法运算时,与AX配合使用。指针寄存器

可存放各种数据SP(Stackpointer)堆栈指针寄存器用来确定堆栈在内存中的地址。BP(Basepointer)基址指针寄存器在计算内存地址时,常用来存放偏移地址。SI(SourceIndex)源变址寄存器可存放各种数据及偏移地址,在串操作中,用于指向源串首地址。DI(DestinationIndex)目的变址寄存器可存放各种数据及偏移地址,在串操作中,用于指向目的串首地址。段寄存器用来识别当前可寻址的四个段CS(CodeSegmentRegister)代码段寄存器指示当前执行的程序所在存储器中的区域。DS(DataSegmentRegister)数据段寄存器指示当前程序所用的数据在存储器中的区域。SS(StackSegmentRegister)堆栈段寄存器指示当前程序所用的堆栈在存储器中的区域。ES(ExtraSegmentRegister)附加段寄存器指示当前程序所用的数据在存储器中的另外区域,在字符串操作中常用到。标志寄存器

(FLAG)唯一能按位操作的寄存器只定义了其中9位,另外7位未定义(保留)

6位状态标志:OF(Overflow)、SF(Sign)、ZF(Zero)、AF(Auxiliary)、PF(Parity)、CF(Carry)3位控制标志:DF(Direction)、IF(Interrupt-Enable)、TF(Trap)OFDFIFTFSFZFAFPFCFD15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0例1例20110011010101001运算结果最高位为1 ∴SF=1;第三位向第四位有进位 ∴AF=1;根据双高判别法C14

C15=10=1∴OF=1最高位没有进位 ∴CF=0;低8位中1的个数为偶数个 ∴PF=1;运算结果本身≠0 ∴ZF=0;10001101001101100011001000011001+例1:2个数相加后,分析各标志位的值返回001011001000110010001101001101100011001000011001-例2:2个数相减后,分析各标志位的值运算结果最高位为0 ∴SF=0;第三位向第四位没有借位 ∴AF=0;最高位没有借位 ∴CF=0;低8位中1的个数为奇数个 ∴PF=0;运算结果本身≠0 ∴ZF=0;根据双高判别法C14

C15=00=0∴OF=0返回IP指令指针寄存器用来存放下一条将要执行的指令在当前代码段中的偏移地址。在程序运行中,IP的内容能够自动修改,使之总是指向下一条要执行的指令地址。总线控制逻辑电路总线控制逻辑电路将8086微处理器的内部总线和外部总线相连,是8086微处理器与内存单元或I/O端口进行数据交换的必经之路。地址加法器左移4位20位+地址加法器段寄存器16位物理地址20位

偏移地址

0000指令队列8088为4字节,8086为6字节;存取为FIFO(先进先出);指令队列至少保持有一条指令,且只要有一条指令,EU就开始执行;指令队列只要有空,BIU自动执行取指操作,直到填满为止;若EU要进行M/IO存取数据,BIU在执行完现行取指操作周期后进行;当执行转移指令时,EU要求BIU从新的地址中重新取指。队列中原有指令被清除。新取得的第一条指令直接送EU执行,随后取得的指令填入队列。

ALU(ArithmeticandLogicUnit)算术逻辑单元进行所有的算术和逻辑运算;计算寻址单元的十六位偏移地址EA(EffectAddress)。

EU控制器

作用是从BIU的指令队列中取指令,并对指令进行译码,根据指令要求向EU内部各部件发出相应的控制命令以完成每条指令所规定的功能。2.28086/8088微处理器的引脚信号与工作模式一、工作模式最小模式:系统只有8086或8088一个微处理器。所有控制信号直接由CPU提供,因此系统中的总线控制电路被减到最小。一般CPU与小容量的存储器及少量的外设接口相连时,可连成最小模式。最大模式:在中等规模或大型8086/8088系统中使用最大模式,可含有一个或多个微处理器(主处理器8086/8088和协处理器8087、8089)组成中(大)规模系统,CPU并不直接向外界提供全部控制信号,而由S0S1S2通过Intel8288总线控制器提供。1、地址、数据信号:AD0~AD15地址/数据复用引脚(双向、三态)A16/S3~A19/S6地址/状态复用引脚(输出、三态)2、控制信号BHE/S7数据总线高8位允许/状态(输出,三态)WR写信号(输出,低电平有效,三态)RD读信号(输出、低电平有效、三态)M/IO存储器/IO控制信号(输出、三态)

TEST

测试信号(输入、低电平有效)READY准备就绪(输入、高电平有效)12345678910111213141516171819204039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDHOLD*HLDA*WR*M/IO*DT/R*DEN*ALE*INTA*TESTREADYRESET8086二、8086/8088的引脚信号(最小模式)MN/MX=5V

ALE

地址锁存允许信号(输出)DT/R

数据发送/接收控制信号输出(输出、三态)DEN

数据允许信号(输出、三态、低电平有效)HOLD

总线保持请求信号(输入、高电平有效)HLDA

总线保持响应信号(输出、三态、高电平有效)INTR

可屏蔽中断请求信号(输入、高电平有效)INTA

中断响应信号(输出、三态、低电平有效)NMI非屏蔽中断请求(输入,上升沿触发)RESET

复位信号(输入,高电平有效)MN/MX

最小/最大模式控制输入端12345678910111213141516171819204039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDHOLD*HLDA*WR*M/IO*DT/R*DEN*ALE*INTA*TESTREADYRESET808612345678910111213141516171819204039383736353433323130292827262524232221GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCA15A16/S3A17/S4A18/S5A19/S6SS0MN/MXRDHOLD*HLDA*WR*IO/M*DT/R*DEN*ALE*INTA*TESTREADYRESET8088AD0-AD7:数据/低8位地址复用线SS0:状态信号IO/M存储器/地址选择线二、8086/8088的引脚信号(最大模式)MN/MX=0S2S1S0

总线周期状态信号(输出、三态)RQ/GT0

RQ/GT1总线请求(输入)/总线请求允许信号(输出)(双向、均为低电平有效)LOCK总线封锁信号(输出、三态、低电平有效)QS0QS1指令队列状态信号(输出)12345678910111213141516171819204039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDRQ/GT0*RQ/GT1*LOCK*S2*S1*S0*QS0*QS1*TESTREADYRESET8086三、8086/8088的系统配置1、最小模式配置

系统中所有的控制信号由8086本身提供,它的基本配置为:除使用8086/8088作为微处理器外,还需配有时钟发生器8284A、三片地址锁存器(8282/8283)、两片总线驱动器(8286/8287)才能构成系统总线。最小模式总线形成

(Intel产品手册推荐电路)RESETTESTHOLDHLDANMIINTRINTAM/IOWRRDREADYCLK

RDY1RDY2MN/MX+5V控制总线地址总线A19~

A0数据总线D15~D0

ALEA19A16AD15AD

0

DT/RDEN8086CPUSTB

8282OETOE82868284A系统总线~~RESEFIF/CPCLKBHE

2、最大模式配置

除最小模式配置外,需外加总线控制器8288对CPU发出的控制信号进行变换和组合,以获得对存储器、I/O端口的读写信号和对锁存器

8282、总线驱动器8286的控制信号,另外在多处理器中还需加入总线仲裁器8289解决主处理器和协处理器之间协调工作和对总线的共享控制等问题。RESET

S2S1S0

READYCLK

RDY1RDY2MN/MX控制总线地址总线A19~

A0数据总线D15~D0

A19A16AD15AD

0

8086CPUSTB

8282OETOE82868284A系统总线~~RESEFIF/CPCLKBHE

INTAMRDCMWTCIOWCIORCMCE/PDENCLK

AENIOBCENDENDT/RALETESTNMIINTR

8288+5V3、最小模式配置与最大模式配置的比较1)不同之处

最小模式下系统控制信号直接由8086CPU提供;最大模式下因系统复杂,芯片数量较多,为提高驱动能力和改善总线控制能力,系统的控制信号由总线控制器8288提供。

最小模式下8086的31、30脚提供一组总线请求/响应信号(HOLD、HLDA),而最大模式下8086的31、30脚将提供两组总线请求/响应信号(RQ/GT0、RQ/GT1)。2)相同之处:

8086的低位地址线与数据线复用,为保证地址信号维持足够的时间,需使用ALE信号将低位地址线锁存(通过锁存器8282),以形成真正的系统地址总线;

8086的数据线通过数据收发器8286后形成系统数据总线,以增大驱动能力,数据收发器主要由DEN和DT/R两个信号控制。

存储器中的数据存放规则

8086有20条地址线,寻址能力为1MB存储单元中可以存放的内容包括:数据、地址指针(偏移地址和段地址)、程序代码。字节的存储:存储在1个存储单元中。字的存储:占用2个连续的字节单元,低字节在较低地址单元中,高字节在较高地址单元中。字的地址为低字节地址(较低的地址)。字地址为偶数——规则存放的字(简称规则字),字地址为奇数——非规则存放的字(简称非规则字)。字符串的存储:按字符顺序依次连续存放,整个串的地址为存放第一个字符的最低地址。地址指针(双字数据)的存储:地址偏移量存放在低地址字单元,段基址在较高地址单元。2.38086微处理器的存储组织信息存放方式示意图地址内容

19H 0CH1AH 1FH

1BH 01H1CH 23H1DH 74H1EH ABH1FH 41H20H 42H21H 43H22H 44H23H 45H地址为1AH的字节数据1FH1AH 1FH地址为1BH的非规则字数据2301H1BH 01H1CH 23H地址为1EH的规则字数据41ABH1EH ABH1FH 41H首地址为1FH的字符串“ABCDE”

21H43H23H45H20H42H22H44H1FH 41H地址为1AH的双字数据7423011FH;如解释为指针数据,则段基址为7423H,偏移量为011FH1AH 1FH1BH 01H1CH23H1DH74HBHEA0读/写的字节00高低两个字节01奇数地址的高位字节10偶数地址的低位字节11不传送存储空间与存储结构FFFFFH奇地址存储体512K*8bitBHE=0偶地址存储体512K*8bitA0=0FFFFEH00003H00002H00001H00000H地址内容内容地址D7~D0D15~D8A0DBAB存储体与总线的连接BHED7~D0奇地址存储体SELA18~A0D7~D0偶地址存储体SELA18~A0A19~A1存储器分段分段原因:

8086有20根地址线,但其内部可以表示的地址最多只能是16位。为了能寻址1MB空间,8086对存储器进行逻辑分段,段内地址16位,每个段最大为64KB,最小为16B(此时最多64K个段)。 IBMPC机对段的起始地址有限制,即段不能从任意地址开始:每个段起始地址(20位)的最低4位必须为0。连续逻辑段A段B段C段D段E段00000H10000H20000H30000H40000H……实际(物理)存储器分离部分重叠完全重叠8086物理地址PA的形成,其中的16位偏移量也称为有效地址EA(出现在指令中)加法器

段寄存器000015016位偏移量01520位物理地址019段基址1123H偏移量13H段基址1124H偏移量03H存储单元物理地址

11230H11231H11232H……1123FH11240H11241H11242H

11243H逻辑地址LA=段基值:偏移量存储器的逻辑地址和物理地址存储器操作默认段基址可使用段基址偏移地址取指令CS—IP堆栈操作SS—SP变量DSCS、ES、SS

EA源数据串DSCS、ES、SSSI目的数据串ES—DI堆栈中的变量SS—BP逻辑地址来源I/O端口组织I/O端口地址:8086系统和外部设备之间进行数据传输时,各类信息在接口中将进入不同的寄存器,一般称这些寄存器为I/O端口;每个端口分配一个地址号,称为端口地址,CPU通过指令对它们进行访问;I/O端口分:数据端口、状态端口和命令端口。接口电路占用的I/O端口有两类编址形式I/O端口独立编址I/O地址空间独立于存储地址空间如8086/8088I/O端口与存储器统一编址它们共享一个地址空间如M6800内存空间I/O空间FFFFFH0FFFFH优点:I/O端口的地址空间独立控制和地址译码电路相对简单

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论