gpt4 book ai didi

c# - 方法的最后一条指令可能的操作码是什么?

转载 作者:太空狗 更新时间:2023-10-29 21:54:57 25 4
gpt4 key购买 nike

在 .net 中,有哪些可能的 OpCodes 可以作为方法的最后一条指令存在。

目前我知道可以

但它有可能是任何其他操作码吗?如果是这样,什么代码(最好是 c#)会生成它们?

“最后”是指“方法体中定义的最终 OpCode”

最佳答案

如果throw 可以是方法中的最后一个操作码,那么很可能是jmp。也有资格。

此外,如果我们考虑退出条件不在末尾的递归方法, 最后的操作码 可能call。或 tail.call而不是 ret

更新:嗯,不,不会。正如 Marc Gravell 在他的评论中正确指出的那样,tail.call 的文档说:

The stack must be empty except for the arguments being transferred by the following call. The instruction following the call instruction must be a ret.

更新 2: 无条件分支操作码,如 brbr.s也可能是方法的最后指令,如果它的退出点出现得更早(再次感谢 Marc)。

关于c# - 方法的最后一条指令可能的操作码是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11698274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com