寄存器为什么要分段
答:8086/8088系统中,存储器分段的主要目的是便于存储器的管理,使得可以用16位寄存器来寻址20位的内存空间。一个段最大为64KB,最小为16B。存储器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存,再读取内存的操作。由于存储器的个数和容量都有限,不可能把所有中间结果...
答:8086是一个16位的结构,采用分段管理办法可形成超过16位的存储器物理地址,扩大对存储器的寻址范围(1MB,20位地址)。这两个地址都是16位的,将这两个地址采用相加的方式组成20位地址去访问存储器。在8086系统的地址形成中,当段地址确定后,该段的寻址范围就已经确定,其容量不大于64KB。同时,通过修改...
答:保护模式下对存储器分段也就是这个原理,这也是为了方便管理存储器而采用的更有效的方法。后面也有比分段管理更高级的分页管理机制。当然,这是后话了。(这个和寄存器间接寻址类似却略有不同)。没看懂的话建议您去看一些比较基础的书籍,原理性的东西。这本《微机原理》貌似就不错,呵呵。希望对你有所...
答:应该是对存储器分段管理吧。因为在8086系统中,寄存器是16位的,而8086却有20根地址线,8086的寻址是通过段地址与偏移地址合成的,这样的话,如果用cs来指明段地址,用IP指出偏移地址,由于IP是16位的,它能表示的偏移地址只有0000H--FFFFH,也就是共64K,而8086地址线有20根,也就是可以寻址空间为1...
答:8086/8088系统中,存储器为什么要分段?一个段最大为多少字节?最小为多少字节? 解:分段的主要目的是便于存储器的管理,使得可以用16位寄存器来寻址20位的内存空间。一个段最大为64KB,最小为16B。参考资料:这是独秀上面的答案,也是标准答案!希望能帮到你!
答:8086CPU中的寄存器都是16位的,16位的地址只能访问64KB的内存。086系统中的物理地址是由20根地址总线形成的,要做到对20位地址空间进行访问,就需要两部分地址,在8086系统中,就是由段基址和偏移地址两部分构成。这两个地址都是16位的,将这两个地址采用相加的方式组成20位地址去访问存储器。在8086...
答:操作系统在加载程序时,给每个段寄存器都有规定的缺省值。因此,如果你的程序承认这个缺省值是不需要在程序中对段寄存器赋值的(当然赋了也没关系)。一共有4个段地址寄存器,CS(code segment register)16位代码段寄存器 DS(data segment register)16位数据段寄存器 SS(stack segment register)16位堆栈段...
答:用16位的地址寻址1MB空间是不可能的。所以就要把内存分段,也就是把1MB空间分为若干个段,每段不超过64KB,在8086中设置4个16位的段寄存器,用于管理4种段:CS是代码段,DS是数据段,SS是堆栈段,ES是附加段。把内存分段后,每一个段就有一个段基址,段寄存器保存的就是这个段基址的高16位,这个...
答:解决这个问题的办法就是8086对存储器进行分段管理,将1 M字节的内存储器,分为若干个存储区域,每个区域称为一个段,每一段都在一个连续的区域内,容量最大为64 K字节。合成物理地址时,将段地址左移4位(扩展成20位),再加上16位偏移量。段地址是由8086中的段寄存器提供的。物理地址形成公式为...
答:保护模式下对存储器分段也就是这个原理,这也是为了方便管理存储器而采用的更有效的方法。后面也有比分段管理更高级的分页管理机制。当然,这是后话了。(这个和寄存器间接寻址类似却略有不同)。没看懂的话建议您去看一些比较基础的书籍,原理性的东西。这本《微机原理》貌似就不错,呵呵。希望对你有所...
网友评论:
桑惠13635509406:
为什么要对寄存器进行分段管理,分段管理的原则是什么? -
11430邬哗
: 应该是对存储器分段管理吧.因为在8086系统中,寄存器是16位的,而8086却有20根地址线,8086的寻址是通过段地址与偏移地址合成的,这样的话,如果用cs来指明段地址,用IP指出偏移地址,由于IP是16位的,它能表示的偏移地址只有0000H--FFFFH,也就是共64K,而8086地址线有20根,也就是可以寻址空间为1M,这样就需要通过分段管理,每段最多为64K,最小为16个字节,并且每段必须以16的倍数开始,也就是说每段的最后一位必须为0,如00000H,10000H,00010H,等.并且段与段之间可以重叠.
桑惠13635509406:
为什么要进行存储器分段? -
11430邬哗
: 8086/8088系统中,存储器分段的主要目的是便于存储器的管理,使得可以用16位寄存器来寻址20位的内存空间.一个段最大为64KB,最小为16B. 存储器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存...
桑惠13635509406:
为什么要设置段寄存器?8086/8088有几个段寄存器? -
11430邬哗
: 8086CPU的地址线只有16位,地址空间最多为64kb,为了使CPU的地址空间扩大到1MB,采用分段的方式用来存放存储器的起始地址.段寄存器存放的是地址的高16位(此时左移4位),然后加上偏移地址就为20位.
桑惠13635509406:
8086/8088CPU使用的存储器为什么要分段?怎么分段 -
11430邬哗
: 8086/8088系统中,存储器为什么要分段. 一个段最大为多少字节. 最小为多少字节. 解:分段的主要目的是便于存储器的管理,使得可以用16位寄存器来寻址20位的内存空间. 一个段最大为64KB,最小为16B.
桑惠13635509406:
内存为什么要分段? 分成多少种段? 段与段寄存器的区别? -
11430邬哗
: 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位的段基址.
桑惠13635509406:
8086CUP 存储器为什么要分段 -
11430邬哗
: 因为8086只有16位寄存器,也就是说你用一个寄存器直接可寻址也就是65536, 而用分段,物址=16位*10H+偏址.就可以达到20位.可寻址1 m.
桑惠13635509406:
怎样理解存储器地址的分段,老是不理解为啥要分段啊? -
11430邬哗
: 8086CPU的数据线是16位的(16位机),所以,CPU内部的寄存器包括地址寄存器都是16位的,因而对地址的操作也只能是16位,也就是说,对于8086,操作数的寻找限制在64 K范围内.但8086有20条地址线,它的直接寻址能力为1M字节....
桑惠13635509406:
微机原理地址为什么要分段 -
11430邬哗
: 以8086为例,因为它的地址线有20条,可以寻址的范围为1MB,而它内部的数据线和常用寄存器为16位,因此无法直接表示20位地址,因此需要分段.
桑惠13635509406:
为什么Intel8088的存储器地址空间要分段?请说明其物理地址的形成过程 -
11430邬哗
: 因为8088的地址总线是20条,能够寻址的存储空间为2的20次方——1MB,但是内部的寄存器和数据总线只有16位,只能计算出16位的地址,即只能寻址64KB.为了寻址全部的1MB空间,采用内存的分段管理. 16位的段地址左移四个二进制位,加上16位的偏移地址,得到的和就是20位的物理地址.
桑惠13635509406:
现在的寄存器哦和地址总线都是32位,为什么内存还要分段?
11430邬哗
: 因为16和32 是不一样的当然要分段了