[MPLAB]エラー”Argument out of range. Least significant bits used.”が出る時にチェックすべき事

MPLABでアセンブル時、Warning[202] Argument out of range. Least significant bits used.エラーが出る場合があります。
このワーニングは、セットした値を代入したとき代入先に値が入りきらないという警告です。


warningなのでhexファイルは作成されますが、値が意図したとおりセットされず、プログラムの動作は期待したものとは異なってしまうため、修正が必要です。


問題が発生する状況を分かりやすい例で言うと、以下のコードはWarning[202]が発生します。

    MOVLW   0x100



Wレジスタは8ビットなので最大で0xff(255)しか入らないにも関わらず、0x100(256)をセットしようとしているためです。


他に、勘違いしやすい例としては以下のコードが有ります。

    MOVLW   255



これは、10進の255をセットしようとしているのですが、MPLABはデフォルトでは基数を指定せずに数値を指定した場合は16進数と見なされるため、このコードは以下のように解釈されます。

    MOVLW   0x255



前述のNG例と同様,0xffより大きな値をセットしようとしているため、ワーニングが表示されます。

関連記事

コメントを残す

メールアドレスが公開されることはありません。