我正在阅读维基百科上关于“尾递归”的文章:http://en.wikipedia.org/wiki/Tail_call
现在,在文章的结尾处,示例展示了使用堆栈指针来访问汇编伪代码中函数调用传递的参数。这不是错误的吗?我的意思是说,调用者应该使用帧指针而不是堆栈指针来访问参数对吗?
我正在阅读维基百科上关于“尾递归”的文章:http://en.wikipedia.org/wiki/Tail_call
现在,在文章的结尾处,示例展示了使用堆栈指针来访问汇编伪代码中函数调用传递的参数。这不是错误的吗?我的意思是说,调用者应该使用帧指针而不是堆栈指针来访问参数对吗?
在常见的ABI中,专用的帧指针寄存器是一种更受欢迎的调用约定,但是当纯粹为了说明目的时,使用不同(可能更简单)的调用约定并没有 intrinsically “wrong”(本质上“错误”)之处(将帧指针寄存器添加到这些代码片段中只会使它们稍微长一点,而且不会改变任何实质性的东西)。