为什么不能使用"跳转和链接"和"跳转寄存器"进行递归?

MBD*_*MBD 3 assembly

希望这是我的问题的正确位置.为什么不可能使用这两个指令递归调用子例程?

提前致谢!

fuz*_*fuz 5

如果您"跳转并链接",则返回地址存储在寄存器中.如果再次"跳转并链接",则返回地址将被新的地址覆盖,从而破坏原始返回地址并阻止调用者返回.

您可以在递归函数(或任何调用其他函数的函数)中使用"跳转和链接",但是您必须手动将链接寄存器的内容保存到堆栈中.