IL指令格式

一个方法中可以包含一条或多条IL指令,每条IL指令有三个部分组成,分别是标签操作参数.
以下面的IL指令为例,IL_0001是标签,ldstr是类型,“hello world”是参数。标签代表了该IL指令的位置,实现跳转的IL指令会把标签当作参数使用;类型代表IL指令执行了什么操作,相关常见指令见置顶文章;参数表示操作需要的值,有的IL指令类型可以不要参数,例如nop指令(代表什么都不做)。

 IL_0001: ldstr "hello world"

评估堆栈(Evaluation Stack)

评估堆栈可以用于指令之间传递临时的数据,例如计算结果或者函数调用的返回值。

C#代码:

 public static void Main(string[] args){int a = 1;Console.WriteLine(a + 2);}

生成的IL指令如下:

  .method public hidebysig static voidMain(string[] args) cil managed{.entrypoint.maxstack 2.locals init ([0] int32 a)// [11 9 - 11 10]IL_0000: nop// [12 13 - 12 23]IL_0001: ldc.i4.1IL_0002: stloc.0      // a// [13 13 - 13 38]IL_0003: ldloc.0      // aIL_0004: ldc.i4.2IL_0005: addIL_0006: call         void [mscorlib]System.Console::WriteLine(int32)IL_000b: nop// [16 9 - 16 10]IL_000c: ret} // end of method Program::Main

【.Net Core底层入门】MSIL入门相关推荐

  1. .net core底层入门学习笔记(十一-JIT编译器)

    .net core底层入门学习笔记(十一) 本篇开始记录JIT编译器实现 文章目录 .net core底层入门学习笔记(十一) 前言 一.JIT编译器介绍 二.JIT编译流程 1.JIT编译触发 2. ...

  2. C# lock 语法糖实现原理--《.NET Core 底层入门》之自旋锁,互斥锁,混合锁,读写锁...

    在多线程环境中,多个线程可能会同时访问同一个资源,为了避免访问发生冲突,可以根据访问的复杂程度采取不同的措施 原子操作适用于简单的单个操作,无锁算法适用于相对简单的一连串操作,而线程锁适用于复杂的一连 ...

  3. 送福利 | 送书5本《ASP.NET Core项目开发实战入门》带你走进ASP.NET Core开发

    <ASP.NET Core项目开发实战入门>从基础到实际项目开发部署带你走进ASP.NET Core开发. ASP.NET Core项目开发实战入门是基于ASP.NET Core 3.1 ...

  4. ASP.Net Core 2.2 MVC入门到基本使用系列 (四)

    本教程会对基本的.Net Core 进行一个大概的且不会太深入的讲解, 在您看完本系列之后, 能基本甚至熟练的使用.Net Core进行Web开发, 感受到.Net Core的魅力. 本教程知识点大体 ...

  5. 《ASP.NET Core项目开发实战入门》送书活动结果公布

    截至2020.09.20 本次送书活动<ASP.NET Core项目开发实战入门>.下面把Top 5的留言截图给大家回顾一下. 以下5位同学将获赠书籍一本: 小林子 鉴 静 红脸先生 阿星 ...

  6. OsharpNS轻量级.net core快速开发框架简明入门教程-代码生成器的使用

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  7. OsharpNS轻量级.net core快速开发框架简明入门教程-基于Osharp实现自己的业务功能...

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  8. ASP.NET Core 入门教程 6、ASP.NET Core MVC 视图布局入门 1

    ASP.NET Core 入门教程 6.ASP.NET Core MVC 视图布局入门 原文:ASP.NET Core 入门教程 6.ASP.NET Core MVC 视图布局入门 一.前言 1.本教 ...

  9. Asp.Net Core 6.0 Mvc入门 图书查询系统 附带源码下载

    Asp.Net Core 6.0 MVC 入门 简介 目标 第一章 创建Asp.Net Core Web应用 第二章 从Model开始 第三章 Model之后皆基架 第四章 运行应用 第五章 数据搜索 ...

  10. Android自动化测试-从入门到入门(5)AdapterView的测试

    在之前的文章中,我们简单介绍了Espresso的使用.通过onView()方法我们可以快速定位到界面上我们需要测试的目标元素.整体来说,onView()比较适用于UI比较简单的情况,在不需要过于复杂的 ...

最新文章

  1. 【原创视频教程】学生信息管理系统6--学员信息管理(完结篇)
  2. 什么是联机分析处理(OLAP)
  3. 好久没有深入研究技术了,最近这两年太忙但又不知道忙了些什么
  4. 容器必须设置宽度吗_UI设计必须要具备的前端知识
  5. python rsa加密长度_python RSA加密最新(RSA/ECB/PKCS1Padding)
  6. vi 按了ctrl+s怎么办
  7. 一个O-RAN YANG语言文件:o-ran-interfaces.yang
  8. 问题五十九:怎么求一元六次方程在区间内的所有不相等的实根(1)
  9. tomcat启动内存设置以及字符集设置
  10. pythongui日历控件_python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例...
  11. mysql所选路径已经存在_Win10环境下安装压缩包版本MySQL-8.0.13
  12. Sentinel 实战应用中的小技巧
  13. Rockchip | Rockchip Kernel的获取与构建
  14. html边框如何制作三角形,如何用css3绘制有边框的三角形
  15. TypeError: Cannot read property 'gizmo' of null 的解决方案
  16. 阿里云天池SQL训练营学习记录
  17. 软件工程Alpha冲刺day4
  18. 应用:使用uart串口接收模块接收信号,控制led灯闪烁
  19. postman格式化
  20. 卡尔曼滤波:高斯过程 + 贝叶斯推断

热门文章

  1. jquery写的捡元宝游戏
  2. day39 python 学习 数据库学习 五个约束,数据库设计(一对一,一对多等等)
  3. orbslam3 跑EuRoC数据集及 ros接口
  4. MATLAB | 如何自然好看的从图片中提取颜色并制作色卡
  5. PCIE USB 编码
  6. powerbi服务器 试用 无限,超级福利中国版PowerBI高级个人版现已开通,从零免费无限试用法泄露...
  7. 春天猫rtsy_春天的时代
  8. Soildwork 制作简易玫瑰
  9. 数据库设计(降龙十四招式)
  10. 织梦dede免费小程序插件