了解IL汇编循环

IL代码,

cpp 复制代码
.assembly extern mscorlib {}
 
 .assembly Test
 {
     .ver 1:0:1:0
 }
 .module test.exe
  
 .method static void main() cil managed
 {
     .maxstack 8
     .entrypoint
     .locals init (int32, int32)
   
     ldc.i4 4
     stloc.0        //Upper    limit of the Loop, total 5 
     ldc.i4 0 
     stloc.1        //Initialize the Starting of loop 

Start:     
     //Check if the Counter exceeds
     ldloc.1 
     ldloc.0 
     bgt Exit //If Second variable exceeds the first variable, then exit

     ldloc.1
     call void [mscorlib]System.Console::WriteLine(int32)

     //Increase the Counter
     ldc.i4 1
     ldloc.1
     add
     stloc.1
     br Start
Exit:    
     ret
}

构建运行如下;

我还不是太理解,循环的开始和结束值是不是装入栈;循环变量加1也是在栈上操作;循环中啥也没干,只是输出了循环变量值;bgt、br是跳转语句;有时间继续;

相关推荐
xiaoshuaishuai82 小时前
C# vCenter跨云迁移的核心问题
开发语言·c#
旧物有情2 小时前
C#异步编程
网络·rpc·c#
影寂ldy4 小时前
C# 三大内置委托(Action / Func / Predicate)+ Lambda
c++·算法·c#
AI科技星5 小时前
《全域数学/数术工坊》体系总览
c语言·开发语言·汇编·electron·概率论
小满Autumn8 小时前
固高GTS运动控制卡 — C#开发完全指南
c#·.net·上位机·运动控制卡
影寂ldy8 小时前
C# 多播委托
前端·javascript·c#
H Journey8 小时前
用汇编语言写一个hello world,并进行汇编和编译
汇编·assembly·寄存器
The Sheep 20238 小时前
C#多线程学习
开发语言·学习·c#
我要打打代码9 小时前
C# 扩展方法
开发语言·c#
椒颜皮皮虾྅9 小时前
OpenVINO™ C# API 3.3 全新发布!正式接入 OpenVINO GenAI,C# 本地大模型开发全面启航!
人工智能·开源·c#·openvino