1、【本章重点】本章主要讲述8086的硬件结构、外部引脚、内部寄存器的组织、和总线时序。【本章难点】引脚功能和总线时序。第第2章章 8086微处理器微处理器2.2.1 8086的结构特点的结构特点微处理器执行一段程序通常是通过重复执行如下步骤来完成。即:(1)从内存储器中取出一条指令,分析指令操作码;(2)读出一个操作数(如果指令需要操作数);(3)执行指令;(4)将结果写入内存储器(如果指令需要)。2.1 8086 CPU的结构的结构AHALBHBLCHCLDHDLSPBPDISI通通用用寄寄存存器器CSDSSSESIP内部暂存器ALU运运算算寄寄存存器器执执行行部部分分控控制制电电路路1 1
2、2 23 3 4 4 5 56 6输输入入/输输出出控控制制电电路路标标志志地地址址加加法法器器2 20 0位位地地址址1 16 6位位地地址址外外部部总总线线指指令令队队列列缓缓冲冲器器总总线线接接口口部部件件(B BI IU U)执执行行部部件件(E EU U)1 16 6位位地地址址A AX XB BX XC CX XD DX X8 8位位图2-1 8086的结构框图 1总线接口部件总线接口部件(1)4个段地址寄存器 CS-16位的代码段寄存器 DS-16位的数据段寄存器 ES-16位的扩展段寄存器 SS-16位的堆栈段寄存器(2)16位的指令指针寄存器IP(3)20位的地址加法器(4)
3、6字节的指令队列。2执行部件执行部件(1)4个通用寄存器,即AX、BX、CX,DX;(2)4个专用寄存器,即基数指针寄存器BP,堆栈指针寄存器SP,源变址寄存器SI,目的变址寄存器DI;(3)标志寄存器Flag;(4)算术逻辑单元ALU;8086的执行部件(EU)有如下特点:(1)4个通用寄存器既可以作为16位寄存器使用,也可以作为8位寄存器使用。(2)AX寄存器也常称为累加器,8086指令系统中有许多指令都是通过累加器的动作来执行的。寄存器执行操作AX整字乘法,整字除法,整字I/OAL字节乘法,字节除法,字节I/O,转移,十进制算术运算AH字节乘法,字节除法BX转移CX串操作,循环次数CL变
4、量移位或循环控制DX整字乘法,整字除法,间接寻址I/OSP堆栈操作SI字符串操作DI字符串操作表2-1 寄存器的主要用途(3)加法器是算术逻辑部件主要部件,绝大部分指令的执行都是由加法器完成的。(4)标志寄存器共有16位,其中,7位未用,所用的各位含义如下:ODITSZ A P C015状态标志有6个,即SF、ZF,PF、CF,AF和OF。符号标志SF(Sign Flag):它和运算结果的最高位相同。若运算结果最高位为1,则SF=1,否则SF=0。零标志ZF(Zero Flag):如果当前的运算结果为零,则ZF=1,否则ZF=0。奇偶标志PF(Parity Flag):如果运算结果的低8位中所
5、含的1的个数为偶数,则PF=1,否则PF=0。进位标志CF(Carry Flag):当执行一个加法运算使最高位产生进位时,或者执行一个减法运算引起最高位产生借位时,则CF=1,否则CF=0。辅助进位标志AF(Auxiliary Carry Flag):当加法运算时,如果第三位往第四位有进位,或者当减法运算时,如果第三位从第四位有借位,则AF=1,否则AF=0。溢出标志OF(Overflow Flag):当运算过程中产生溢出时,会使OF=1,否则OF=0。控制标志有3个,即DF、IF、TF。方向标志DF(Direction Flag):这是控制串操作指令的标志。如果DF=0,则串操作过程中地址会
6、不断增值,反之,如果DF=1,则串操作过程中地址会不断减值。中断标志IF(1uterrupt Enable Flay):这是控制可屏蔽中断的标志。如IF=0,则CPU不能对可屏蔽中断请求作出响应,如果IF=1,则CPU可以接受可屏蔽中断请求。跟踪标志TF(Trap Flay):如果TF=1,则CPU按跟踪方式执行指令。2.2.2 8086的总线工作周期的总线工作周期 在8086中,一个最基本的总线周期由4个时钟周期组成 一个总线同期T1T2T3TWT4一个总线同期T1T2T3TWT4T1T1 在T1状态,CPU往多路复用总线上发出地址信息,以指出要寻址的存储单元及外设端口的地址。在T2状态,C
7、PU从总线上撤消地址,而使总线的低16位浮置成高阻状态,为传输数据作准备。总线的最高4位(A19A16)用来输出本总线周期状态信息。这些状态信息用来表示中断允许状态、当前正在使用的段寄存器名等。在T3状态,多路总线的高4位继续提供状态信息,而多路总线的低16位上出现由CPU写出的数据或者CPU从存储器或端口读入的数据。在有些情况下,被写入数据或者被读取数据的外设或存储器不能及时地配合CPU传送数据。这时,外设或存储器会通过“READY”信号线在T3状态启动之前向CPU发一个“数据未准备好”信号,于是CPU会在T3之后插入1个或多个附加的时钟周期TW。TW也叫等待状态。在Tw状态,总线上的信息情
8、况和T3状态的信息情况一样。当 指 定 的 存 储 器 或 外 设 完 成 数 据 传 送 时,便 在“READY”线上发出“准备好”信号,CPU接收到这一信号后,会自动脱离TW状态面进入T4状态.在T4状态,总线周期结束。需要指出的是,只有在CPU和内存或IO接口之间传输数据,以及填充指令队列时,CPU才执行总线周期。可见,如果在1个总线周期之后,不立即执行下1个总线周期。那么,系统总线就处在空闲状态,此时,执行空闲周期。2.3 8086/8088的引脚信号和工作模式的引脚信号和工作模式 2.3.1 最小模式和最大模式的概念最小模式和最大模式的概念 所谓最小模式,就是在系统中只有8086一个
9、微处理器。在这种系统中,所有的总线控制信号都直接由8086产生,因此,系统中的总线控制逻辑电路被减到最少。最大模式是相对最小模式而言,在此系统中,包含两个或两个以上的微处理器,其中一个主处理器就是8086,其他的处理器称为协处理器,它们是协助主处理器工作的。和8086配合的协处理器有两个。一个是数值运算协处理器8087,一个是输入输出协处理器8089。2.3.2 8086的引脚信号和功能的引脚信号和功能12345678910111213141516171819202122232425262728293031323334353637383940AD14AD13AD12AD11AD10AD9AD8
10、AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCA15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GTHOLD(RQ/GTWR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESETGND1AD15AD0地址数据复用引脚(双向工作)2A19S6A16S3地址状态复用引脚(输出)3 BHE/S7高8位数据总线允许状态复用引脚(输出)BHEA0操 作所用的数据引脚00从偶地址单元开始读写一个字AD15AD001从奇地址单元或端口读写一十字节AD15AD810
11、从偶地址单元或端口读写一个字节AD7AD011无效 01从奇地址开始读写一个字AD15AD010在第一个总线周期,将低8位数字送到AD15AD8在第二个总线周期,将高8位数字送到AD7AD0 4NMI 非屏蔽中断信号 5INTR可屏蔽中断请求信号 6RD读选通信号 7CLK时钟信号 8RESET复位信号 9READY准备就绪输入信号 10TEST测试信号 11 MN/MX最小最大模式控制信号12GND地和VCC电源 2.3.3 8086最小工作方式最小工作方式当8086第33脚MNMX固定接到+5V时,就处于最小工作模式下第24脚第3l脚的信号含义如下:1INTA中断响应信号(输出)ALE地址
12、锁存允许信号 DT/R数据收发信号 5M/IO存贮器输入输出控制信号 6WR写信号 数据传输方式I/O读001I/O写010存贮器读101存贮器写110表2-3 最小模式数据传输方式 7HOLD总线保持请求信号 8HLDA总线保持响应信号 9SS0 状态输出线 性能100中断响应101读IO/M端口110写IO/M端口111暂停000取指001读存贮器010写存贮器011无作用M/IODT/RSS0C L KR E S E TR E A D YM X/M NA L EA1 9 A1 6B H EA D1 5 A D0D E NR/D TIO/MW RR EH O L DH L D AI N T
13、 RIN T A8 8 0 0 8 8 6 6地 址 锁 存 器S T B8 2 8 2(三 片)收 发 器8 2 8 6(二 片)(可 选)O ET地 址 总 线B H E数 据 总 线控 制 总 线8 2 8 4 AR E S E TR E A D Y+5 V图2-7是8088在最小模式下的典型配置 2.3.4 8086最大工作方式最大工作方式当MN/MX加上低电平时,8086CPU工作在最大模式下。此时8086CPU工作于多处理器系统。1QSl和QS0指令队列状态信号 2S2,S1,S0总线周期状态信号 3LOCK总线封锁信号 4RQ/GT1,RQ/GT0 总线请求信号输入总线请求允许信
14、号输出 C L KR E S E TR E A D YM X/M NA1 9 A1 6B H EA D1 5 A D0I N T R8 8 0 0 8 8 6 6地 址 锁 存 器S T B8 2 8 2(三 片)收 发 器8 2 8 6(二 片)TB H E8 2 8 4 AC L KR E S E TR E A D YO E地 址 总 线0S1S2S总 线 控 制 器8 2 8 8O E8 2 5 9 A及 有 关 电 路&IN T A0G T/R Q1G T/R Q中断请求数 据 总 线控 制 总 线图2-8 8086最大工作模式的典型配置 1总线控制器总线控制器8288 命令信号发生器
15、控制信号发生器状态译码器控制电路MRDCMWTCAMWTCIORCAIOWCINTAIOWCDT/RDENALEMCE/PDEN总线命令信号总线控制信号S2S1S0CLKIOBCENAEN状态信号控制输入12345678910111213141516171819208288IOBCLKS1DT/RALEAENMRDCAMWTCMWTCGNDVCCS0S2MCE/PDENDENCENINTAIORCIOWCAIOWC 2总线仲裁控制器总线仲裁控制器8289 多路总线接口局部总线接口控制电路INITBCLKBREQBPRNBPROBUSYCBRQ总线仲裁信号CLKIOBRESBLOCK控制输入状态
16、译码器S2S1S0状态信号仲裁电路ANYRQSTCRQLCKSYSB/RESBAEN1234567891 01 11 21 31 41 51 61 71 81 92 08 2 8 9I O BC L KS1A E NG N DVC CS0S2R E S BB C L KI N I TB R E QB P R OB P R NL O C KC R Q L C KA N Y R Q S TC B R QB U S Y2.3.5 8086系统复为和启动操作系统复为和启动操作 寄存器名称寄存器状态标志寄存器(FR)指令指针寄存器(IP)CS段寄存器DS段寄存器SS段寄存器ES段寄存器指令队列其它寄存器
17、清零0000HFFFFH0000H0000H0000H空0000H表2-9复位时8086/8088个内部寄存器的值由表2-9中看到,在复位的时候,代码段寄存器CS和指令指针寄存器IP分别初始化为FFFFH和0000H。所以,80868088在复位之后再重新启动时,便从内存的FFFF0H处开始执行指令,使系统在启动时,能自动进入系统程序。在复位时,由于标志寄存器被清零,即所有标志位都被清除了,因而,系统程序在启动时,总是要通过指令来设置各有关标志。复位信号 RESET从高电平到低电平的跳变会触发CPU内部的一个复位逻辑电路,经过7个时钟周期之后,CPU就被启动而恢复正常工作,即从FFFF0H处开
18、始执行程序。2.4 存贮器组织存贮器组织 2.4.1由段寄存器、段偏移地址确定物理地址由段寄存器、段偏移地址确定物理地址20位物理地址=段寄存器的内容16+偏移地址 段寄存器的内容段寄存器的内容16(相当于左移(相当于左移4位)变为位)变为20位,再在低位,再在低端端16位加上位加上16位的偏移地址,便可得到位的偏移地址,便可得到20位的物理地址。位的物理地址。这里仅以8086CPU复位后如何形成启动地址为例,说明物理地址的计算方法。复位时CS的内容为FFFFH,IP的内容为0000H。复位后的启动地址由CS段寄存器和IP的内容共同决定,即:启动地址=CS16+IP =FFFF0H+0000H =FFFF0H20位物理地址偏移量段寄存器0000 15 0 15 0 19 02.4.2段寄存器的使用段寄存器的使用 代 码 段堆 栈 段数 据 段I PC SS PS SB XD S访问存贮器类型默认段寄存器可指定段寄存器段内偏移地址位源取指令码CS无IP堆栈操作SS无SP串操作源地址DSCS、ES、SSSI串操作目的地址ES无DIBP用作基址寄存器SSCS、DS、ES寻址方式确定有效地址一般数据存取DSCS、ES、SS寻址方式确定有效地址表2-10 段寄存器使用时的一些基本约定