UID 1
精华
积分 76361
威望 点
宅币 个
贡献 次
宅之契约 份
最后登录 1970-1-1
在线时间 小时
OpenWatcom是一款DOS时代就有的C语言编译器,比起Turbo C++ 3.0来,OpenWatcom 1.9作为一款C语言编译器在DOS下的表现令人满意,虽然编译速度稍慢,但是优化做得非常好。它能自动将短函数进行内联处理,根据情况可以省略一些函数的栈帧,同时根据需求的处理器平台进行指令集优化和浮点指令集优化。编译出来的C语言程序和Turbo C++ 3.0编译出来的程序相比有明显的速度提升。
OpenWatcom官网:
www.openwatcom.org
现在OpenWatcom能运行的平台有:DOS,Linux,OS/2,Windows
它能编译的目标平台有:DOS(纯16位实模式,或者32位保护模式),Linux,OS/2,Windows
你可以通过设置编译命令开关来指定你要面向的目标处理器平台,比如8086、286、386、486、586等。可以编译为各种中间文件格式,比如DOS的obj、Linux的elf以及MSVC的COFF,甚至还能编译出RAW——你甚至可以使用它编译MBR或者DBR指令。
优化的方式也很多,比如根据用户函数的尺寸进行内联处理,按情况省略栈帧,进行循环优化和循环展开优化,对数学函数进行内联处理(比如将sqrt函数直接编译成fsqrt指令等),根据流水线需求将指令位置进行调整等。
用户还能根据自己的需求对每个段的段名、段组、各个段寄存器的使用方式等进行调整,以迎合特殊需求。支持的调用约定也十分多,从最基本的_cdecl到_stdcall、_fastcall、_pascal、_fortran、_syscall等都有支持。由此可见你可以使用它编写多种语言组合的程序。它自己使用的调用约定是_watcall。
编译产生的obj还能根据需求插入精确到行的调试信息。对于浮点数的支持,从模拟浮点数,到286、386、486、586等各个平台针对的浮点数处理方式优化,再到混合模拟浮点数与高级CPU浮点数指令的混合做到既能用上高级浮点数又能兼容低级处理器的特殊浮点数优化方式,可以保证程序的兼容性达到很高的值。
目前我使用过的DOS下的C语言编译器有Turbo C++ 3.0,OpenWatcom 1.9,DJGPP。其中的DJGPP其实是编译成32位指令。它并不能产生8086实模式指令。因此不能用于操作系统的编写。不过随着UEFI引导模式的普及,也许对16位指令集的支持将不再需要了吧。
FTP页面:
ftp://ftp.openwatcom.org/
下载地址:
ftp://ftp.openwatcom.org/open-watcom-c-dos-1.9.exe
如果速度慢可以访问这个地址:
http://mirrors.go-parts.com/openwatcom//open-watcom-c-dos-1.9.exe
论坛备用下载地址:
链接:http://pan.baidu.com/s/1o6wXSCE (访问密码:w5fn)