了解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是跳转语句;有时间继续;

相关推荐
专注VB编程开发20年13 小时前
python翻译网页HTML的难题
python·c#·html
z落落14 小时前
C# 抽象类(abstract)
java·开发语言·c#
unityのkiven15 小时前
工作分享1(26.5.27):基于栈实现全局返回逻辑通用架构设计(适配异步 + 确认弹窗)
游戏·unity·c#·客户端架构
技术不好的崎鸣同学15 小时前
x64汇编之GDB进阶与printf
汇编
z落落15 小时前
C# 多态 + 函数重载(静态多态)+运算符重载
开发语言·c#
Fms_Sa16 小时前
分治法—最大子段问题
算法·c#
rick97716 小时前
C# 动态对象实战:用 DynamicObject 打造你的"万能插件架构"
c#
玩c#的小杜同学16 小时前
未来 AI 会装进电脑里吗?本地 AI、AI PC 和企业隐私计算
人工智能·微软·c#·电脑·英伟达
荔枝吻16 小时前
【保姆级喂饭教程】Inno Setup下载安装、添加中文、打包、自动化教程
c#·vs·inno setup
蜗牛~turbo16 小时前
金蝶云星空 二开得到来源单单据体2数据包
windows·c#·金蝶·dynamicobject