msil专题

MSIL 教程(三):类和异常处理

续上文【翻译】MSIL 教程(二):数组、分支、循环、使用不安全代码和如何调用Win32 API ,本文继续讲解类和异常处理。谨以这三篇译文纪念29年前的今日,那个让母亲今生难以忘记的幸福而又痛苦的日子。类 在前面的程序中,我们在Main函数中调用类函数,在本程序中,我们将徐希如何定义类。本程序包含2个类: Class1和SampleClass,Class1带有函数Main,在Main中

MSIL 教程(二):数组、分支、循环、使用不安全代码和如何调用Win32 API

数组 本程序分配一个int型的数组并给他的元素赋值,然后打印出元素和数组的长度。 命令: newarr type— 生成一个元素类型为type 的数组。数组的大小必须在调用该命令前装入堆栈。该命令会把一个数组的引用装入堆栈。 stelem.i4— 给一个数组成员赋值。数组的引用、下标和值必须在调用该命令前装入堆栈。 ldelema type— 把数组元素的地址装入堆栈。数组的引用

中间语言(MSIL)和JIT编译器

C#编写的程序,经过编译器把编译后,源代码被转换成Microsoft中间语言(MSIL)。MSIL不是真正可执行的代码。因此,要真正执行MSIL应用程序,还必须使用“JIT编译器”,对MSIL再次编译,以得到主机处理器可以真正执行本机指令。JIT编译器以即时方式编译MSMIL代码,以便应用程序执行。

MSIL Instruction Set

MSIL Instruction Set Base Instructions Instruction Description Stack Transition 1 add add two values, returning a new value …, value1, value2à…, result 2 add.ovf.<signed> add intege