1. 8086系统中的存储器为什么要采用分段结构有什么好处
8086CPU中的寄存器都是16位的,16位的地址只能访问64KB的内存。086系统中的物理地址是由20根地址总线形成的,要做到对20位地址空间进行访问,就需要两部分地址,在8086系统中,就是由段基址和偏移地址两部分构成。
这两个地址都是16位的,将这两个地址采用相加的方式组成20位地址去访问存储器。在8086系统的地址形成中,当段地址确定后,该段的寻址范围就已经确定,其容量不大于64KB。同时,通过修改段寄存器内容,可达到逻辑段在整个1MB存储空间中浮动。
各个逻辑段之间可以紧密相连,可以中间有间隔,也可以相互重叠(部分重叠,甚至完全重叠)。采用段基址和偏移地址方式组成物理地址的优点是:满足对8086系统的1MB存储空间的访问,同时在大部分指令中只要提供16位的偏移地址即可。
(1)存储器为什么要分段扩展阅读
把段的起始单元的物理地址除以16的结果称为段地址,它为16位,写成十六进制是4位:XXXXH。显然,段地址决定了段在lMB空间中的位置。段内各存储单元相对段的起始单元都有一个距离,称为段内偏移量。
在对内存进行操作时,段地址先确定下来,然后给出不同的段内偏移量,就可以实现段内的寻址。段地址也是可以改变的,即段在1MB空间中的位置是可变的,因而可实现1MB的全范围寻址。
由于采用了分段结构,因此可以把每一个存储单元看成是具有两种类型的地址:物理地址和逻辑地址。物理地址就是实际地址,它具有20位的地址值,它惟一地标识1MB存储空间的某一存储单元。CPU与存储器之间的信息交换都是使用这个物理地址。
逻辑地址是编程时所使用的地址,它由段地址和段内偏移量组成。逻辑地址和物理地址的关系为:物理地址=段地址16+段内偏移量。由逻辑地址形成物理地址是由总线接口部件中的电路实现的。
2. 8086/8088CPU使用的存储器为什么要分段
8086/8088系统中,存储器为什么要分段?一个段最大为多少字节?最小为多少字节? 解:分段的主要目的是便于存储器的管理,使得可以用16位寄存器来寻址20位的内存空间。一个段最大为64KB,最小为16B。
3. 8086/8088系统中,存储器为什么要分段,一个段的最大和最小各为多少字节
8086/8088系统中,存储器分段的主要目的是便于存储器的管理,使得可以用16位寄存器来寻址20位的内存空间。一个段最大为64KB,最小为16B。
存储器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存,再读取内存的操作。
由于存储器的个数和容量都有限,不可能把所有中间结果都存储在存储器中,所以,要对存储器进行适当的调度。根据指令的要求,管理安排适当的寄存器,避免操作数过多的传送操作。
8086/8088CPU可直接寻址1MB的存储器空间,直接寻址需要20位地址码,而所有内部寄存器都是16位的,只能直接寻址6KB,因此采用分段技术来解决。将1MB的存储空间分成若干逻辑段,每段最长64KB,最短16B。这些逻辑段在整个存储空间中可浮动。
(3)存储器为什么要分段扩展阅读:
8086/8088CPU内部设置了4个16位段寄存器,它们分别是代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS、附加段寄存器ES、由它们给出相应逻辑段的首地址,称为“段基址”。段基址与段内偏移地址组合形成20位物理地址,段内偏移地址可以存放在寄存器中,也可以存放在存储器中。
程序较小时,代码段、数据段、堆栈段可放在一个段内,即包含在64KB之内,而当程序或数据量较大时,超过了64KB,那么可以定义多个代码段或数据段、堆栈段、附加段。
4. 为什么8086对存储器要采用分段管理
8086是一个16位的结构,采用分段管理办法可形成超过16位的存储器物理地址,扩大对存储器的寻址范围(1MB,20位地址)。
这两个地址都是16位的,将这两个地址采用相加的方式组成20位地址去访问存储器。在8086系统的地址形成中,当段地址确定后,该段的寻址范围就已经确定,其容量不大于64KB。同时,通过修改段寄存器内容,可达到逻辑段在整个1MB存储空间中浮动。
(4)存储器为什么要分段扩展阅读:
8086处理器的时钟频率介于4.77MHz(在原先的IBM PC频率)和10 MHz之间。8086 没有包含浮点指令部分(FPU),但是可以通过外接数学辅助处理器来增强浮点计算能力。Intel 8087 是标准版本。
分段管理是管理若干分段组成的作业,且按分段来进行存储分配。实现分段管理的关键在于,如何保证分段(二维)地址空间中的一个作业在线性(一维)的存储空间中正确运行。也就是说,如何把分段地址结构变换成线性的地址结构。
5. 8086cpu为什么要对存储器采用分段管理一个逻辑段最多包含多少个存储单元
只要学过汇编的人都知道8086处理器对存储器采用分段管理机制,为什么要这么设计呢?采用线性地址直接访问存储器该多好,直接明了。
其实Intel的工程师绝对不会那么傻,当然是有他的道理:
首先,地址总线有20根,可寻址1M的地址空间,而寄存器是16位,仅能寻址64K,总不能白白浪费多出来的空间。要知道在8086的那个年代,内存是非常昂贵的。
所以Intel的工程师想出了分段管理的方法:段地址x4+偏移地址。
另外,分段管理还有利于代码的组织,对内存实现有效的管理。例如,将代码段、数据段隔离等。
学习过程中,如果按照书中所描述,照搬的学习,既不方便记忆,也不能将知识融会贯通。
6. 怎样理解存储器地址的分段,老是不理解为啥要分段啊
8086CPU的数据线是16位的(16位机),所以,CPU内部的寄存器包括地址寄存器都是16位的,因而对地址的操作也只能是16位,也就是说,对于8086,操作数的寻找限制在64 K范围内。但8086有20条地址线,它的直接寻址能力为1M字节。这样就产生了一个矛盾,即16位地址寄存器如何去寻址20位的存储器的物理地址。解决这个问题的办法就是8086对存储器进行分段管理,将1 M字节的内存储器,分为若干个存储区域,每个区域称为一个段,每一段都在一个连续的区域内,容量最大为64 K字节。
合成物理地址时,将段地址左移4位(扩展成20位),再加上16位偏移量。段地址是由8086中的段寄存器提供的。物理地址形成公式为:物理地址=(段寄存器)×16+16位偏移量。
7. 8086cpu储存器为什么采用分段
8086/8088系统中,存储器分段的主要目的是便于存储器的管理,使得可以用16位寄存器来寻址20位的内存空间。一个段最大为64KB,最小为16B。
存储器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存,再读取内存的操作。
由于存储器的个数和容量都有限,不可能把所有中间结果都存储在存储器中,所以,要对存储器进行适当的调度。根据指令的要求,管理安排适当的寄存器,避免操作数过多的传送操作。
8086/8088CPU可直接寻址1MB的存储器空间,直接寻址需要20位地址码,而所有内部寄存器都是16位的,只能直接寻址6KB,因此采用分段技术来解决。将1MB的存储空间分成若干逻辑段,每段最长64KB,最短16B。这些逻辑段在整个存储空间中可浮动。
8. 内存为什么要分段 分成多少种段 段与段寄存器的区别
8086CPU有20根地址线,最大可寻址内存空间为1MB。而8086的寄存器只有16位,指令指针(IP)和变址寄存器(SI、DI)也是16位的。用16位的地址寻址1MB空间是不可能的。所以就要把内存分段,也就是把1MB空间分为若干个段,每段不超过64KB,在8086中设置4个16位的段寄存器,用于管理4种段:CS是代码段,DS是数据段,SS是堆栈段,ES是附加段。
把内存分段后,每一个段就有一个段基址,段寄存器保存的就是这个段基址的高16位,这个16位的地址左移四位(后面加上4个0)就可构成20位的段基址。
9. 3,存储器为什么要分成内储器和外储器两种二者有什么区别
原因:
因为内、外存储器的作用不同。内存储器比外存储器速度快,而且快很多。CPU在运行程序的时候会把常用的代码或者数据存放到内存储器中,这样就能快速的调用。
内存与外存的区别:
1、内存储器是执行程序时的临时存储区,掉电后数据全部丢失;外存储器是用来存储原始数据和运算结果的,需要长期保存,掉电后数据不会丢失。
2、内存储器最突出的特点是存取速度快,但是容量小、价格贵;外存储器的特点是容量大、价格低,但是存取速度慢。
3、内存储器用于存放那些立即要用的程序和数据;外存储器用于存放暂时不用的程序和数据。
(9)存储器为什么要分段扩展阅读:
内存的分类:
1、RAM也叫随机存储器,是Random Access Memory的英文缩写。RAM中存储当前使用的程序、数据、中间结果和与外存交换的数据,CPU可以根据需要直接读或写RAM中的内容。
2、ROM:只能读出操作而不能写入操作,是Read Only Memory的意思。
存储器的种类很多,按其用途可分为主存储器和辅助存储器,主存储器又称内存储器(简称内存),辅助存储器又称外存储器(简称外存)。
内存储器最突出的特点是存取速度快,但是容量小、价格贵;外存储器的特点是容量大、价格低,但是存取速度慢。内存储器用于存放那些立即要用的程序和数据;外存储器用于存放暂时不用的程序和数据。内存储器和外存储器之间常常频繁地交换信息。外存通常是磁性介质或光盘,像硬盘,软盘,磁带,CD等,能长期保存信息,并且不依赖于电来保存信息,但是由机械部件带动,速度与CPU相比就显得慢得多。
网络-内存储器
网络-外存储器