希望这是我提出问题的正确位置。为什么不能使用这两个指令 递归调用子例程?
提前致谢!
最佳答案
如果您“跳转并链接”,返回地址将存储在寄存器中。如果再次“跳转链接”,返回地址就会被新的地址覆盖,破坏原来的返回地址并阻止调用者返回。
您可以在递归函数(或任何调用其他函数的函数)中使用“跳转和链接”,但随后您必须手动将链接寄存器的内容保存到堆栈中。
关于assembly - 为什么不能使用 "jump and link"和 "jump register"进行递归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44166732/