生成コードを変更するオプション

オプション 既定値 説明
-as、-am、-ac、-al -as メモリ モデルを指定します。-as は small、-am は medium、-ac は compact、-al は large モデルを指定します。
-emul 0 浮動小数点演算エミュレータを使用します。
このオプションで生成したコードは、低速ですが、浮動小数点演算コプロセッサ (FPU) が実装されていないマシンでも実行できます。

浮動小数点演算を使用しないプログラムでは、このオプションは指定しないことをお勧めします。エミュレータのコードがリンクされないため、その方がプログラムが小さくなります。

-stk:n   追加スタック サイズを 10 進数で指定します。リンカ Lil.exe の -tsd オプションに相当します。既定のスタック サイズは、4096 バイトです。このオプションを指定すると、4096 + n バイトのスタックが確保されます。ライブラリ ファイル start.asm を編集すれば、既定のスタック サイズを変更できます。
-alignloc:n 2 スタック上に作成される局所変数のアライン サイズを指定します。たとえば、既定値の 2 では、2 バイト以上のデータは必ず 2 で割り切れるアドレスに配置されます。
-alignst:n 2 構造体メンバのアライン サイズを指定します。アライン方法は、上の -alignloc と同様です。
-csp 0 コード セグメントのアラインを word (2B) ではなく para (16B) にします。
-pad:n 0 -alignst によるアラインで生じた隙間を埋めるバイトを指定します。0 〜 255 を指定します。
-evall 0 二項演算のオペランドをできるだけ左から評価します。→ 演算子
-evalr 0 二項演算のオペランドをできるだけ右から評価します。
-segn:seg:name   セグメント名を指定します。seg には、code、data、const、bss、stack のいずれかを指定します。[KC160]
-segfn:seg:name   FAR セグメントの名前を指定します。seg には、code、data、const、bss、stack のいずれかを指定します。[KC160]
-segc:seg:name   セグメント クラス名を指定します。[KC160]
-segfc:seg:name   FAR セグメントのクラス名を指定します。[KC160]
-segfv 0 far セグメントのコンバイン属性を public ではなく private にします。これにより、同じ名前の far セグメントが連結されなくなります。同じ名前の far セグメントが連結され、サイズ 64 KB を超えてエラーが発生する場合は、このオプションが役立ちます。[KC160]
-sjt 1 大きな switch 文をコード化するとき、ジャンプテーブルを使用します。これにより、生成コードが高速化され、コード サイズが減少します。
-lss 0 スタック上の局所変数にアクセスする際、既定の DS ではなく SS レジスタを使用します (-al、-ac 指定時)。スタック切り替えを伴うプログラムのためのオプションです。プログラムの実行速度は低下します。

ライブラリ関数を使用する場合は、そのライブラリ関数をこのオプションで再コンパイルする必要があります。また、アセンブラで書かれているライブラリ関数の一部 (_eml_mul 等) は、このオプションに対応していません。