微机原理与结构II.ppt

上传人:小飞机 文档编号:6284462 上传时间:2023-10-13 格式:PPT 页数:41 大小:517KB
返回 下载 相关 举报
微机原理与结构II.ppt_第1页
第1页 / 共41页
微机原理与结构II.ppt_第2页
第2页 / 共41页
微机原理与结构II.ppt_第3页
第3页 / 共41页
微机原理与结构II.ppt_第4页
第4页 / 共41页
微机原理与结构II.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《微机原理与结构II.ppt》由会员分享,可在线阅读,更多相关《微机原理与结构II.ppt(41页珍藏版)》请在三一办公上搜索。

1、三、8086/8088微处理器的结构,1.概述(1)性能的提高(2)采用的方法2.8086/8088内部结构(1)执行单元(2)总线接口单元3.分段访问内存,1.概述(1)性能的提高 a.提高主频Evolution of Intels Microprocessors,b.改变体系结构(1)并行,(2)扩大寄存器的位数、增加寄存器的数量,(2)采用的方法 将8086/8088微处理器分为两部分执行单元(EUExecution Unit)总线接口单元(BIUBus Interface Unit)2.8086/8088内部结构 执行单元(Execution Unit)总线接口单元(Bus Inter

2、face Unit),执行单元(Execution Unit):负责执行从BIU的指令队列中得到的指令。(1)16位算术逻辑运算单元ALU(2)16位标志寄存器Flags,抄到黑板上备查.,Example1:Show how the flag register is affected by the addition of 38H and 2FH.Solution:MOVBH,38H ADDBH,2FH38 0011 1000+2F 0010 111167 0110 0111CF=0PF=0AF=1ZF=0SF=0 Just Do it!,Example2:Show how the flag r

3、egister is affected byMOVAL,9CHMOVDH,64HADDAL,DHSolution:9C1001 1100+640110 0100000000 0000CF=1PF=1AF=1ZF=1SF=0Just Do it!,Example3:Show how the flag register is affected byMOVAX,34F5HADDAX,95EBHSolution:34F50011 0100 1111 0101+95EB1001 0101 1110 1011CAE01100 1010 1110 0000CF=0PF=0AF=1ZF=0SF=1,Examp

4、le4:Show how the flag register is affected byMOVBX,AAAAHADDBX,5556HSolution:AAAA1010 1010 1010 1010+55560101 0101 0101 011000000000 0000 0000 0000CF=1PF=1AF=1ZF=1SF=0 Do Ex14 at Debug,(3)通用寄存器组,通用寄存器组:通用寄存器包括4个数据寄存器、两个地址指针寄存器和两个变址寄存器。1)数据寄存器AX、BX、CX、DX 数据寄存器一般用于存放参与运算的操作数或运算结果。每个数据寄存器都是16位的,但又可将高、低8

5、位分别作为两个独立的8位寄存器来用。上述4个寄存器除了用来存放数据,它们各自都有自己的特定用途:,AX(Accumulator)累加器:用该寄存器存放运算结果可使指令简化,提高指令的执行速度。此外,所有的I/O指令都使用该寄存器与外设端口交换信息。BX(Base)基址寄存器:8086/8088CPU中有两基址寄存器BX和BP。BX用来存放操作数在内存中数据段内的偏移地址,BP用来存放操作数在堆栈段内的偏移地址。CX(Counter)计数器:在设计循环程序时使用该寄存器存放循环次数,可使指令简化,有利于提高程序的运行速度。DX(Data)数据寄存器:在寄存器间接寻址的I/O指令中存放I/O端口地

6、址。,2)地址指针寄存器SP、BP SP(Stack Pointer)堆栈指针寄存器:在使用堆栈操作指令PUSH或POP对堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,以使其始终指向栈顶。BP(Base Pointer)基址寄存器:作为通用寄存器,它可以用来存放数据,但更经常更重要的用途是存放操作数在堆栈段内的偏移地址。3)变址寄存器SI、DI SI(Source Index)源变址寄存器:SI存放源串在数据段内的偏移地址。DI(Destination Index)目的变址寄存器:DI存放目的串在附加数据段内的偏移地址。,总线接口单元(Bus Interface

7、Unit):负责完成CPU与存储器或I/O设备之间的数据传送。(送出地址、从存储器取指令、从存储器或端口读数据以及向端口或存储器写数据)(1)指令队列寄存器(2)段寄存器(CS,DS,SS,ES)(3)指令指针寄存器(IP)(4)20位地址加法器(5)逻辑地址(6)物理地址,(2)段寄存器 8086/8088的4个段寄存器分别为:CS(Code Segment)代码段寄存器:用来存储程序当前使用的代码段的段地址。CS的内容左移4位再加上指令指针寄存器IP的内容就是下一条要读取的指令在存储器中的物理地址。DS(Data Segment)数据段寄存器:用来存放程序当前使用的数据段的段地址。DS的内

8、容左移4位再加上按指令中存储器寻址方式给出的偏移地址即得到对数据段指定单元进行读写的物理地址。,SS(Stack Segment)堆栈段寄存器:用来存放程序当前所使用的堆栈段的段地址。堆栈是存储器中开辟的按“先进后出”原则组织的一个特殊存储区,主要用于调用子程序或执行中断服务程序时保护断点和现场。ES(Extra Segment)附加数据段寄存器:用来存放程序当前所使用的附加数据段的段地址。附加数据段用来存放字符串操作时的目的字符串。(3)控制寄存器 IP(Instruction Pointer)指令指针寄存器:用来存放下一条要读取的指令在代码段内的偏移地址。用户程序不能直接访问IP。,分段访

9、问内存模型(示意图),;FULL SEGMENT DEFINITION完整程序框架(熟练掌握);-stack segment-STACKSEGMENT DB64 DUP(?)STACK ENDS;-data segment-DATASEGMENT;data definitions are placed hereDATAENDS;-code segment-CODESEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKstart:MOV AX,DATA MOV DS,AX-MOV AH,4CH INT 21HCODEENDS END start,3.分段访问内存的思想(1

10、)段:偏置 的方法只要求一个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、

11、8086/8088存储空间,8086/8088有20条地址线,可直接对1M个存储单元进行访问。每个存储单元存放一个字节型数据,且每个存储单元都有一个20位的地址,这1M个存储单元对应的地址为00000HFFFFFH。一个存储单元中存放的信息称为该存储单元的内容。00001H单元的内容为9FH,记为:(00001H)=9FH。,2、存储器的段结构,8086/8088 CPU中有关可用来存放地址的寄存器如IP、SP等都是16位的,故只能直接寻址64 KB。为了对1 M个存储单元进行管理,8086/8088采用了段结构的存储器管理方法。8086/8088将整个存储器分为许多逻辑段,每个逻辑段的容量小

12、于或等于64 KB,允许它们在整个存储空间中浮动,各个逻辑段之间可以紧密相连,也可以互相重叠。用户编写的程序(包括指令代码和数据)被分别存储在代码段、数据段、堆栈段和附加数据段中,这些段的段地址分别存储在段寄存器CS、DS、SS和ES中,而指令或数据在段内偏移地址可由对应的地址寄存器或立即数给出。,如果从存储器中读取指令,则段地址来源于代码段寄存器CS,偏移地址来源于指令指针寄存器IP。如果从存储器读/写操作数,则段地址通常由数据段寄存器DS提供(必要时可通过指令前缀实现段超越,将段地址指定为由CS、ES或SS提供),偏移地址则要根据指令中所给出的寻址方式确定,这时,偏移地址通常由寄存器BX、

13、SI、DI以及立即数等提供,这类偏移地址也被称为“有效地址”(EA)。如果操作数是通过基址寄存器BP寻址的,则此时操作数所在段的段地址由堆栈段段寄存器SS提供(必要时也可指定为CS、SS或ES)。,如果使用堆栈操作指令(PUSH或POP)进行进栈或出栈操作,以保护断点或现场,则段地址来源于堆栈段寄存器SS,偏移地址来源于堆栈指针寄存器SP。如果执行的是字符串操作指令,则源字符串所在段的段地址由数据段寄存器DS提供(必要时可指定为CS、ES或SS),偏移地址由源变址寄存器SI提供;目的字符串所在段的段地址由附加数据段寄存器ES提供,偏移地址由目的变址寄存器DI提供。以上这些存储器操作时段地址和偏

14、移地址的约定是由系统设计时事先已规定好的,编写程序时必须遵守这些约定。,缺省段和偏置:,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=24F6

15、0+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 用本节课所学理论解释此程序

16、的执行过程,data segment x dw 16h y dw 20h z dw?data endscode segment assume cs:code,ds:datastart:mov ax,data mov ds,ax,mov ax,x mov dx,y add ax,dx mov z,ax mov ah,4ch int 21hcode ends end start,4、堆栈操作 堆栈段:CPU用来临时存储信息的RAM区域。其特点是先进后出。假设:SP=1236,AX=24B6,DI=85C2,DX=5F93 执行指令 PUSH AX PUSH DI PUSH DX.POP DX PO

17、P DI POP AX,堆栈操作程序演示,.asm,5、8086/8088存储器结构,8086的1 MB存储空间实际上分为两个512 KB的存储体,又称存储库,分别叫高位库和低位库,如图所示。低位库与数据总线D7D0相连,该库中每个存储单元的地址为偶数地址;高位库与数据总线D15D8相连,该库中每个存储单元的地址为奇数地址。地址总线A19A1可同时对高、低位库的存储单元寻址,A0和BHE用于对库的选择,分别连接到库选择端SEL上。当A0=0时,选择偶数地址的低位库;当BHE=0时,选择奇数地址的高位库;当两者均为0时,则同时选中高低位库。利用A0和BHE这两个控制信号,既可实现对两个库进行读/写(即16位数据),也可单独对其中一个库进行读/写(8位数据)。,6、8086/8088的 I/O 组织与访问,1、IBM PC可用的端口资源有000-3FFH(分析对应的端口地址线有多少根?)。2、对端口的访问与对内存访问对比分析.3、举一个实际应用中最简单端口访问的例子.(见ch7ppt,page30)电路,功能,编程-三位一体.(理解体会),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号