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より大きな値をセットしようとしているため、ワーニングが表示されます。
関連記事
コメントを残す