如果我调用一个函数,我可以在该函数中使用jmp
命令返回到不同函数的一部分吗?也就是说,此代码是否有效:
testfunction PROC
jmp jumppoint
ret
testfunction ENDP
main PROC
jumppoint:
call testfunction
main ENDP
END
如果这是有效的,它应该产生无限循环。是/否?
答案 0 :(得分:2)
如果通过'有效'你的意思是汇编程序允许你这样做,答案是肯定的。它将引入一种无限循环;但是,由于call
指令会在每次执行时在堆栈(返回地址)上放置其他信息,最终堆栈将溢出并且程序将崩溃(如果您在实模式下运行,则可能不会崩溃)。
答案 1 :(得分:0)
它似乎是有效的,它会产生一个无限循环,为什么不运行它,看看你是否正确?
当然,堆栈会过度关注,因为它是有限的0xFFFFFFFF
>= esp
> 0