何故, LSTファイルはこんなに乱雑なのですか?
LST"ファイル(リスト・ファイル)は、Cソースコードからアセンブラー・コードを生成しその結果をファイルにしています。
それぞれのCソース行ごとにコンパイラーが生成したアセンブラー・コードが書き込まれます。但し、以下の3つの場合には注意が必要です。
これらは特別な場合で、.LSTファイルは、本来、大変使いやすく有効なファイルです。
       1. プログラムの先頭近くに実行可能なソースが無いのにアセンブラ・コードが書き込まれることがあります。
       コンパイラーにより作成されたコードのあるものは特定のソース行には対応しません。これは、コンパイラーにより作成されたコードのある種のものが特定のソース行に対応しないためです。コンパイラーはこのようなコードをプログラムの先頭近くに置くか、#USE行に対応するサブルーチンを置きます。
       2. アドレスが範囲をオーバーした場合
       コンパイラーはCソース・コードの順番で .LSTファイルを作成します。
リンカーは、関数がコードページ内又はコードページの半分に入るようにコードを再配置します。
結果としてコードはソース順とはなりません。コンパイラは .LST ファイル中に不連続があるときはファイルの中に*行を置きます。これは関数及びインライン関数がコールされる場所でしばしば見られます。インライン関数の場合、アドレスはインライン関数のソースが置かれた順序となります。
       3. コンパイラが再三同じインストラクションを生成する場合。  
       このようなコードは、関数が一つのインライン関数であるときに一つ以上の場所からコールされ
るときにみられます。上記のケースでは、A=0の行は一つのインライン関数で、4つの場所からコールされています。関数がコールされるたびに、コードのコピーが作成されます。
コードの各インスタンスは元のソース行に沿って示され、結果としてアドレスまで異常に見えるかもしれないので、* が付けられます。
      
例えば:
      ...........A=0;
03F: CLRF 15 *
46: CLRF 15 *
051: CLRF 15 *
113: CLRF 15
      
