★各種デバッガは種類が多いですから、それぞれマニュアルを参照すること (DEBUG, SYMDEB+MAPSYM, Codeview etc...) ★MASM MASM [スイッチ] [.ASM], [.OBJ], [.LST], [.CRF] (MASM 3.xまでは以下のような使用方法でも可能) MASM [.ASM] [アセンブラ用スイッチ], [.OBJ], [.LST] [リスト用スイッチ], [.CRF] ; を挿入するとそれ以降はデフォルト. 例 MASM hoge.asm, hoge.obj; →hoge.asmをhoge.objに変換、LST,CRFは作成しない アセンブラ用スイッチ /A ●セグメントをアルファベット順に整列して出力 /E ●浮動小数点演算で86エミュレートコードを作成 /ML ●名前に大文字小文字の区別をつける /MX ●パブリックと外部名に大文字小文字の区別をつける /R ●浮動小数点演算で87用コードを作成 リスト用スイッチ /D パス1リストを作成(デフォルトではパス2リストのみ) /O リストファイルを8進数で出力する /X 偽条件ブロックのリスト出力を抑止 スイッチ /B(1-63) ★ファイルバッファサイズを1k - 63kの間に設定 /C ★クロスリファレンスファイルを作成 /L ★アセンブルリストを作成 /D(symbol) ★条件付きディレクティブの定義 /I [path] ★INCLUDEディレクティブで定義したファイル用のサーチパス設定 /N ★シンボルテーブルリストの出力を禁止 /P ★286プロテクトモードで問題を発生させる可能性があるかチェック /T ★エラーがあった場合のみメッセージを出力する /V ★アセンブル処理後に統計情報を表示する /Z ★エラーの検出されたソースラインを表示する 無 - MASM 1.20で利用可能 ● - MASM 3.00での追加オプション ★ - MASM 4.00での追加オプション ★CREF CREF [.CRF], [.LST] .LSTを"CON:"とするとスクリーン表示、"PRN:"とすると印刷 ★LIB LIB [.LIB] [/PAGESIZE:n] [コマンド], [リストファイル名,出力ファイル名] 応答ファイルを@の頭文字で指定可能 応答ファイルは 1行目: 入力ライブラリファイル名(/PAGESIZE:n) 2行目: コマンド 3行目: リストファイル名 4行目: 出力ライブラリファイル名 ; 対応, 1行で収まらない場合は & を使う /PAGESIZEは2のn乗の数を指定する コマンドはオブジェくトファイルに以下の頭文字をつける + 追加 - 削除 -+ 置換 * コピー -* 移動 例 LIB math +sin -sinc -+cos; math.libに sin.obj追加, sinc.obj削除, cos.objを更新 LIB math *cos; math.lib内のcos.objをコピーしてcos.objを出力 LIB math -*cos; math.lib内のcos.objをコピーしてcos.objを出力 さらにmath.lib内のcos.objを削除する ★LINK LINK [スイッチ] [.OBJ], [.EXE], [.MAP], [.LIB] (LINK 3.xまでは以下のような使用方法でも可能) LINK [.OBJ][オブジェクト用スイッチ], [.EXE], [.MAP][マップ用スイッチ], [.LIB] ; を挿入するとそれ以降はデフォルト. OBJは + を使う事で連結可能 LINK hoge1 + hoge2 + hoge3, hogehoge; OBJは応答ファイルを@の頭文字で指定する事が可能 例LINK @hogelink 応答ファイルは 1行目: オブジェクトファイル(スイッチ) 2行目: 出力ファイル名 3行目: マップファイル名(スイッチ) 4行目: ライブラリファイル名 ; 対応, 1行で収まらない場合は + を使う オブジェクト用スイッチ 数字は、8進数は0から、16進数は0xという頭文字をつける ●/C:[number] or /CPARMAXALLOC - 最大割り当てスペースの設定 (1-65535) /D or /DSALLOCATE - DGROUPの処理を逆にする ※バージョンによって省略形が/DSになっていることがあります。 ●/DO or /DOSSEG - DOSのセグメント配列を利用 /H or /HIGH - プログラム開始アドレスをできるだけ高いアドレスに設定 /LI or /LINENUMBERS - 各ソース行の開始アドレスをリスト /NO - デフォルトのライブラリ検索を行わない (LINK 3.00以降は利用不可) ●/NOD or /NODEFAULTLIBRARYSEARCH - 省略時のライブラリを無視 ●/NOG or /NOGROUPASSOCIATION - データ・コード項目にグループを割り当てる際、グループ関連を無視する ●/NOI or /NOIGNORCASE - シンボル名の大文字小文字を区別 ●/O:[number] or /OVERLAYINTERRUPT - オーバーレイローディングルーチンの割当設定(0-255) デフォルトの03FHは無効 /P or /PAUSE - .EXEを出力する前に停止 (ディスク交換用) ●/SE:[number] or /SEGMENTS - 最大のセグメント数を設定 /ST:[number] or /STACK - スタックサイズの設定 (1-65535) マップ用スイッチ /M (/MAP) - パブリックシンボルマップを作成 無 - LINK 2.20で利用可能 ● - LINK 3.00での追加オプション ★EXE2BIN EXE2BIN [.EXE] [.BIN] MS-DOSのコンポーネントの一部ですが、よく使うので掲載。 .BINは一般的に拡張子.COMで利用する プログラムの開始アドレスがEND疑似命令によって定義されていない場合、セグメントの指定を要求される ★MAKE MAKE [メイクファイル] メイクファイルは以下のように書く hoge.obj: hoge.asm MASM hoge, hoge; hoge2.obj: hoge2.asm MASM hoge2, hoge2, hoge2, hoge2; hoge2.ref: hoge2.crf CREF hoge2, hoge2 hoge.exe: hoge.obj hoge2.obj \lib\fuga.lib LINK hoge+hoge2, hoge, hoge/map, \lib\fuga; hoge.sym: hoge.map MAPSYM -l hoge.map ★EXEPACK EXEPACK [入力.EXE] [出力.EXE] ★EXEMOD EXEMOD [入力.EXE] [/STACK HEX] [/MIN HEX] [/MAX HEX] スタックサイズ、アロケーション最小値、アロケーション最大値は全てHEXで指定します。