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

我的所有代码中都出现了这个错误。

该指令jr cc, label解释了这一点:

请注意,相对跳转从 JR 指令之后的指令的第一个字节的地址开始具有 [-128, 127] 的有限范围。

我尝试将指令放在nop后面,jr但仍然出现此错误。

也许是我不太明白这是如何工作的。如果有人可以向我解释更多(或举例),那就太好了。谢谢

4

1 回答 1

0

超出范围问题可以通过将相对跳转 (jr)更改为绝对跳转 (jp)来解决。

跳转相对 (JR) 指令允许更轻松的代码重定位,因为跳转是相对于当前程序计数器的。例如,RAM 函数通常以汇编形式编写,并从闪存重新定位到 RAM。在这种情况下,跳转 (JP)指令将不起作用,因为跳转将指向闪存位置,而不是预期的 RAM 位置。使用JR而不是 JP 将跳转到预期的 RAM 位置

于 2017-04-05T03:59:52.230 回答