flat

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 07:58:57
flat
xmU[OW+J+x@HmJS> rSRڅۚ[ 6֦l/9_9$?Ι7|3^yt즘o 8-8\97gr} zx~ӟ򻿕˯n{i!͛P"+Byښ[7\':M{ Dn dcw`&YF@>p5g]&[ ^}

flat
flat

flat
★flat 内存系统的意思:平面内存模式或平坦内存模型(Flat memory Model)
平面内存模式 (flat memory model)
是一种组织 内存 寻址空间的方式.一个用本地32位Windows格式写成的程序是由所谓“平坦内存模型”创建的,它只有一个包含代码和数据的段.这个程序必须在386或更高的处理器上运行.早期的16位代码,由段和偏移地址混合达到寻址64k(段的限制).与此不同的是,平坦内存模型只需要偏移量却有4G的寻址范围.这使得汇编更容易书写,而代码总得来说也将快一点.
在这种模式下,一个电脑的应用程序最多使用两个内存区段,一个是给程序码使用,另外一个是资料.此外,同样的区段也可以用量同时给程序码或是资料使用,但这是不必要的,因为只有对于自我更改程序码 的程序才有用处,但这种程序设计风格 现今被视为一种很不好的方法.
平面内存模型的优点
应用程序在存取他们的资料时候不需要切换不同的区段.然而,在 16 位元的 Intel 8086 和 80286 中,这种方式是不可行的,因为应用程序无法存取超过 64 KB 的资料.在 32 位元的芯片,应用程序可以存取最大到 4 GB 的资料.但这也变成现在大的数据库以及像是影片编辑应用程序的问题.
在这种平坦内存模型下,所有的段寄存器都被自动设为相同的值,而这意味着段/偏移寻址方式一定不能用于在32位Windows上运行的32位程序.
对于曾经在DOS下写程序的程序员来讲,一个32位的Windows PE可执行文件就像一个DOS下的COM文件,它们仅有一个包含程序代码和数据的段,而它们都直接用偏移地址,而不是段/偏移寻址方式.平坦模型程序是近(NEAR)代码寻址以及近数据寻址,都是在4G的范围之内.
FS和GS段寄存器不在普通的程序中用到,但却被操作系统的某些程序实例所利用.