鱼C论坛

 找回密码
 立即注册
查看: 9372|回复: 7

请问“在x86系统中,每个内存页的大小是4K”这句话是什么意思呢?

[复制链接]
发表于 2011-7-29 19:16:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 wdl7770016 于 2011-7-29 19:17 编辑

【在开始之前,我们先了解一下对齐的一些概念:文件区块有两种对齐值,一种是磁盘文件中的,另一种是内存中的。PE文件被映射到内存时,区块总是至少以一个页边界为开始,在x86系统中,每个内存页的大小是4K,也就是0x1000字节,所以在x86系统中,PE文件区块的内存对齐值一般等于0x1000,每个区块按0x1000之倍数内存偏移位置开始。另一种是磁盘对齐值,这个实例磁盘对齐值是0x1000,每个区块按0x1000之倍数的文件偏移位置开始。有时为了使磁盘文件更小些,你可以用0x200对齐值。】

这是原文。。。。
内存页的大小是固定的吗?
内存页的大小不是可以自己改变的吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-29 19:36:45 | 显示全部楼层
我也不清楚,期待高手解答。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-29 21:25:50 | 显示全部楼层
还在学16位汇编的路过。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
发表于 2011-7-30 08:30:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-30 11:54:39 | 显示全部楼层
比如我们有一张A4纸,相当于一块内存,我们把它分成四等分,这四个等分就是内存页面,然后我们在第一个页面画一个圆, 占用了一大半, 再想画一个圆的话,不可能再在第一个页面画了,因为位置不够,我们必须到第二个页面去把这个圆画出来,每个页面剩下了就由空白填充, 举个具体的例子有一个命令是jmp ****, 它的机器码是E9 ****X  ,E9只占用一个字节,而后面的地址占用4个字节,那么按常规的数据存储的话,这句命令会占用8个字节的长度,因为E9占用了一个字节,但是这个页面容不下接下来的地址,所以地址会被储存到下一个页面,E9自己就占了一个页面,即4个字节,如果我们不想他这样存储,可以用#pragma pack(1) , 即设置对其值为1字节,那么这句命令就会按一字节对其来储存,就只占用9个字节的空间了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-30 13:01:04 | 显示全部楼层
谜糊啊:dizzy::dizzy:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-30 19:06:21 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-30 19:11:45 | 显示全部楼层
weixianlang 发表于 2011-7-30 11:54
比如我们有一张A4纸,相当于一块内存,我们把它分成四等分,这四个等分就是内存页面,然后我们在第一个页面画一 ...

貌似懂了点  但我觉得你好像没回答到问题上啊- -   能再解释下  是x86系统下固定内存页的大小为4kB吗?我感觉那原文中说的就好像是固定的啊?   还是说我们能改  不好意思 因为没那么多时间看计算机组成原理    所以才来问 希望有看过的童鞋可以帮帮忙。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-19 02:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表