【发布时间】:2016-05-19 08:32:37
【问题描述】:
今天我开始学习 CIL 代码的工作原理。
我找到了List of CIL instructions
现在我正在尝试编辑一个函数。
我正在使用带有 Reflexil 的 .NET Reflector
我想编辑这个函数:
.method family hidebysig instance void SomeFunction(float32 var1, float32 var2, class SomeClassComponent component, class SomeInstanceClassComponent instance, float32 var3) cil managed
{
}
以代码开头:
IL_0000: ldarg.0
IL_0001: ldarg.3
IL_0002: ldarg.1
IL_0003: ldarg.2
我想用硬写的值替换 var1。
维基百科说:
conv.r4
转换为 float32,将 F 压入堆栈。
当我尝试编辑它时,我得到了这个:
我的错误在哪里?
【问题讨论】:
-
在方法开始时评估堆栈为空。您正在尝试使用该操作码弹出一个空堆栈。