***************Title: Flat memory Model****************
*************** 标题:平坦内存模型********************
*=================译自Tutor by Hutch==================*
*===Original:Collected and packed by dREAMtHEATER=====*
*======翻译:小桥 from QDU huasoft@163.com============*
*==================20020820 at home===================*
*******************************************************
之一:
平坦内存模型(Flat memory Model)
一个用本地32位Windows格式写成的程序是由所谓“平坦内存模型”创建的,它只有一个包含代码和数据的段。这个程序必须在386或更高的处理器上运行。
早期的16位代码,由段和偏移地址混合达到寻址64k(段的限制)。与此不同的是,平坦内存模型只需要偏移量却有4G的寻址范围。这使得汇编更容易书写,而代码总得来说也将快一点。
在这种平坦内存模型下,所有的段寄存器都被自动设为相同的值,而这意味着段/偏移寻址方式一定不能用于在32位Windows上运行的32位程序。
对于曾经在DOS下写程序的程序员来讲,一个32位的Windows PE可执行文件就像一个DOS下的COM文件,它们仅有一个包含程序代码和数据的段,而它们都直接用偏移地址,而不是段/偏移寻址方式。
平坦模型程序是近(NEAR)代码寻址以及近数据寻址,都是在4G的范围之内。
FS和GS段寄存器不在普通的程序中用到,但却被操作系统的某些程序实例所利用。
========================================================