Jmp从一个功能到另一个功能?

时间:2012-04-17 05:40:54

标签: assembly x86

如果我调用一个函数,我可以在该函数中使用jmp命令返回到不同函数的一部分吗?也就是说,此代码是否有效:

testfunction PROC
    jmp jumppoint
    ret
testfunction ENDP


main PROC
jumppoint:
    call testfunction
main ENDP
END

如果这是有效的,它应该产生无限循环。是/否?

2 个答案:

答案 0 :(得分:2)

如果通过'有效'你的意思是汇编程序允许你这样做,答案是肯定的。它将引入一种无限循环;但是,由于call指令会在每次执行时在堆栈(返回地址)上放置其他信息,最终堆栈将溢出并且程序将崩溃(如果您在实模式下运行,则可能不会崩溃)。

答案 1 :(得分:0)

它似乎是有效的,它会产生一个无限循环,为什么不运行它,看看你是否正确?

当然,堆栈会过度关注,因为它是有限的0xFFFFFFFF >= esp > 0