【IL篇】常见IL指令详细(持续更新)

这篇博客详细介绍了C#中的关键编程指令,如算术运算(add, mul, div),逻辑判断(brtrue, brfalse), 参数传递(call), 数据加载(ldarg, ldc)等,帮助开发者理解堆栈操作和控制转移。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

名称说明
add将两个值相加并将结果推送到计算堆栈上
and计算两个值的按位“与”并将结果推送到计算堆栈上
box将值类转换为对象引用(O 类型)
br无条件地将控制转移到目标指令
br.s无条件地将控制转移到目标指令(短格式)
break向公共语言结构 (CLI) 发出信号以通知调试器已撞上了一个断点
brfalse如果 value 为 false、空引用(Visual Basic 中的 Nothing)或零,则将控制转移到目标指令
brfalse.s如果 value 为 false、空引用或零,则将控制转移到目标指令
brtrue如果 value 为 true、非空或非零,则将控制转移到目标指令
brtrue.s如果 value 为 true、非空或非零,则将控制转移到目标指令(短格式)
call调用由传递的方法说明符指示的方法
div将两个值相除并将结果作为浮点(F 类型)或商(int32 类型)推送到计算堆栈上
div.un两个无符号整数值相除并将结果 ( int32 ) 推送到计算堆栈上
dup复制计算堆栈上当前最顶端的值,然后将副本推送到计算堆栈上
ldarg将参数(由指定索引值引用)加载到堆栈上
ldarg.0将索引为 0 的参数加载到计算堆栈上
ldarg.1将索引为 1 的参数加载到计算堆栈上
ldarg.2将索引为 2 的参数加载到计算堆栈上
ldarg.3将索引为 3 的参数加载到计算堆栈上
ldarg.s将参数(由指定的短格式索引引用)加载到计算堆栈上
ldc.i4将所提供的 int32 类型的值作为 int32 推送到计算堆栈上
ldc.i4.0将整数值 0 作为 int32 推送到计算堆栈上
ldc.i4.1将整数值 1 作为 int32 推送到计算堆栈上
ldc.i4.2将整数值 2 作为 int32 推送到计算堆栈上
ldc.i4.3将整数值 3 作为 int32 推送到计算堆栈上
ldc.i4.4将整数值 4 作为 int32 推送到计算堆栈上
ldc.i4.5将整数值 5 作为 int32 推送到计算堆栈上
ldc.i4.6将整数值 6 作为 int32 推送到计算堆栈上
ldc.i4.7将整数值 7 作为 int32 推送到计算堆栈上
ldc.i4.8将整数值 8 作为 int32 推送到计算堆栈上
ldc.i4.m1将整数值 -1 作为 int32 推送到计算堆栈上
ldc.i4.s将提供的 int8 值作为 int32 推送到计算堆栈上(短格式)
ldc.i8将所提供的 int64 类型的值作为 int64 推送到计算堆栈上
ldc.r4将所提供的 float32 类型的值作为 F (float) 类型推送到计算堆栈上
ldc.r8将所提供的 float64 类型的值作为 F (float) 类型推送到计算堆栈上
ldloc将指定索引处的局部变量加载到计算堆栈上
ldloc.0将索引 0 处的局部变量加载到计算堆栈上
ldloc.1将索引 1 处的局部变量加载到计算堆栈上
ldloc.2将索引 2 处的局部变量加载到计算堆栈上
ldloc.3将索引 3 处的局部变量加载到计算堆栈上
ldloc.s将特定索引处的局部变量加载到计算堆栈上(短格式)
ldloca将位于特定索引处的局部变量的地址加载到计算堆栈上
ldloca.s将位于特定索引处的局部变量的地址加载到计算堆栈上(短格式)
mul将两个值相乘并将结果推送到计算堆栈上
ret从当前方法返回,并将返回值(如果存在)从调用方的计算堆栈推送到被调用方的计算堆栈上
stloc从计算堆栈的顶部弹出当前值并将其存储到指定索引处的局部变量列表中
stloc.0从计算堆栈的顶部弹出当前值并将其存储到索引 0 处的局部变量列表中
stloc.1从计算堆栈的顶部弹出当前值并将其存储到索引 1 处的局部变量列表中
stloc.2从计算堆栈的顶部弹出当前值并将其存储到索引 2 处的局部变量列表中
stloc.3从计算堆栈的顶部弹出当前值并将其存储到索引 3 处的局部变量列表中
stloc.s从计算堆栈的顶部弹出当前值并将其存储在局部变量列表中的 index 处(短格式)
sub从其他值中减去一个值并将结果推送到计算堆栈上
unbox将引用类型object转换成值类型

完整版:https://www.cnblogs.com/zery/p/3368460.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值