大榕树——让我们共成长!
大榕树 myDrs.org
您的位置:大榕树 \ 编程       |  Logo语言   |  Pascal语言   |  信息学奥赛   |  高考保送    |  HTML版本
|  Pascal语言>>算法与技巧>>编译模式         本站全文搜索: 友情提示:

编译模式
http://www.mydrs.org  6/11/2001  大榕树



·编译模式

  在Pascal的IDE下,打开菜单Compile,选择项目Target,会弹出一个窗口,有三种选择:Real mode Application、Protected mode Application和Windows Application。这其实就是选择程序(或单元)的编译模式,分别对应的编译模式为:DOS实模式、保护模式和Windows模式。

  选择不同的编译模式编译程序或单元,会生成不同类型的程序,运行在不同的环境中,使用相应模式的单元。不同编译模式的程序可以使用的标准单元有所不同;即使是同一个单元,在不同的编译模式下,代码也可能略有不同。

  用不同的编译模式编译程序是BP7比BP6新增的一项重要功能。

·不同的编译模式

·DOS实模式(Real mode)

  这是默认的编译模式,TP7和其以前的版本都是使用这种编译模式的。程序运行在DOS实模式环境中,只能使用最大640KB的常规内存,速度较快,生成代码较短。DOS实模式的单元文件扩展名为.tpu;

·保护模式(Protected mode)

  DOS是一个实模式的操作系统,只能管理640KB的常规内存,对于拥有数十至数百MB的扩充内存则无法访问。为了弥补DOS的这个缺陷,各大计算机公司联合制定了一个叫做“DOS保护模式界面”(DPMI)的协定,以规范保护模式下程序的运行。DPMI是对DOS的扩展。在DPMI协议之下,DOS应用程序可以访问计算机的所有内存。而Pascal的保护模式,就是使用这个规范的的一种编译模式。

  程序运行在DOS保护模式环境中,能使用扩充内存,速度略有下降,不能调试。生成的EXE文件有时需要把Pascal的附带文件rtm.exe复制到同一目录下才能运行。保护模式的单元文件扩展名为.tpp;

  在保护模式下,System单元有两个Word类型变量:HeapBlock和HeapLimit。它们影响程序使用扩充内存的性能。如果使用默认值,即不对其进行修改,不能充分利用扩充内存,经常只能使用到总内存的一半。我经过多次试验,发现把它们都赋值为64000时,较能充分利用扩充内存。

·Windows模式(Windows)

  这是用以编写Windows 3.x应用程序的编译模式,我觉得没什么用,现在Pascal程序员编写Windows程序都用Delphi了。Windows模式的单元文件扩展名为.tpw。

·编写适应不同编译模式的程序

  在不同的编译模式下,标准单元的代码有所不同。要编写适应不同编译模式的程序,就要使程序在不同的编译模式下生成不同的代码。这需要用到条件编译注释。

  例如,如果在程序的一部分中,当使用实模式编译时用代码A,使用保护模式编译时用代码B,就可以这样编写:

{$IFDEF MSDOS}
A
{$ENDIF}
{$IFDEF DPMI}
B
{$ENDIF}


作 者:陈世熹
来 源:http://xpascal.yeah.net/
共有2246位读者阅读过此文

  • 上篇文章设置正文文件缓冲区
  • 下篇文章编译指示

  • 发送邮件
    保存页面 打印文章 HTML版本 发表评论

    □- 近期热门文章 □- 相关文章
    1. NOIP2006竞赛大纲 [8306]
    2. 七类高中生具有保送资格 [5910]
    3. NOI2006获奖选手名单 [4955]
    4. 关于举办NOIP2006模拟赛的通告 [4106]
    5. Turbo Pascal各语句运行速... [3594]
    6. Turbo王者归来新Delphi免费... [3181]
    7. IOI2006我国4名选手全部获得金... [2945]
    8. 关于APIO2007与IOI2007... [2763]
    9. noip倒计时 by 枯叶蝴蝶 [2683]
    10. 朱泽园:思想上的金牌更重要 [2168]
    常见编译参数和编译指示及优化
    关于fillchar的使用和讨论
    Turbo Pascal 7 安装版
    编译开关的使用介绍
    Pascal运行错误对照表
    Pascal编译错误对照表
    条件编译指示表
    常用参数编译指示表
    [推荐]TP7crt单元补丁
    Turbo Pascal 7.0
     

    关于本站 | 合作伙伴 | 联系方式
    大榕树 版权所有 ©1999-2006 www.myDrs.org 闽ICP备05000721号