【.Net Core底层入门】MSIL入门
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入门相关推荐
- .net core底层入门学习笔记(十一-JIT编译器)
.net core底层入门学习笔记(十一) 本篇开始记录JIT编译器实现 文章目录 .net core底层入门学习笔记(十一) 前言 一.JIT编译器介绍 二.JIT编译流程 1.JIT编译触发 2. ...
- C# lock 语法糖实现原理--《.NET Core 底层入门》之自旋锁,互斥锁,混合锁,读写锁...
在多线程环境中,多个线程可能会同时访问同一个资源,为了避免访问发生冲突,可以根据访问的复杂程度采取不同的措施 原子操作适用于简单的单个操作,无锁算法适用于相对简单的一连串操作,而线程锁适用于复杂的一连 ...
- 送福利 | 送书5本《ASP.NET Core项目开发实战入门》带你走进ASP.NET Core开发
<ASP.NET Core项目开发实战入门>从基础到实际项目开发部署带你走进ASP.NET Core开发. ASP.NET Core项目开发实战入门是基于ASP.NET Core 3.1 ...
- ASP.Net Core 2.2 MVC入门到基本使用系列 (四)
本教程会对基本的.Net Core 进行一个大概的且不会太深入的讲解, 在您看完本系列之后, 能基本甚至熟练的使用.Net Core进行Web开发, 感受到.Net Core的魅力. 本教程知识点大体 ...
- 《ASP.NET Core项目开发实战入门》送书活动结果公布
截至2020.09.20 本次送书活动<ASP.NET Core项目开发实战入门>.下面把Top 5的留言截图给大家回顾一下. 以下5位同学将获赠书籍一本: 小林子 鉴 静 红脸先生 阿星 ...
- OsharpNS轻量级.net core快速开发框架简明入门教程-代码生成器的使用
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
- OsharpNS轻量级.net core快速开发框架简明入门教程-基于Osharp实现自己的业务功能...
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
- 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.本教 ...
- Asp.Net Core 6.0 Mvc入门 图书查询系统 附带源码下载
Asp.Net Core 6.0 MVC 入门 简介 目标 第一章 创建Asp.Net Core Web应用 第二章 从Model开始 第三章 Model之后皆基架 第四章 运行应用 第五章 数据搜索 ...
- Android自动化测试-从入门到入门(5)AdapterView的测试
在之前的文章中,我们简单介绍了Espresso的使用.通过onView()方法我们可以快速定位到界面上我们需要测试的目标元素.整体来说,onView()比较适用于UI比较简单的情况,在不需要过于复杂的 ...
最新文章
- 【原创视频教程】学生信息管理系统6--学员信息管理(完结篇)
- 什么是联机分析处理(OLAP)
- 好久没有深入研究技术了,最近这两年太忙但又不知道忙了些什么
- 容器必须设置宽度吗_UI设计必须要具备的前端知识
- python rsa加密长度_python RSA加密最新(RSA/ECB/PKCS1Padding)
- vi 按了ctrl+s怎么办
- 一个O-RAN YANG语言文件:o-ran-interfaces.yang
- 问题五十九:怎么求一元六次方程在区间内的所有不相等的实根(1)
- tomcat启动内存设置以及字符集设置
- pythongui日历控件_python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例...
- mysql所选路径已经存在_Win10环境下安装压缩包版本MySQL-8.0.13
- Sentinel 实战应用中的小技巧
- Rockchip | Rockchip Kernel的获取与构建
- html边框如何制作三角形,如何用css3绘制有边框的三角形
- TypeError: Cannot read property 'gizmo' of null 的解决方案
- 阿里云天池SQL训练营学习记录
- 软件工程Alpha冲刺day4
- 应用:使用uart串口接收模块接收信号,控制led灯闪烁
- postman格式化
- 卡尔曼滤波:高斯过程 + 贝叶斯推断