您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 03_8086微处理器及其系统
微机原理及其应用信息与计算机学院闫勇办公室:经技楼411电话:5786160第3章8086微处理器及其系统3.18086/8088微处理器内部结构(2课时)3.28086/8088的存储器(2课时)3.38086/8088指令系统(实验课)3.48086/8088微处理器外部引脚(2课时)3.58086/8088系统的最小/最大工作方式(2课时)作业本章教学目的、重点、难点目的:掌握8086/8088CPU的内部功能结构、寄存器和外部引脚,理解8086/8088的最小及最大工作方式,掌握存储器的组织与管理,掌握8086/8088的指令系统。重点:寄存器,CPU引脚及其功能、最大与最小工作方式、存储器的组织、指令系统。难点:总线周期、存储器的组织与分段。3.18086/8088微处理器8086是Intel系列的16位微处理器,有16根数据线和20根地址线,可以处理8位或16位数据,寻址1MB的存储单元和64KB的I/O端口。它的主机设计较之8位机的性能大约提高了10倍。在推出8086之后不久,Intel公司还推出了准16位微处理器8088。8088的内部寄存器、运算器以及内部数据总线都是按16位设计的,但外部数据总线只有8根。其设计目的是为了与Intel原有的8位外围接口芯片直接兼容。3.1.18086/8088CPU的内部结构从功能上讲,8086可分为两个部分,即总线接口单元BIU(BusInterfaceUnit)和执行单元EU(ExecutionUnit)。3.1.1.1总线接口单元BIU--具体任务BIU的功能是负责完成CPU与存储器或I/O端口之间的数据传送。具体任务:BIU要从内存取指令送到指令队列;CPU执行指令时,BIU要配合执行单元从指定的内存单元或者外设端口中取数据,将数据传送给执行单元;把执行单元的操作结果传送到指定的内存单元或外设端口中。BIU的结构6字节指令队列缓冲器;20位地址加法器;总线控制电路;16位指令指针IP;4个16位段地址寄存器:CS(代码段寄存器)、DS(数据段寄存器)、SS(堆栈段寄存器)、ES(附加段寄存器)。1.指令队列缓冲器8086的指令队列为6个字节(为何是6?)。(8088的指令队列为4个字节)“先进先出”的原则:(1)取指时,存满1条指令后,送EU执行;(2)只要空出2个(8086)或1个(8088)指令字节时,BIU自动取指直到填满;(3)执指过程中,当指令需要对存储器或I/O设备存取数据时,BIU将在执行完现行取指的存储器周期后的下一个存储器周期,对指定的内存单元或I/O设备进行存取操作。即:取完一个数据,才能取下一个数据。(4)当EU执行完转移、调用和返回指令时,则要清除指令队列缓冲器,并要求BIU从新的地址重新开始取指令。2.地址加法器8086有20根地址线,内部寄存器有16位,采用了16位的段寄存器与16位的偏移地址即“段加偏移”的技术。地址加法器用来实现逻辑地址到物理地址的变换。3.16位指令指针IP其功能与8位CPU中的PC类似。正常运行时,IP中含有BIU要取的下1条指令(字节)的偏移地址。IP在程序运行中能自动加1修正,使之指向要执行的下1条指令(字节)。例外:执行转移、调用、返回指令时,能使IP值改变或使IP值压进堆栈,或由堆栈弹出恢复原值。4.总线控制电路:发总线控制信号,如对存储器的读写控制信号。5.4个16位段寄存器(待叙)3.1.1.2执行单元EU--具体任务EU只负责执行指令。由于EU并不与系统的总线控制电路直接相连,这使得它能与总线接口单元之间保持既相互联系又相互独立的关系:执行的指令从BIU的指令队列缓冲器中取得;执行指令的结果或执行指令所需要的数据,都由EU向BIU发出请求,再由BIU经总线控制电路对存储器或外设存取。EU的结构16位算术逻辑单元(ALU)16位标志寄存器F数据暂存寄存器通用寄存器组EU控制电路1.16位算术逻辑单元(ALU)进行算术、逻辑运算;按指令寻址方式计算寻址单元的16位偏移地址。2.16位标志寄存器F(待叙)反映CPU运算状态或存放控制标志。3.数据暂存寄存器协助ALU完成运算,暂存参加运算的数据。4.通用寄存器组(待叙)数据寄存器(AX,BX,CX,DX)地址指针寄存器(SP,BP)变址寄存器(SI,DI)5.EU控制电路是控制、定时与状态逻辑电路,接收从BIU中指令队列取来的指令,经过指令译码形成各种定时控制信号,对EU的各个部件实现特定的定时操作。小结-总线数目1.8086内部总线除队列总线是8位、地址总线是20位,其余均为16位。2.8088与8086内部结构方面的差别:8088BIU中指令队列长度为4个字节,8086BIU中指令队列长度为6个字节;8088BIU通过总线控制电路与外部交换数据的总线宽度是8位,8086BIU通过总线控制电路与外部交换数据的总线宽度是16位。小结-8086为什么要分成BIU和EU?等待取指1执行1等待取指2执行2等待取指3执行3CPU总线取指1,忙闲取指2,忙闲取指3,忙闲传统微处理器的指令执行过程取指1取指2取指3取指4取指5取指6EU总线执行1执行2执行3执行4执行5执行6忙忙忙忙忙忙BIU8086CPU的指令执行过程小结-8086内部BIU和EU结构的优点BIU与EU之间既相互配合又彼此独立,使得两者的操作可以非同步的进行,即:可以在EU执行前一条指令的同时,BIU并行的取下一条指令。这样,在8086CPU中,EU单元可以不停的执行事先已经取到指令队列中的指令。提高了CPU执行指令的效率,体现了“流水线计算机”(PipeLineComputer)的初步特点;只有当遇到转移、调用、返回指令时,或当某一条指令执行过程中需要频繁访问内存以至于BIU没有空闲从内存将指令取到指令队列时,才需要EU等待BIU提取指令。3.1.28086/8088的寄存器结构共有14个16位寄存器,其中标志寄存器只用了16位中的9位;AX、BX、CX、DX可分别对高低字节单独访问,其余全部按字访问。AX累加器AHALBHBLCLDHDLCHSPSIDIIPFLAGSCSDSSSESBPBX基址寄存器CX计数寄存器DX数据寄存器堆栈指针寄存器基址指针寄存器源变址寄存器目的变址寄存器指令指针寄存器标志寄存器代码段寄存器段寄存器附加段寄存器堆栈段寄存器数据寄存器地址指针和变址寄存器控制寄存器通用寄存器数据段寄存器8086CPU内部寄存器结构3.1.2.1通用寄存器1.数据寄存器常用来存放参与运算的操作数或运算结果。可以以字或字节的形式访问。AX:累加器。多用于存放中间运算结果。乘法指令、除法指令,所有I/O指令必须都通过AX与接口传送信息。BX:基址寄存器。在间接寻址中用于存放基地址,可用于查表转化指令。CX:计数寄存器。用于在循环或串操作指令中存放循环次数或重复次数。DX:数据寄存器。在32位(双字)乘除法运算时,存放高16位数;在间接寻址的I/O指令中存放I/O端口地址。2.地址指针寄存器(SP,BP)变址寄存器(SI,DI)SP:堆栈指针寄存器,其内容为堆栈栈顶的偏移地址,用于出栈和入栈指令;BP:堆栈基址指针寄存器,其内容是堆栈段中的某一数据区基地址的偏移地址,用于间接寻址中作为基址指针。**SP、BP是不同用途的两个有关堆栈的寄存器。SI:源变址寄存器,存放源操作数的偏移地址;DI:目标变址寄存器,存放目的操作数的偏移地址;**SI、DI常与DS一起使用,存放DS段中操作数的偏移地址。特别是在串操作指令中,分别存放源操作数和目标操作数的偏移地址。通用寄存器小节通用寄存器主要用于暂存CPU执行程序的常用数据或地址,以便减少CPU在运行程序过程中通过外部总线访问存储器或I/O设备来获得操作数的次数,从而可加快CPU的运行速度。因此,可以把它们看成是设置在CPU工作现场的一个小型、快速的存储器。3.1.2.2控制寄存器1.标志寄存器8086/8088的16位标志寄存器F只用了其中的9位作标志位,即6个状态标志位,3个控制标志位。6个状态标志位:CF(CarryFlag)进位标志执行加、减法使最高位产生进位或借位时,CF=1;否则为0。也受带进位循环指令的影响。PF(ParityFlag)奇偶性标志当指令执行结果低8位中含有偶数个1时,PF=1;否则PF=0。曾用于数据传输出错检验。AF(AuxiliaryCarryFlag)辅助进位标志执行加减法时若结果的低字节的低4位向高4位有进位或借位,则AF=1;否则为0。常用在BCD码运算中作为是否需要对AL进行十进制调整的依据。ZF(ZeroFlag)零标志表示算术或逻辑操作的结果是否为零。若为零,ZF为1;否则为0。SF(SignFlag)符号标志存放算术或逻辑运算指令执行后结果的算术符号,与结果的最高位相同。若数据(结果)用补码表示,则负数为1,正数为0。OF(OverflowFlag)溢出标志溢出标志用于判断有符号数进行加法或减法时是否出现溢出,OF=1表示有溢出。无符号数的运算不会影响OF。3个控制标志位:DF(DirectionFlag)方向标志用来控制数据串操作指令的步进方向。STD指令可将DF置1,则数据串操作中地址(SI、DI)会自动递减;CLD使其清零,地址递增。IF(InterruptEnableFlag)中断允许标志若用指令STI将IF置1,表示允许CPU接受外部从其INTR引脚上发来的可屏蔽中断请求信号;反之CLI将其清零则不允许。IF的状态不影响非屏蔽中断(NMI)请求,也不影响CPU响应内部的中断请求。TF(TrapFlag)跟踪(陷阱)标志用于调试程序。若将TF标志置为1,则CPU处于单步工作方式;若清零则正常运行。无专用指令用于TF的清零与置1。2.指令指针寄存器IP-复习其功能与8位CPU中的PC类似。正常运行时,IP中含有BIU要取的下1条指令(字节)的偏移地址。IP在程序运行中能自动加1修正,使之指向要执行的下1条指令(字节)。例外:执行转移、调用、返回指令时,能使IP值改变或使IP值压进堆栈,或由堆栈弹出恢复原值。3.1.2.3段寄存器8086/8088CPU的BIU中有4个16位段寄存器(CS、DS、SS、ES),8086/8088的指令可以直接访问这4个段寄存器.CS-程序当前使用的代码段的段地址;DS-。。。。。。。数据段。。。。;SS-。。。。。。。堆栈段。。。。;ES-。。。。。。。附加段。。。。,也可以存放处理后的数据。例:设CS存放当前代码段段地址,IP存放下一条将要执行指令的段内偏移地址,其中CS=2000H,IP=003AH。则存放该指令的内存单元的物理地址为:CS×10H+IP=2000H×10H+003AH=2003AH3.28086/8088的存储器3.2.1存储器组织存储器仍按字节组织,每个字节只有惟一的一个地址。1.数据的存放若存放的信息是8位的字节,将按顺序存放;若存放的数为1个字时,则将字的低位字节放在低地址中;当存放的是双字形式(这种数一般作为指针),其低位字是被寻址地址的偏移量;高位字是被寻址地址所在的段地址。例:设双字数据1A2B3C4DH存于首址为A0000H的数据区中,则该数据区中地址为A0001H和A0002H的单元存放的字节依次为和。注意:字的存放规则字:低位字节从偶数地址开始存放。非规则字:低位字节从奇数地址开始存放。3CH2BH2.信息的读取同一时间内,CPU从存储器读取的信息总是16位的,且总是在存储器中以偶地址开头的两个字节的内容。注意:规则字的读取需要1个总线周期;非规则字的读取需要2个总线周期。8086系统的存储体8086的1MB存储空间分为两个512KB的存储体,称高位库(奇数库)和低位库(偶数库),两个存储体采用字节交叉编址方式。BHEA0读/写BHEA0读/写00同时读/写高低两个字节01只读/写地址为奇数的高位10只读
本文标题:03_8086微处理器及其系统
链接地址:https://www.777doc.com/doc-3050039 .html