2016-03-28 13 views
0
*Error: value xxx is out of range, valid values are between -128 and 127. 

すべてのコードでこのエラーが発生しています。jr cc、label(値が範囲外)を使用しているエラー

命令jr cc, labelこれを説明する:相対ジャンプの限られた範囲を有する

留意されたい。[-128、127] JR命令の次の命令の最初のバイトのアドレスから。

jrの後に指示nopを入れてみましたが、まだこのエラーがあります。

これはどういう仕組みかよく分かりません。もし誰かが私にもっと説明することができれば(または例を挙げて)それはすばらしいことになります。おかげ範囲の問題のうち

+1

ジャンプ先が多すぎます。条件ジャンプを逆にして、それを使用して、より長い範囲の無条件ジャンプをスキップします。 – Jester

+1

これはZ80と互換性のあるアーキテクチャですか?もしそうなら、余分なバイトを犠牲にして、無制限の分岐範囲に対して 'JR'の代わりに' JP'を試してください。 – doynax

答えて

0

絶対ジャンプ(JP)相対ジャンプ(JR)を変更することによって解決することができます。

ジャンプが現在のプログラムカウンタに相対的であるため、ジャンプ相対(JR)命令によりコードの再配置が容易になります。たとえば、RAM の機能は通常アセンブリで記述され、フラッシュからRAM に再配置されます。 命令は、ジャンプがフラッシュ位置になり、意図された RAM位置ではないため、この場合 の命令は機能しません。 JPの代わりにJRを使用すると、 のRAMロケーションにジャンプします。

関連する問題