关于汇编子程序执行流的疑问:Exit后为何执行printMessage?
斐波那契汇编代码中Exit子程序添加
ret的行为验证 - 我在Hack The Box学习汇编子程序时,碰到一段斐波那契相关代码,注释里说如果在Exit子程序末尾加
ret指令,程序会跳回printMessage的第一条指令执行。因为Exit已经是最后一个子程序,我一开始对这个说法存疑。 - 后续通过
gdb调试确认了这个现象:- 直接给Exit加
ret,程序确实会回到printMessage的起始指令运行; - 又做了个测试:把Exit里的
syscall删掉,只留ret,程序会触发printMessage的调用,但执行到ret时,由于rsp里没有有效的指令地址,程序直接终止。
- 直接给Exit加
内容的提问来源于stack exchange,提问作者Mohamed Taha
相关产品推荐
相关产品推荐

