## 第6章　エラー一覧

M86Kが検出するエラーには、致命的なエラー、エラー、警告の3つのレベルがあります。致命的なエラーが検出された場合、M86Kはその時点で即時に実行を中止します。「作業用バッファが不足している」などの問題がこのレベルに該当します。これに対してエラーが検出された場合には、その時点で実行中のパス（パス1またはパス2）が完了した時点で実行を中止します。いわゆる「文法エラー」がこれにあたります。さらに警告の場合には、オペランドの値が許されている範囲を越えている、といった一概にはエラーといえないレベルの問題であるため、M86Kは実行を中止しません。

致命的なエラーが検出された場合、M86Kは出力するように指示されているすべてのファイルを生成しません。これに対してパス1でエラーが検出された場合には、出力するように指示されているすべてのファイルを生成しませんが、パス2で検出された場合にはリストファイルだけは生成します（生成することを指定されていた場合）。次にエラー表示の書式を示します。

>     filename(linenumber): source line
>     error message

#### 例

>     sample.asm(54):   LD     xyz
>     xyz: undefine symbol

シンボルxyzは未定義です。

### 6-1　警告

M86Kが検出する可能性のある警告レベルのメッセージとその意味を次に示します。なお、メッセージ中の???は、場合によって変わる部分を表します。

#### ???：ビット number exceeds limits

ビット操作命令において、操作対象ビットの指定が許される範囲を越えています。

#### absolute expression expected

アセンブル時点で値が確定するような式が必要です。

#### address beyond zero

ORG命令のオペランドにおいて、指定された値が負です。

#### address exceeds limits

ORG命令のオペランドにおいて、指定された値がROMの容量を越えています。

#### address exceeds ROM size

アセンブルされた命令のアドレスがROMの容量を越えました。

#### chip name is different from one specified by CHIPNAME （???）.

CHIP命令のオペランドが環境変数で指定されているものと食い違っています。

#### END in included file

INCLUDE疑似命令にて指定されたソースファイル中にEND疑似命令が現れました。

#### ENDF without FUNCTION

ファンクションの定義中でないのにENDFが現われました。

#### ENDM without MACRO

マクロの定義中でないのにENDMが現われました。

#### EXITM outside MACRO

マクロの定義中でないのにEXITMが現われました。

#### function code buffer overflow

ファンクション定義の内容が大き過ぎてバッファに入りません。

#### illegal combination of attributes：???

2項演算子の両辺の属性（帰属するバンクやセグメント）が一致しません。

#### illegal style expression

SETまたはEQUのオペランドの式が不当な形式です。

#### JMP/CALL placed at the end of memory block （FREE）

アドレスの下位12ビットが0FFEHまたは0FFFHの時にJMPまたはCALL命令が現われました。セグメントの配置モードが「FREE」のためリンクの結果によっては問題ない場合もありますが、当該セグメントがメモリバウンダリの先頭から配置された場合はリンカでエラーとなります。

#### Jump address is out of range （FREE）

ジャンプ先のアドレスがメモリバウンダリの外にあります。セグメントの配置モードが「FREE」のためリンクの結果によっては問題ない場合もありますが、当該セグメントがメモリバウンダリの先頭から配置された場合はリンカでエラーとなります。

#### LOCAL outside MACRO

マクロの定義中でないのにLOCALが現われました。

#### macro name in expression

演算式中にマクロとして登録されているシンボルが現われました。

#### macro name required

マクロの定義にもかかわらずマクロの名前がありません。

#### no character in string

文字列定数中に文字が見当たりません。

#### page width must be 72 ~ 132：???

WIDTH命令のオペランドは72以上132以下でなければなりません。

#### public ??? not defined

パブリック宣言されているシンボルの値が定義されていません。

#### SET conflicts with PUBLIC

ハブリック宣言されたシンボルにSETを使って値を再設定しようとしています。

#### symbol name required

PUBLIC，EXTERN，OTHER_SIDE_SYMBOLのオペランドにシンボルがありません。

#### undefined symbol in expression

演算式の中に未定義シンボルがあります（パス2でのみ検出されます）。

#### value is out of range

値が許される範囲にありません（「許される範囲」はオペランドによって変わります）。

#### zero divide：??? modulo 0

演算子MODの右辺が0です。

#### zero divied：??? / 0

演算子／の右辺が0です。

[←] | [INDEX] | [→]