差分

Operating Details

119 バイト追加, 2018年5月11日 (金) 16:33
操作の詳細
;-CPM:<ref>これはZ80クロスコンパイラ用のみで、CP/M-80のCOMファイルを生成します。-CPMオプションが無ければ、Z80クロスコンパイラはROMランタイムスタートオフモジュールを使用し、hexもしくはバイナリイメージを生成します。-CPMオプションが与えられると、CP/M-80ランタイムスタートオフコードがリンクされ、CP/M-80のCOMファイルが生成されます。</ref>
;-O
;-O<strong>OUTFILE</strong>
:実行ファイルが作成されるように名前を指定します。デフォルトの実行ファイル名は、コンパイラに指定された最初のソース、もしくはオブジェクトファイルから派生します。このオプションはデフォルトを上書きできます。もしドット('.')が、与えられたファイル名にない場合、拡張子は特定のオペレーティングシステムに応じて付加されます。例えばが、与えられたファイル名にない場合、拡張子は特定のオペレーティングシステムに応じて付加されます。<ref>例えば-O<strong>FRED</strong>は、MS-DOSでは<strong>FRED.EXE</strong>、CP/M-86では<strong>FRED.CMD</strong>となります。</ref>
:クロスコンパイラでは、特定の出力フォーマットを指定する方法を提供する方法となります。つまり、出力ファイル<strong>PROG.BIN</strong>はバイナリファイルを、一方で、<strong>PROG.HEX</strong>は16進数のファイルを生成させることになります。
;-I
:<nowiki>#include</nowiki>用に検索対象のファイルを追加するプレフィックス指定をします。CP/Mではデフォルトのプレフィックスは0:A:(ユーザー番号0、ディスクドライブA)です。MSです。<ref>MS-DOSのデフォルトプレフィクスはA:\HITECH\です。UnixやXenixではデフォルトプレフィックスは/usr/hitech/include/です。MS-DOSではディレクトリ名の最後にバックスラッシュをつけて-Iの引数として与える必要があります。-I\FREDではなく-I\FRED\のようにします。Unixでは最後に/を付ける必要があります。</ref>
:クロスコンパイラではリンカに対して、コンパイルされるプログラムがどこのアドレスでリンクされるかを指定する方法があります。そのオプションが -A<strong>ROMADR,RAMADR,RAMSIZE</strong>です。<strong>ROMADR</strong>はシステムのROMのアドレスで、実行可能なデータや初期化データが置かれます。<strong>RAMADR</strong>はRAMの開始アドレスで、BSS PSECTなど、初期化されないデータが置かれます。<strong>RAMSIZE</strong>はプログラムが取ることのできるRAMのサイズで、スタックのトップがセットされます。
:6801/6301/68HC11コンパイラでは、-Aオプションが4番目の数値を取り、ctempと呼ばれる4バイトダイレクトページエリアのアドレスが、スクラッチパッドとしてコードにコンパイルされます??もしctempアドレスが-Aオプションから省略された場合、デフォルトは0になります。普通はこれが許容されますが、6801の変種(6303のような)は、メモリマップトI/Oポートをアドレス0に、ダイレクトページRAMをアドレス$80に持ちます。
<ref>6801/6301/68HC11コンパイラでは、-Aオプションが4番目の数値を取り、ctempと呼ばれる4バイトダイレクトページエリアのアドレスが、スクラッチパッドとしてコードにコンパイルされます??もしctempアドレスが-Aオプションから省略された場合、デフォルトは0になります。普通はこれが許容されますが、6801の変種(6303のような)は、メモリマップトI/Oポートをアドレス0に、ダイレクトページRAMをアドレス$80に持ちます。</ref>
:<ref>8051コンパイラのlargeメモリモデル用に-Aオプションは-A<strong>ROMADR,INTRAM,EXTRAM,EXTSIZE</strong>のような形式を取ります。<strong>ROMADR</strong>はシステム内のROMです。<strong>INTRAM</strong>は内部RAMのスタートアドレスです。RBSS PSECTが置かれます。8051内部スタックはRBSS PSECTの末尾から始まります。<strong>EXTRAM</strong>は外部RAMのスタートアドレスです。BSS PSECTが置かれます。<strong>EXTSIZE</strong>はプログラム内が取れる外部RAMのスタートアドレスです。外部スタックのトップに置かれます。</ref>
;-B:<ref>1つ以上の"メモリモデル"をサポートしているコンパイラ用に、どのメモリモデル用のコードを生成するか選択するためにこのオプションが使われます。-Bxのオプションのxは、使用するメモリモデルを指定する1つかそれ以上の文字です。8086用では、このオプションは5つのメモリモデル(Tiny, Small, Medium, Compact, Large)が選択できます。8051用コンパイラでは、3つの(Small, Medium, Large)メモリモデルが選択できます。8051専用で、このオプションはまた、-Bオプションの最後にAをつけることで<strong>auto</strong>変数のスタティック配置ができます。例えば、-Bsaはsmallモデルを選択すると共に全ての変数をスタティック配置しますが、-Bmはmediumモデルを選択すると共にスタティックに<strong>auto</strong>変数をダイナミックに配置します。</ref>
:8051用コンパイラでは、3つの(Small, Medium, Large)メモリモデルが選択できます。8051専用で、このオプションはまた、-Bオプションの最後にAをつけることで<strong>auto</strong>変数のスタティック配置ができます。例えば、-Bsaはsmallモデルを選択すると共に全ての変数をスタティック配置しますが、-Bmはmediumモデルを選択すると共にスタティックに<strong>auto</strong>変数をダイナミックに配置します。
 
 
 
;-E
:デフォルトでは8086コンパイラは実行時に64kデータセグメントを要求するため?実行ファイルのヘッダを初期化します。これは-Eオプションでオーバーライドが可能です。これは起動時にプログラムに配置される(パラグラフでない)数BYTEの引数を(普通は16進数表現で)取ります。例えば-E0ffff0hはメガバイトをリクエストします。オペレーティングシステムが可能な限り以上はできません??
;-E<ref>デフォルトでは8086コンパイラは実行時に64kデータセグメントを要求するため?実行ファイルのヘッダを初期化します。これは-Eオプションでオーバーライドが可能です。これは起動時にプログラムに配置される(パラグラフでない)数BYTEの引数を(普通は16進数表現で)取ります。例えば-E0ffff0hはメガバイトをリクエストします。オペレーティングシステムが可能な限り以上はできません??</ref>
:-Gも-Hのようにシンボルファイルを生成しますが、ソースレベルデバッガ用に行とファイル番号情報を含むものです。-Hのように、ファイル名は指定できます。-Oと共に連結して使われた場合、デバッガが混乱しないように、部分的な最適化が実行されます。
;-P:<ref>実行プロファイルはDOS、CP/M-86、Atari STのネイティブコンパイラで使用可能です。このオプションはプログラム実行時にプロファイリングを実行します。-HオプションはEPROFプロファイラー用シンボルテーブルを提供する時にも指定されなければなりません。</ref>
;-Z:<ref>バージョン5.xxのコンパイラ専用です。-Zオプションがコード生成のグローバル最適化を使用するために使われます???8086,6801/6301/68HC11コンパイラで有効な-Zオプションは-Zgのみです。8051コンパイラでは-Zオプションはグローバル最適化をする-Zgとスペースの最適化をする-Zsオプション、そしてスピードの最適化をする-Zfが有効です。sやfのオプションはfオプションと使われますので-Zgfや-Zgsが有効です。スピードやスペース最適化はとても排他的です。つまり、sとfのオプションは一緒には使えません。</ref>
;-1:<ref>8086コンパイラ専用です。80186プロセッサの拡張命令の優位なコードを生成する要求をします。-1オプションとともにコンパイルされたプログラムは8086や8088プロセッサでは実行できません。68000コンパイラでは68010プロセッサ用の命令を生成します。</ref>
;-2:<ref>-1と同様ですが、80286と68020用です。</ref>
;-11:<ref>6801/HCコンパイラ用です。このオプションは68HC11用の命令を生成するために使用します。</ref>
;-6301:<ref>6801/HC11コンパイラ用です。このオプションは6301/6303プロセッサ用の命令を生成するために使用します。</ref>
:Cコマンドのサンプルをいくつか挙げます。