标签: assembly
希望这是我的问题的正确位置。为什么不能使用这两个指令 递归调用子程序?
提前致谢!
答案 0 :(得分:5)
如果您“跳转并链接”,则返回地址存储在寄存器中。如果再次“跳转并链接”,则返回地址将被新的覆盖,破坏原始返回地址并阻止调用者返回。
您可以在递归函数(或任何调用其他函数的函数)中使用“跳转和链接”,但是您必须手动将链接寄存器的内容保存到堆栈中。