gpt4 book ai didi

c# - ldc.i4.x 和 ldc.i4 x 指令是否可以互换并且在语义上相同?

转载 作者:行者123 更新时间:2023-11-30 15:02:12 27 4
gpt4 key购买 nike

CIL中有ldc.i4.0ldc.i4.1ldc.i4.2等加载指令, ldc.i4.3 ...

我想知道,是否可以使用 ldc.i4 1 而不是 ldc.i4.1ldc.i4 5 而不是ldc.i4.5

最佳答案

是的,使用 ldc.i4 1 代替 ldc.i4.1 是完全合法的。在最常见的情况下,为了效率和简洁给出了单字节操作码。特别是,所有这些 ldarg.0(1 字节)如果它们是 ldarg 0,将很快显着增加程序集的大小(3 个字节),就像 i++ 中的 ldc.i4.1 一样; ldc.i4 1 是 5 个字节而不是 1 个。

您没有义务使用它们。实际上,我期望(未经测试)JIT 发现更冗长的用法并以同样的方式对待它,尽管不需要这样做。

就我个人而言,当我进行“发射”或类似操作时,我只是使用实用方法为任何给定值/局部/参数等发射最合适代码。

关于c# - ldc.i4.x 和 ldc.i4 x 指令是否可以互换并且在语义上相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12895020/

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