计算机软件课次优秀PPT.ppt
《计算机软件课次优秀PPT.ppt》由会员分享,可在线阅读,更多相关《计算机软件课次优秀PPT.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机软件课次现在学习的是第1页,共48页图3.10数据在存储器中的存放现在学习的是第2页,共48页若存放的是字型数据(16位二进制数),则将字的低位字节存放在低地址单元,高位字节存放在高地址单元。如从地址0011FH开始的两个连续单元中存放一个字型数据,则该数据为DF46H,记为:(0011FH)=DF46H。若存放的是双字型数据(32位二进制数,这种数一般作为地址指针,其低位字是被寻址地址的偏移量,高位字是被寻址地址所在段的段地址),这种类型的数据要占用连续的4个存储单元,同样,低字节存放在低地址单元,高字节存放在高地址单元。如从地址E800AH开始的连续4个存储单元中存放了一个双字型数据
2、,则该数据为66A65E65H,记为:(E800AH)=66A65E65H。现在学习的是第3页,共48页 2存储器的段结构存储器的段结构8086/8088CPU中有关可用来存放地址的寄存器如IP、SP等都是16位的,故只能直接寻址64KB。为了对1M个存储单元进行管理,8086/80888086/8088采用了段结构的存储器管理方法采用了段结构的存储器管理方法采用了段结构的存储器管理方法采用了段结构的存储器管理方法。8086/8088将整个存储器分为许多逻辑段,每个逻辑段的容量小于或等于64KB,允许它们在整个存储空间中浮动,各个逻辑段之间可以紧密相连,也可以互相重叠。用户编写的程序(包括指令
3、代码和数据)被分别存储在代码段、数据段、堆栈段和附加数据段中,这些段的段地址分别存储在段寄存器CS、DS、SS和ES中,而指令或数据在段内偏移地址可由对应的地址寄存器或立即数给出,如表3.8所示。现在学习的是第4页,共48页表表3.8存储器操作时段地址和段内偏移地址的来源存储器操作时段地址和段内偏移地址的来源存储器操作类型存储器操作类型段段地地址址偏移地址偏移地址正常来源正常来源其他来源其他来源取指令取指令CS无无IP存取操作数存取操作数DSCS、ES、SS有效地址有效地址EA通过通过BP寻址存取操寻址存取操作数作数SSCS、ES、SS有效地址有效地址EA堆栈操作堆栈操作SS无无BP、SP源字
4、符串源字符串DSCS、ES、SSSI目的字符串目的字符串ES无无DI现在学习的是第5页,共48页如果从存储器中读取指令,则段地址来源于代码段寄存器CS,偏移地址来源于指令指针寄存器IP。如果从存储器读/写操作数,则段地址通常由数据段寄存器DS提供(必要时可通过指令前缀实现段超越,将段地址指定为由CS、ES或SS提供),偏移地址则要根据指令中所给出的寻址方式确定,这时,偏移地址通常由寄存器BX、SI、DI以及立即数等提供,这类偏移地址也被称为“有效地址”(EA)。如果操作数是通过基址寄存器BP寻址的,则此时操作数所在段的段地址由堆栈段段寄存器SS提供(必要时也可指定为CS、SS或ES)(详见第4
5、章“寻址方式”一节)。现在学习的是第6页,共48页如果使用堆栈操作指令(PUSH或POP)进行进栈或出栈操作,以保护断点或现场,则段地址来源于堆栈段寄存器SS,偏移地址来源于堆栈指针寄存器SP(详见本节“4.堆栈操作”)。如果执行的是字符串操作指令,则源字符串所在段的段地址由数据段寄存器DS提供(必要时可指定为CS、ES或SS),偏移地址由源变址寄存器SI提供;目的字符串所在段的段地址由附加数据段寄存器ES提供,偏移地址由目的变址寄存器DI提供。以上这些存储器操作时段地址和偏移地址的约定是由系统设计时事先已规定好的,编写程序时必须遵守这些约定。现在学习的是第7页,共48页 3逻辑地址与物理地址
6、由于采用了存储器分段管理方式,8080/8088CPU在对存储器进行访问时,根据当前的操作类型(取指令或存取操作数)以及读取操作数时指令所给出的寻址方式,CPU就可确定要访问的存储单元所在段的段地址以及该单元在本段内的偏移地址(如表3.8所示)。我我我我们们们们把把把把通通通通过过过过段段段段地地地地址址址址和和和和偏偏偏偏移移移移地地地地址址址址来来来来表表表表示示示示的的的的存存存存储储储储单单单单元元元元的的的的地地地地址址址址称称称称为为为为逻逻逻逻辑辑辑辑地地地地址址址址,记记记记为为为为:段段段段地地地地址址址址:偏移地址偏移地址偏移地址偏移地址。CPU在对存储单元进行访问时,必须
7、在20位的地址总线上提供一个20位的地址信息,以便选中所要访问的存储单元。我们把CPU对存储器进行访问时实际寻址所使用的20位地址称为物理地址。位地址称为物理地址。位地址称为物理地址。位地址称为物理地址。现在学习的是第8页,共48页物理地址是由CPU内部总线接口单元BIU中的地址加法器根据逻辑地址产生的。由逻辑地址形成20位物理地址的方法为:段段段段地地地地址址址址 10H+10H+偏偏偏偏移移移移地地地地址址址址。其形成过程如图3.3所示。图3.11给出了存储器分段示意。如果当前的(IP)=1000H,那么,下一条要读取的指令所在存储单元的物理地址为:(CS)10H+(IP)=1000H10
8、H+1000H=11000H如果某操作数在数据段内的偏移地址为8000H,则该操作数所在存储单元的物理地址为(DS)10H+8000H=2A0FH10H+8000H=320F0H现在学习的是第9页,共48页存储器分段示意图现在学习的是第10页,共48页 4 4堆栈操作堆栈操作堆栈操作堆栈操作堆栈是在存储器中开辟的一个特定区域。开辟堆栈的目的主要有以下两点:(1)存放指令操作数(变量)。此时,对操作数进行访问时,段地址由堆栈段寄存器SS来提供,操作数在该段内的偏移地址由基址寄存器BP来提供。(2)保护断点和现场。此为堆栈的主要功能。现在学习的是第11页,共48页进栈和出栈操作过程进栈和出栈操作过
9、程进栈和出栈操作过程进栈和出栈操作过程在执行进栈和出栈操作时,段地址由堆栈段寄存器SS提供,段内偏移地址由堆栈指针寄存器SP提供,SP始终指向栈顶,当堆栈空时,SP指向栈底。如图3.12所示,设在存储器中开辟了100H个存储单元的堆栈段,当前(SS)=2000H,堆栈空时(SP)=0100H,即此时SP指向栈底(如图3.12(a)所示)。由于PUSH和POP指令要求操作数为字型数据,因此,每进行一次进栈操作,SP值减2(如图3.12(b)所示),每进行一次出栈操作,SP值加2(如图3.12(c)所示)。在进栈和出栈操作过程中,SP始终指向栈顶。现在学习的是第12页,共48页图图3.12进栈与出
10、栈操作示意图进栈与出栈操作示意图现在学习的是第13页,共48页 58086/8088存储器结构存储器结构8086的1MB存储空间实际上分为两个512KB的存储体,又称存储库,分别叫高位库和低位库,如图3.13所示。低位库与数据总线D7D0相连,该库中每个存储单元的地址为偶数地址;高位库与数据总线D15D8相连,该库中每个存储单元的地址为奇数地址。地址总线A19A1可同时对高、低位库的存储单元寻址,A0和BHE用于对库的选择,分别连接到库选择端SEL上。当A0=0时,选择偶数地址的低位库;当BHE=0时,选择奇数地址的高位库;当两者均为0时,则同时选中高低位库。利用A0和BHE这两个控制信号,既
11、可实现对两个库进行读/写(即16位数据),也可单独对其中一个库进行读/写(8位数据),如表3.9所示。现在学习的是第14页,共48页图3.13 8086存储器高低位库的连接现在学习的是第15页,共48页表表3.98086存储器高低位库选择存储器高低位库选择A0对应操作00同时访问两个存储体,读/写一个字的信息01只访问奇地址存储体,读/写高字节的信息10只访问偶地址存储体,读/写低字节的信息11无操作现在学习的是第16页,共48页在8086系统中,存储器这种分体结构对用户来说是透明的。当用户需要访问存储器中某个存储单元,以便进行字节型数据的读/写操作时,指令中的地址码经变换后得到20位的物理地
12、址,该地址可能是偶地址,也可能是奇地址。如果是偶地址(A0=0),BHE=1,这时由A0选定偶地址存储体,通过A19A1从偶地址存储体中选中某个单元,并启动该存储体,读/写该存储单元中一个字节信息,通过数据总线的低8位传送数据,如图3.14(a)所示;如果是奇地址(A0)=1,则偶地址存储体不会被选中,也就不会启动它。为了启动奇地址存储体,系统将自动产生BHE=0,作为奇地址存储体的选体信号,与A19A1一起选定奇地址存储体中的某个存储单元,并读/写该单元中的一个字节信息,通过数据总线的高8位传送数据,如图3.14(b)所示。可以看出,对于字节型数据,不论它存放在偶地址的低位库,还是奇地址的高
13、位库,都可通过一个总线周期完成数据的读/写操作。现在学习的是第17页,共48页如果用户需要访问存储器中某两个存储单元,以便进行字型数据的读/写时,可分两种情况来讨论。一种情况是用户要访问的是从偶地址开始的两个连续存储单元(即字的低字节在偶地址单元,高字节在奇地址单元),这种存放称为规则存放,这样存放的字称为规则字。对于规则存放的字可通过一个总线周期完成读/写操作,这时A0=0,BHE=0,如图3.14(c)所示;另一种情况是用户要访问的是从奇地址开始的两个存储单元(即字的低字节在奇地址单元,高字节在偶地址单元),这种存放称为非规则存放,这样存放的字称为非规则字,对于非规则存放的字需要通过两个总
14、线周期才能完成读/写操作,即第一次访问存储器时读/写奇地址单元中的字节,第二次访问存储器时读/写偶地址单元中的字节,如图3.14(d)所示。显然,为了加快程序的运行速度,希望字型数据在存储器中规则存放。现在学习的是第18页,共48页图3.14从8086存储器的偶数和奇数地址读字节和字(a)读偶地址单元中的字节;(b)读奇地址单元中的字节;(b)(c)读偶地址单元中的字;(d)读奇地址单元中的字现在学习的是第19页,共48页在8088系统中,可直接寻址的存储空间同样也是1MB,但其存储器的结构与8086有所不同,它的1MB存储空间同属于一个单一的存储体,即存储体为1M8位。它与总线之间的连接方式
15、很简单,其20根地址线A19A0与8根数据线分别与8088CPU对应的地址线和数据线相连。8088CPU每访问一次存储器只能读/写一个字节信息,因此在8088系统的存储器中,字型数据需要两次访问存储器才能完成读/写操作。现在学习的是第20页,共48页3.3.2 8086/8088的的I/O组织组织8086/8088系统和外部设备之间是通过I/O接口电路来联系的。每个I/O接口都有一个或几个端口。在微机系统中每个端口分配一个地址号,称为端口地址。一个端口通常为I/O接口电路内部的一个寄存器或一组寄存器。现在学习的是第21页,共48页8086/8088CPU用地址总线的低16位作为对8位I/O端口
16、的寻址线,所以8086/8088系统可访问的8位I/O端口有65536(64K)个。两个编号相邻的8位端口可以组成一个16位的端口。一个8位的I/O设备既可以连接在数据总线的高8位上,也可以连接到数据总线的低8位上。一般为了使数据/地址总线的负载平衡,希望接在数据/地址总线高8位和低8位的设备数目最好相等。当一个I/O设备接在数据总线的低8位(AD7AD0)上时,这个I/O设备所包括的所有端口地址都将是偶数地址(A0=0);若一个I/O设备接在数据总线的高8位(AD15AD8)上时,那么该设备包含的所有端口地址都是奇数地址(A0=1)。如果某种特殊I/O设备既可使用偶地址又可使用奇地址时,此时
17、必须将A0和BHE两个信号结合起来作为I/O设备的选择线。现在学习的是第22页,共48页8086CPU对I/O设备的读/写操作与对存储器的读/写操作类似。当CPU与偶地址的I/O设备实现16位数据的存取操作时,可在一个总线周期内完成;当CPU与奇地址的I/O设备实现16位数据的存取操作时,要占用两个总线周期才能完成。需要说明的是,8086/8088CPU的I/O指令可以用16位的有效地址A15A0来寻址0000FFFFH共64K个端口,但IBMPC系统中只使用了A9A010位地址来作为I/O端口的寻址信号,因此,其I/O端口的地址仅为0003FFH共1K个。现在学习的是第23页,共48页3.4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机软件 优秀 PPT
限制150内