-1

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

testfunction PROC
    jmp jumppoint
    ret
testfunction ENDP


main PROC
jumppoint:
    call testfunction
main ENDP
END

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

4

2 回答 2

2

如果你所说的“有效”是指汇编程序会让你这样做,答案是肯定的。它将引入一种无限循环;但是,由于call指令每次执行时都会在堆栈上放置额外的信息(返回地址),最终堆栈会溢出,程序会崩溃(如果您在实模式下运行,可能不会)。

于 2012-04-17T05:47:26.267 回答
0

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

当然堆栈会溢出,因为它是有限的0xFFFFFFFF >= esp > 0

于 2012-04-17T05:47:46.273 回答