《微机原理与结构II》PPT课件.ppt

上传人:tia****nde 文档编号:11507818 上传时间:2020-04-26 格式:PPT 页数:41 大小:572.50KB
返回 下载 相关 举报
《微机原理与结构II》PPT课件.ppt_第1页
第1页 / 共41页
《微机原理与结构II》PPT课件.ppt_第2页
第2页 / 共41页
《微机原理与结构II》PPT课件.ppt_第3页
第3页 / 共41页
点击查看更多>>
资源描述
三、8086/8088微处理器的结构,1.概述(1)性能的提高(2)采用的方法2.8086/8088内部结构(1)执行单元(2)总线接口单元3.分段访问内存,1.概述(1)性能的提高a.提高主频EvolutionofIntelsMicroprocessors,b.改变体系结构(1)并行,(2)扩大寄存器的位数、增加寄存器的数量,(2)采用的方法将8086/8088微处理器分为两部分执行单元(EUExecutionUnit)总线接口单元(BIUBusInterfaceUnit)2.8086/8088内部结构执行单元(ExecutionUnit)总线接口单元(BusInterfaceUnit),执行单元(ExecutionUnit):负责执行从BIU的指令队列中得到的指令。(1)16位算术逻辑运算单元ALU(2)16位标志寄存器Flags,抄到黑板上备查.,Example1:Showhowtheflagregisterisaffectedbytheadditionof38Hand2FH.Solution:MOVBH,38HADDBH,2FH3800111000+2F001011116701100111CF=0PF=0AF=1ZF=0SF=0JustDoit!,Example2:ShowhowtheflagregisterisaffectedbyMOVAL,9CHMOVDH,64HADDAL,DHSolution:9C10011100+64011001000000000000CF=1PF=1AF=1ZF=1SF=0JustDoit!,Example3:ShowhowtheflagregisterisaffectedbyMOVAX,34F5HADDAX,95EBHSolution:34F50011010011110101+95EB1001010111101011CAE01100101011100000CF=0PF=0AF=1ZF=0SF=1,Example4:ShowhowtheflagregisterisaffectedbyMOVBX,AAAAHADDBX,5556HSolution:AAAA1010101010101010+5556010101010101011000000000000000000000CF=1PF=1AF=1ZF=1SF=0DoEx14atDebug,(3)通用寄存器组,通用寄存器组:通用寄存器包括4个数据寄存器、两个地址指针寄存器和两个变址寄存器。1)数据寄存器AX、BX、CX、DX数据寄存器一般用于存放参与运算的操作数或运算结果。每个数据寄存器都是16位的,但又可将高、低8位分别作为两个独立的8位寄存器来用。上述4个寄存器除了用来存放数据,它们各自都有自己的特定用途:,AX(Accumulator)累加器:用该寄存器存放运算结果可使指令简化,提高指令的执行速度。此外,所有的I/O指令都使用该寄存器与外设端口交换信息。BX(Base)基址寄存器:8086/8088CPU中有两基址寄存器BX和BP。BX用来存放操作数在内存中数据段内的偏移地址,BP用来存放操作数在堆栈段内的偏移地址。CX(Counter)计数器:在设计循环程序时使用该寄存器存放循环次数,可使指令简化,有利于提高程序的运行速度。DX(Data)数据寄存器:在寄存器间接寻址的I/O指令中存放I/O端口地址。,2)地址指针寄存器SP、BPSP(StackPointer)堆栈指针寄存器:在使用堆栈操作指令PUSH或POP对堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,以使其始终指向栈顶。BP(BasePointer)基址寄存器:作为通用寄存器,它可以用来存放数据,但更经常更重要的用途是存放操作数在堆栈段内的偏移地址。3)变址寄存器SI、DISI(SourceIndex)源变址寄存器:SI存放源串在数据段内的偏移地址。DI(DestinationIndex)目的变址寄存器:DI存放目的串在附加数据段内的偏移地址。,总线接口单元(BusInterfaceUnit):负责完成CPU与存储器或I/O设备之间的数据传送。(送出地址、从存储器取指令、从存储器或端口读数据以及向端口或存储器写数据)(1)指令队列寄存器(2)段寄存器(CS,DS,SS,ES)(3)指令指针寄存器(IP)(4)20位地址加法器(5)逻辑地址(6)物理地址,(2)段寄存器8086/8088的4个段寄存器分别为:CS(CodeSegment)代码段寄存器:用来存储程序当前使用的代码段的段地址。CS的内容左移4位再加上指令指针寄存器IP的内容就是下一条要读取的指令在存储器中的物理地址。DS(DataSegment)数据段寄存器:用来存放程序当前使用的数据段的段地址。DS的内容左移4位再加上按指令中存储器寻址方式给出的偏移地址即得到对数据段指定单元进行读写的物理地址。,SS(StackSegment)堆栈段寄存器:用来存放程序当前所使用的堆栈段的段地址。堆栈是存储器中开辟的按“先进后出”原则组织的一个特殊存储区,主要用于调用子程序或执行中断服务程序时保护断点和现场。ES(ExtraSegment)附加数据段寄存器:用来存放程序当前所使用的附加数据段的段地址。附加数据段用来存放字符串操作时的目的字符串。(3)控制寄存器IP(InstructionPointer)指令指针寄存器:用来存放下一条要读取的指令在代码段内的偏移地址。用户程序不能直接访问IP。,分段访问内存模型(示意图),;FULLSEGMENTDEFINITION完整程序框架(熟练掌握);-stacksegment-STACKSEGMENTDB64DUP(?)STACKENDS;-datasegment-DATASEGMENT;datadefinitionsareplacedhereDATAENDS;-codesegment-CODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKstart:MOVAX,DATAMOVDS,AX-MOVAH,4CHINT21HCODEENDSENDstart,3.分段访问内存的思想(1)段:偏置的方法只要求一个16位的数来表示一个段的基地址,同时也只要求一个用来访问段内任一单元的16位的偏置。这意味着8086只处理和存储16位的值,而不是20位的值。这使得在8086中8位或16位存储器与16位的寄存器的接口变得容易实现了。(2)存储器分段易于保持用户程序和数据的彼此分离,并且易于从一个用户程序切换到另一个用户程序。(3)与8085完全兼容。,四、8086/8088存储器和I/O的组织,8086/8088存储器的组织:1、8086/8088存储空间2、存储器的段结构3、逻辑地址于物理地址4、堆栈操作5、8086/8088存储器结构8086/8088的I/O组织,1、8086/8088存储空间,8086/8088有20条地址线,可直接对1M个存储单元进行访问。每个存储单元存放一个字节型数据,且每个存储单元都有一个20位的地址,这1M个存储单元对应的地址为00000HFFFFFH。一个存储单元中存放的信息称为该存储单元的内容。00001H单元的内容为9FH,记为:(00001H)=9FH。,2、存储器的段结构,8086/8088CPU中有关可用来存放地址的寄存器如IP、SP等都是16位的,故只能直接寻址64KB。为了对1M个存储单元进行管理,8086/8088采用了段结构的存储器管理方法。8086/8088将整个存储器分为许多逻辑段,每个逻辑段的容量小于或等于64KB,允许它们在整个存储空间中浮动,各个逻辑段之间可以紧密相连,也可以互相重叠。用户编写的程序(包括指令代码和数据)被分别存储在代码段、数据段、堆栈段和附加数据段中,这些段的段地址分别存储在段寄存器CS、DS、SS和ES中,而指令或数据在段内偏移地址可由对应的地址寄存器或立即数给出。,如果从存储器中读取指令,则段地址来源于代码段寄存器CS,偏移地址来源于指令指针寄存器IP。如果从存储器读/写操作数,则段地址通常由数据段寄存器DS提供(必要时可通过指令前缀实现段超越,将段地址指定为由CS、ES或SS提供),偏移地址则要根据指令中所给出的寻址方式确定,这时,偏移地址通常由寄存器BX、SI、DI以及立即数等提供,这类偏移地址也被称为“有效地址”(EA)。如果操作数是通过基址寄存器BP寻址的,则此时操作数所在段的段地址由堆栈段段寄存器SS提供(必要时也可指定为CS、SS或ES)。,如果使用堆栈操作指令(PUSH或POP)进行进栈或出栈操作,以保护断点或现场,则段地址来源于堆栈段寄存器SS,偏移地址来源于堆栈指针寄存器SP。如果执行的是字符串操作指令,则源字符串所在段的段地址由数据段寄存器DS提供(必要时可指定为CS、ES或SS),偏移地址由源变址寄存器SI提供;目的字符串所在段的段地址由附加数据段寄存器ES提供,偏移地址由目的变址寄存器DI提供。以上这些存储器操作时段地址和偏移地址的约定是由系统设计时事先已规定好的,编写程序时必须遵守这些约定。,缺省段和偏置:,3、逻辑地址与物理地址逻辑地址:在CPU内部对RAM或I/O地址的表示方式。(段基址:偏置)偏置:表示所需代码或数据到段基地址的位移量。其范围从0000H0FFFFH。物理地址:由CPU的20位引脚输出的实际对RAM或I/O地址的表示方式。其范围从00000H0FFFFFH。例如,代码段:要执行的下一条指令的地址在CPU内部的表示为(CS:IP)。,假设CS=24F6H,IP=634AH,则:逻辑地址为24F6:634A偏置为634A物理地址为PA=24F6*10H+634A=24F60+634A=2B2AA数据段:指令要操作的数据的地址在CPU内部的表示方式为(DS:offset)假设DS=7FA2H,offset=438EH,则:逻辑地址为7FA2:438E偏置(offset)为438E物理地址为PA=7FA2*10H+438E=7FA20+438E=83DAE,堆栈段:假设SS=3500H,SP=0FFFEH,则:逻辑地址为SS:SP即3500:0FFFE偏置为0FFFEH物理地址为SS*10H+SP即PA=3500H*10H+0FFFEH=35000H+0FFFEH=44FFEH缺省段和偏置:,Program:addxy用本节课所学理论解释此程序的执行过程,datasegmentxdw16hydw20hzdw?dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,ax,movax,xmovdx,yaddax,dxmovz,axmovah,4chint21hcodeendsendstart,4、堆栈操作堆栈段:CPU用来临时存储信息的RAM区域。其特点是先进后出。假设:SP=1236,AX=24B6,DI=85C2,DX=5F93执行指令PUSHAXPUSHDIPUSHDX.POPDXPOPDIPOPAX,堆栈操作程序演示,.asm,5、8086/8088存储器结构,8086的1MB存储空间实际上分为两个512KB的存储体,又称存储库,分别叫高位库和低位库,如图所示。低位库与数据总线D7D0相连,该库中每个存储单元的地址为偶数地址;高位库与数据总线D15D8相连,该库中每个存储单元的地址为奇数地址。地址总线A19A1可同时对高、低位库的存储单元寻址,A0和BHE用于对库的选择,分别连接到库选择端SEL上。当A0=0时,选择偶数地址的低位库;当BHE=0时,选择奇数地址的高位库;当两者均为0时,则同时选中高低位库。利用A0和BHE这两个控制信号,既可实现对两个库进行读/写(即16位数据),也可单独对其中一个库进行读/写(8位数据)。,6、8086/8088的I/O组织与访问,1、IBMPC可用的端口资源有000-3FFH(分析对应的端口地址线有多少根?)。2、对端口的访问与对内存访问对比分析.3、举一个实际应用中最简单端口访问的例子.(见ch7ppt,page30)电路,功能,编程-三位一体.(理解体会),
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!