请问“在x86系统中,每个内存页的大小是4K”这句话是什么意思呢?
本帖最后由 wdl7770016 于 2011-7-29 19:17 编辑【在开始之前,我们先了解一下对齐的一些概念:文件区块有两种对齐值,一种是磁盘文件中的,另一种是内存中的。PE文件被映射到内存时,区块总是至少以一个页边界为开始,在x86系统中,每个内存页的大小是4K,也就是0x1000字节,所以在x86系统中,PE文件区块的内存对齐值一般等于0x1000,每个区块按0x1000之倍数内存偏移位置开始。另一种是磁盘对齐值,这个实例磁盘对齐值是0x1000,每个区块按0x1000之倍数的文件偏移位置开始。有时为了使磁盘文件更小些,你可以用0x200对齐值。】
这是原文。。。。
内存页的大小是固定的吗?
内存页的大小不是可以自己改变的吗?
我也不清楚,期待高手解答。。。。 {:5_94:}还在学16位汇编的路过。。。 比如我们有一张A4纸,相当于一块内存,我们把它分成四等分,这四个等分就是内存页面,然后我们在第一个页面画一个圆, 占用了一大半, 再想画一个圆的话,不可能再在第一个页面画了,因为位置不够,我们必须到第二个页面去把这个圆画出来,每个页面剩下了就由空白填充, 举个具体的例子有一个命令是jmp ****, 它的机器码是E9 ****X,E9只占用一个字节,而后面的地址占用4个字节,那么按常规的数据存储的话,这句命令会占用8个字节的长度,因为E9占用了一个字节,但是这个页面容不下接下来的地址,所以地址会被储存到下一个页面,E9自己就占了一个页面,即4个字节,如果我们不想他这样存储,可以用#pragma pack(1) , 即设置对其值为1字节,那么这句命令就会按一字节对其来储存,就只占用9个字节的空间了! 谜糊啊:dizzy::dizzy: x8888k 发表于 2011-7-30 08:30 static/image/common/back.gif
楼主去看计算机组成原理这本书吧,我一两句话也说不清
。。。。额。 weixianlang 发表于 2011-7-30 11:54 static/image/common/back.gif
比如我们有一张A4纸,相当于一块内存,我们把它分成四等分,这四个等分就是内存页面,然后我们在第一个页面画一 ...
貌似懂了点但我觉得你好像没回答到问题上啊- - 能再解释下是x86系统下固定内存页的大小为4kB吗?我感觉那原文中说的就好像是固定的啊? 还是说我们能改不好意思 因为没那么多时间看计算机组成原理 所以才来问 希望有看过的童鞋可以帮帮忙。。
页:
[1]