据我所知,函数内部的局部变量是分配在栈空间里的,也就是在call指令将函数的返回地址压入之后,如若函数内部定义了若干局部变量,那ret指令是怎样找到返回地址的地址啊?小弟猜测就是在编译的时候,编译器在每次函数调用时,都记录了函数的返回地址的地址,然后在函数执行完成之后,ret指令有一部分就是jmp 返回地址的栈地址 这一条指令,从而实现函数返回,这仅是小弟的猜想,望大虾细心讲解一下,感激不尽!
暮色呼如
千巷猫影
相关分类