《微型计算机原理及接口技术第2章8086系统结构课件.ppt》由会员分享,可在线阅读,更多相关《微型计算机原理及接口技术第2章8086系统结构课件.ppt(55页珍藏版)》请在三一办公上搜索。
1、第2章 8086系统结构,概述8086CPU结构8086存储器组织8086系统配置,概述,网上评价:1978年,8086处理器诞生了。这个处理器标志着x86王朝的开始,从8086开始,才有了目前应用最广泛的PC行业基础。虽然从1971年,英特尔制造4004至今,已经有32年历史;但是从没有像8086这样影响深远的神来之作。微处理器的主要功能微处理器结构受到的限制16位微处理器的结构特点8086CPU概况,微处理器的主要功能,进行算术运算和逻辑运算同存储器和I/O接口交流信息少量暂存数据寄存指令、指令译码、执行指令提供整个系统所需的定时和控制信号可响应I/O设备的中断请求,微处理器的主要功能(软
2、件角度),赋值运算算术表达式、关系表达式和逻辑表达式无条件转移、条件转移、循环数组和其他数据结构子程序输入和输出,微处理器结构受到的限制,由于工艺技术和成本的限制,微处理器的结构受到以下几个方面的限制:引脚数限制芯片面积限制器件速度限制,8086 CPU概况,引脚数目:40芯片封装类型:双列直插式数据总线数目:16地址总线数目:20直接寻址的空间:220=1MB主频:5MHz,8086 CPU内部结构,8086 CPU结构框图总线接口部件(BIU)指令执行部件(EU),8086 CPU结构框图,BIU,EU,总线接口部件,BIU功能BIU结构BIU工作过程,BIU功能,BIU是8086 CPU
3、与外部(存储器和I/O接口)的接口,提供16位数据总线和20位地址总线,完成所有外部总线操作形成20位物理地址取指令、指令排队读/写操作数总线控制,BIU结构,16位段寄存器(4个)CS:代码段寄存器DS:数据段寄存器ES:附加段寄存器SS:堆栈段寄存器16位指令指针寄存器IP:存放下一条将要执行指令的偏移地址20位物理地址加法器:将16位逻辑地址转换为存储器的20位物理地址6字节指令队列:预存6字节的指令代码总线控制部件:发出总线控制信号,BIU工作过程,取指令指令排队,等待EU取指令从存储器或I/O端口读写操作数向存储器或I/O端口输出EU的运算结果修改指令指针IP,指向下一条指令的偏移地
4、址。当EU执行转移、调用或返回指令时,则BIU清除指令队列,从转移指令的新地址取得指令,并立即送给EU执行,然后从后续的指令序列中取指令填满队列,指令执行部件,EU功能EU结构EU工作过程,EU功能,指令解码(Decode Instruction)执行指令(Execute Instrunction),EU结构,算术逻辑单元ALU:完成8位或16位二进制运算,16位暂存器暂时存放操作数标志寄存器:存放ALU运算结果特征寄存器组:4个通用的16位寄存器AX、BX、CX、DX;4个指针和变址寄存器BP、SP、SI、DIEU控制器:取指令控制和时序控制部件,EU工作过程,EU从BIU的指令队列的输出端
5、取指令进行指令译码若执行指令需要从存储器或I/O端口去取操作数,则EU将操作数的偏移地址通过内部的16位数据总线送给BIU,与段基地址一起,在BIU的地址加法器中形成20位物理地址,申请访问存储器或I/O端口,取得操作数送给EUEU根据指令要求向EU内部各部件发出控制命令,完成执行指令的功能。,8086 CPU寄存器结构(重点),通用寄存器指针和变址寄存器段寄存器指令指针寄存器标志寄存器PSW,通用寄存器,指针和变址寄存器,段寄存器,指令指针寄存器,在内存中,指令和数据没有任何区别,都是二进制信息,CPU在工作的时候把有的信息看作指令,有的信息看作数据。那么,CPU根据什么将内存中的信息看作指
6、令?CPU将CS:IP指向的内存单元中的内容看作指令,因为,在任何时候,CPU将CS、IP中的内容当作指令的段地址和偏移地址,用它们合成指令的物理地址,到内存中读取指令码,执行。如果说,内存中的一段信息曾被CPU执行过的话,那么,它所在的内存单元必然被CS:IP指向过。,标志寄存器PSW,PSW格式:,条件标志,条件标志用来记录程序中运行结果的状态信息,它们根据有关指令的运行结果由CPU自动设置,这些状态信息往往作为后续条件转移指令的转移控制条件,包括6位:OF:溢出标志,在运算过程中,如操作数超出了机器数的表示范围,称为溢出,OF=1,否则OF=0SF:符号标志,记录结果的符号,结果为负SF
7、=1,否则SF=0ZF:零标志,运算结果为0,ZF=1,否则ZF=0CF:进位标志,进行加法运算时从最高位产生进位,或减法运算从最高位产生借位CF=1,否则CF=0AF:辅助进位标志:本次运算结果,低4位向高4位产生进位或借位,AF=1,否则AF=0PF:奇偶标志,用来为机器中传送信息时可能产生的代码出错情况提供检验条件,当结果操作数中低8位1的个数为偶数时PF=1,否则PF=0,控制标志,DF:方向标志,用在串处理指令中控制处理信息的方向。当DF=1时,每次操作后,SI和DI减小,使串处理从高地址向低地址进行,用指令STD设置当DF=0时,每次操作后,SI和DI增大,使串处理从低地址向高地址
8、进行,用指令CLD设置,系统标志,系统标志用于可屏蔽中断、程序调试等的控制。TF:陷阱标志(单步标志),调试程序时,可设置单步工作方式,TF=1时,CPU每执行完一条指令,就自动产生一次内部中断,使用户能跟踪程序进行调试IF:中断标志,IF=1时,CPU响应可屏蔽中断;IF=0时,即使外部设备有中断申请,CPU也不响应。STI指令使IF=1,CLI指令使IF=0,使用寄存器时注意,以上介绍的寄存器均为16位寄存器通用寄存器AX、BX、CX、DX都可以拆分为两个8位寄存器:AH和AL、BH和BL、CH和CL、DH和DL,“H”表示高位字节,“L”表示低位字节其他的寄存器不能拆分,BX寄存器如果作
9、为指针使用,也不能拆分指令指针寄存器IP、标志寄存器PSW和堆栈指针SP的内容只能由系统更改,用户不能更改代码段寄存器CS和指令指针寄存器IP配对使用;堆栈段寄存器SS和堆栈指针寄存器SP配对使用用户只能用4个寄存器存放存储单元的偏移地址:SI、DI、BX和BPBP寄存器在默认的情况下用于访问堆栈段,8088 CPU简介,8088 CPU是8086 CPU的姊妹版8088 CPU的内部数据总线宽度是16位,外部数据总线宽度是8位,所以8088 CPU称为准16位微处理器。8088 CPU的外部地址总线的宽度为20位。,8088CPU与8086CPU的区别,8088的指令队列长度是4个字节,队列
10、中只要出现一个空闲字节,BIU就会自动访问存储器,取指令来补充队列。8088CPU中,BIU的总线控制电路与外部交换数据的总线宽度,总线控制电路与专用寄存器之间的数据总线宽度都是8位,而EU的内部总线是16位,这样对16位数的读/写操作要两个读/写周期才能完成。8088外部数据总线只有8条,所以分时复用的地址/数据总线为AD7AD08088中,用IO/M信号代替M/IO信号8088中,只能进行8位数据传输,无BHE信号,8086存储器组织(重点),8086存储器地址的分段8086存储器的分体结构堆栈,8086存储器地址的分段,在存储器中是以字节为单位存储信息的,每个存储单元由唯一的地址来确定。
11、8086系统有20根地址线可寻址1MB字节的存储空间,即对存储器寻址要20位物理地址,而8086为16位机,CPU内部寄存器只有16位,即只能存储16位地址。因此8086系统把整个存储空间分成许多逻辑段,每段容量不超过64KB(即65536字节)。段和段之间可以是连续的,也可以是分开的或重叠的。任何一个单元的实际地址,都是由段基地址和段内偏移地址两部分组成。,存储器地址分段示意图,分段的策略:把整个1M的地址空间分为65536X16的矩阵,每一行16字节为一小段(paragraph)。如下所示:00000 00001 0000F00010 00010 0001F12340 12341 1234
12、FFFFF0 FFFF1 FFFFF最左边的一列就可以作为段的起始地址,而段寄存器是16位的,无法存放20位的地址,所以在存放时,只考虑最高16位,最低的4位均为0,不存放。,物理地址的形成,段基地址:存放在段寄存器(CS DS ES SS)中的地址,表示段的起始。偏移地址:相对于段的起始地址的偏移量,可以用BX BP SI DI SP IP 存放。逻辑地址:存储器的逻辑地址由段基地址和偏移地址组成,程序设计时采用逻辑地址。物理地址:存储器的绝对地址,范围为00000HFFFFFH,是CPU访问存储器的实际寻址地址,按下式进行计算:,举例,已知DS=10E4H, ES=10F4H, SS=21
13、F0H, CS=31FFH, 画出此时存储器地址分段图段寄存器DS装入数据12ABH,写出段的起始地址和结束地址。CS:IP的组合为34ABH:1230H,写出要执行指令的存储器物理地址。SS:SP的组合为2900H:4A00H,写出堆栈栈顶的物理地址。已知DS=101AH,BX=3200H,写出数据段中该存储单元的物理地址。,逻辑地址的来源,问题,16位机内存管理为什么采用分段管理?有什么意义?程序的重定位、浮动地址的编码和提高内存的利用率和代码的重用率等物理地址的含义,存储单元的物理地址是唯一的吗?逻辑地址的构成,存储单元的逻辑地址是唯一的吗?如何由逻辑地址得到物理地址?,8086存储器的
14、分体结构,8086系统中,1MB的存储空间分成两个存储体:偶地址存储体和奇地址存储体,各为512KB。8086系统存储器与总线的连接奇偶存储体的访问奇地址单元字的读/写,8086系统存储器与总线的连接,奇偶存储体的访问,当A0=0时,选择访问偶地址存储体,偶地址存储体与数据总线的低8位相连,从低8位数据总线读/写一个字节当BHE=0时,选择访问奇地址存储体,奇地址存储体与数据总线的高8位相连,从高8位数据总线读/写一个字节。当A0=0 BHE=0时,访问两个存储体,读/写一个字。,8086系统字节、字的读/写,奇地址单元字的读写,34,56,78,9A,BC,12,从10002单元开始读取一个
15、字5634H,然后舍弃低位字节34H,剩下的高位字节56H作为要读取字的低位字节,从10004单元开始读取一个字9A78H,然后舍弃高位字节9AH,剩下的低位字节78H作为要读取字的高位字节,78,56,要求从10003H单元读取一个字,堆栈,堆栈的概念堆栈示意图堆栈的操作,堆栈的概念,堆栈是在存储器中开辟一个半封闭的区域,用来存放需要暂时保存的数据,并以“后进先出”的方式进行操作。堆栈段可以在存储器1MB空间内任意浮动,堆栈的容量不超过64KB。段基址由堆栈段寄存器SS指定,栈顶由堆栈指针SP指定。堆栈栈底设在存储器的高地址。,堆栈示意图,栈底:标示堆栈的结束,当前栈顶的位置,存放在SP中,
16、地址增长的方向,杯底,当前液面位置,杯口,堆栈的开始,起始地址存放在SS中,堆栈的操作,入栈:用PUSH指令实现把一个字压入堆栈,修改堆栈指针SP,使SP减小。相当于往杯里注水,使液面上升出栈:用POP指令实现从栈顶处弹出一个字,同时修改堆栈指针SP,使SP增大。相当于从杯里倒水使液面下降,举例,假如当前SS=C000H,SP=1000H,开始堆栈中没有存放任何数,画出此时的堆栈。若AX=3322H,BX=1100H,CX=6655H,执行指令PUSH AX,PUSH BX,画出此时的堆栈,再执行指令POP CX,画出此时的堆栈。三条指令执行完后AX、BX、CX 中的内容分别是什么?,使用堆栈
17、时的注意事项,堆栈的操作必须以字为单位先进入的内容要后弹出PUSH和POP指令必须成对出现,8086 CPU时序,CPU操作是在时钟脉冲CLK的统一控制下进行的,8086的时钟频率为5MHz,时钟周期为或T状态为200ns.几个“周期”的概念系统的复位和启动最小模式下的总线操作,几个“周期”的概念,指令周期(Instruction Cycle):执行一条指令所需的时间称为指令周期。不同指令的指令周期的长短是不同的,一个指令周期由几个总线周期组成。总线周期(Bus Cycle):CPU完成一次访问存储器或I/O端口操作所需要的时间,称为一个总线周期。一个总线周期由几个T状态组成。8086 CPU
18、每个总线周期至少包含4个时钟周期(T1T4),在总线周期的T1状态传送地址,T2T4状态传送数据。有时还要在T3和T4状态中间插入若干个等待状态TW以同步慢速外设。时钟周期(Clock Cycle):CPU的时钟频率的倒数,也称T状态。,系统的复位和启动,复位:当RESET信号变成高电平时,CPU结束现行操作,各个内部寄存器复位成初始值。RESET信号至少维持4个时钟周期的高电平。重启:复位后,代码段寄存器CS为FFFFH,指令指针IP为0,所以8086在复位之后重启时,从内存的FFFF0H处存放了一条无条件转移指令,转移到系统的引导程序的入口处(0200H),这样系统启动后就自动进入系统程序
19、。,复位时各内部寄存器的值,80386DX简介,上市时间:1985年时钟频率:33MHz字长:32位寻址空间:4GB工作模式:实模式(8086模式)、保护模式、虚拟86模式(同时模拟多个8086处理器,以实现多任务功能)浮点数运算:与协处理器80387配合使用,80486简介,上市时间:1989主频:100MHz字长:32位寻址空间:4GB,虚拟存储空间达64TB浮点数运算:集成在芯片内部整数运算:精简指令集RISC结构缓存:内嵌8KB L1 Cache和外置L2 Cache,Pentium处理器,上市时间:1993年主频:1GHz字长:芯片内部ALU和通用寄存器是32位,外部数据总线是64位MMX技术:具有强大的整数运算、浮点运算和多媒体信息处理等功能,实现三维图形、图像和多媒体方面的可视化计算和交互功能,本章知识点(1),8086 CPU的内部结构(重点 熟练掌握)总线接口部件:功能、组成、工作过程执行部件:功能、组成、工作过程8086 CPU的寄存器结构(重点 熟练掌握)8088与8086的不同点(了解),本章知识点(2),8086存储器组织(重点 熟练掌握)存储器地址的分段物理地址的形成逻辑地址8086存储器的分体结构堆栈几个“周期”的概念:指令周期、总线周期和时钟周期(掌握)系统的复位和启动(掌握),