1
Q
在CIL中分支
A
回答
1
的beq target
指令传输控制(“跳跃”)的目标,如果堆顶两个值相等。这与ceq
指令后跟brtrue target
相同。鉴于方法:
static int BranchTest(int value1, int value2)
{
if (value1 == value2)
{
return SomeMethod(0);
}
else
{
return SomeMethod(1);
}
}
它可以(但这只是一个examplatory码)翻译成:
.method private hidebysig static
int32 BranchTest (
int32 value1,
int32 value2
) cil managed
{
// ...
IL_0000: ldarg.0 // load value1 on stack
IL_0001: ldarg.1 // load value2 on stack
IL_0002: beq IL_000b // compare and jump conditionaly
IL_0004: ldc.i4.1
IL_0005: call int32 ConsoleLeak.Program::SomeMethod(int32)
IL_000a: ret
IL_000b: ldc.i4.0
IL_000c: call int32 ConsoleLeak.Program::SomeMethod(int32)
IL_0011: ret
}
相关问题
- 1. 在CIL(MSIL)中的Stringbuilder
- 2. 在CIL中做什么“auto”,“ansi”和“cil managed”?
- 3. 在ClearCase中分支分支?
- 4. 在cil代码中获得'ldftn'函数指针,在cil代码中使用ldftn'
- 5. 在git中创建分支的分支?
- 6. 在多个分支中使用分支
- 7. CIL ANTLR语法?
- 8. .NET中的CIL,CLS和CTS
- 9. 在CIL中定义自定义属性
- 10. 错误在CIL中。未找到方法:'?'
- 11. 在TFS中分支
- 12. .NET CIL Call或CallVirt?
- 13. 拆分分支在两个分支/合并分支有选择
- 14. 在每个任务分支策略中将任务分支提升到分支中的主分支
- 15. Subversion - 分支分支
- 16. 从TFS中的分支创建分支
- 17. Perforce分支中的Perforce分支
- 18. 如何从空主分支中分支
- 19. 在git中转换分支
- 20. 何时在git中分支?
- 21. 在Git中更改分支
- 22. 在Git中嵌套分支
- 23. 在Visual Source Safe中分支
- 24. Git在Eclipse中分支
- 25. gles20分支在Cocos2d-X中
- 26. 在Git中推拉分支
- 27. if-else在clojure中分支
- 28. 在Mercurial中合并分支
- 29. 2分支主分支 - 合并分支1回到主分支并使用分支2中的代码?
- 30. .NET中CIL知识的优点
你是说你完全了解所有其他指令*除了*'beq'?如果是这样,那么你觉得混乱/不符合其他说明呢?或者,我们是否期待着大量的问题,每一个问题都涉及单个指令? – 2015-03-19 07:49:13
其余的似乎很清楚,但我不明白分支的概念。 – BendEg 2015-03-19 07:53:37
如果(a == b)转到 – 2015-03-19 07:59:45