Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
*Error: value xxx is out of range, valid values are between -128 and 127.
我的所有代码中都出现了这个错误。
该指令jr cc, label解释了这一点:
jr cc, label
请注意,相对跳转从 JR 指令之后的指令的第一个字节的地址开始具有 [-128, 127] 的有限范围。
我尝试将指令放在nop后面,jr但仍然出现此错误。
nop
jr
也许是我不太明白这是如何工作的。如果有人可以向我解释更多(或举例),那就太好了。谢谢
超出范围问题可以通过将相对跳转 (jr)更改为绝对跳转 (jp)来解决。
跳转相对 (JR) 指令允许更轻松的代码重定位,因为跳转是相对于当前程序计数器的。例如,RAM 函数通常以汇编形式编写,并从闪存重新定位到 RAM。在这种情况下,跳转 (JP)指令将不起作用,因为跳转将指向闪存位置,而不是预期的 RAM 位置。使用JR而不是 JP 将跳转到预期的 RAM 位置。