作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图了解 IL 中的 while 循环。我已经编写了这个 C# 函数:
static void Brackets()
{
while (memory[pointer] > 0)
{
// Snipped body of the while loop, as it's not important
}
}
.method private hidebysig static void Brackets() cil managed
{
// Code size 37 (0x25)
.maxstack 2
.locals init ([0] bool CS$4$0000)
IL_0000: nop
IL_0001: br.s IL_0012
IL_0003: nop
// Snipped body of the while loop, as it's not important
IL_0011: nop
IL_0012: ldsfld uint8[] BFHelloWorldCSharp.Program::memory
IL_0017: ldsfld int16 BFHelloWorldCSharp.Program::pointer
IL_001c: ldelem.u1
IL_001d: ldc.i4.0
IL_001e: cgt
IL_0020: stloc.0
IL_0021: ldloc.0
IL_0022: brtrue.s IL_0003
IL_0024: ret
} // end of method Program::Brackets
最佳答案
尝试使用优化进行编译。
关于.net - IL 中的 while 循环 - 为什么是 STLoc.0 和 ldloc.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2605056/
编译器何时选择 ldloc 或 ldloca?我的猜测是它为接口(interface)和值类型选择了 ldloca。但就是这样吗?它是否也为其他事情选择它? 最佳答案 ldloca将变量的地址加载到堆
我正在尝试通过编写一小段代码和检查编译的程序集来学习 CIL。所以我写了这个简单的 if 语句: public static void Main (string[] args) {
我试图了解 IL 中的 while 循环。我已经编写了这个 C# 函数: static void Brackets() { while (memory[pointer]
我是一名优秀的程序员,十分优秀!