- 298 名前:デフォルトの名無しさん [2009/04/03(金) 07:16:03 ]
- 質問です。PC-98のMS-DOS上でDJGPPとNASMとBorland C++ 3.1Jでプログラムを
組んでますが、たとえばHello, World!を作ってもDJGPP(GCC v4.3.2)では異常に 実行ファイルのサイズが肥大化します。動作もBCCでコンパイルしたものより 重いです。 DJGPPのFAQによると、「DJGPP(DOS版GCC)はメモリモデルにflatを用いており、 プロテクトモードで4GBまでのメモリを扱えるようにしています」とのことなんですが、 これが原因ですか?ちなみにHELLO.EXEを実行するにしても、DPMIサーバ(cwsdpmi.exe)が 必要という糞仕様です。開発マシンはPC-9801DA2(80386 20MHz + Cyrix 387コプロ; RAM 13.6MB; SCSI HDD 4.3GB; 緑電子SCSI-2ボード; NEC版MS-DOS 6.2)です。 HELLO.EXEのファイルサイズとコンパイル時間は BCC = 6.6KB ; コンパイル時間 = 5秒 DJGPP = 44KB ; コンパイル時間 = 2分近く NASM = 22Bytes ; コンパイル時間 = 3秒 (コンパイルオプションは、 A:\>bcc -ms -O2 hello.c A:\>gcc -Wall -O2 -s -fomit-frame-pointer -o hello.exe hello.c A:\>nasm -fbin -o hello.com hello.asm です) 異常な事態です。これはDJGPP(GCC)の仕様なんでしょうか!ご教示ください。 ちなみに同機能をDOSファンクションコールAH=09Hでフルアッセンブル実装した HELLO.COMはわずか22バイトですOrz K6-2 550MHz/64MB/18GBのX-Mateがあるんですが、 それでやっても処理系の差異は変わらないですよね?
|

|