- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
由于各种原因,我正在学习 CIL,似乎类的定义通常类似于:
.class public auto ansi beforefieldinit [...] extends [mscorlib]System.Object
.method [...] (args) cil managed
最佳答案
ECMA-335 提供您寻求的信息,
在 II.10.1 Type header(ClassHeader) 下你会发现:
auto - Layout of fields is provided automatically. - §II.10.1.2
ansi - Marshal strings to platform as ANSI. - §II.10.1.5
The keyword auto in this context defines the class layout style (automatic, the default), directing the loader to lay out this class however it sees fit. Alternatives are sequential (which preserves the specified sequence of the fields) and explicit (which explicitly specifies the offset for each field, giving the loader exact instructions for laying out the class). The keyword ansi defines the mode of string conversion within the class when interoperating with the unmanaged code. This keyword, the default, specifies that the strings will be converted to and from “normal” C-style strings of bytes. Alternative keywords are unicode (strings are converted to and from UTF-16 Unicode) and autochar (the underlying platform determines the mode of string conversion).
IL - 0x0000 - Method impl is CIL
Managed - 0x0000 - Method impl is managed
The keywords cil and managed define so-called implementation flags of the MethodDef and indicate that the method body is represented in IL. A method represented in native code rather than in IL would carry the implementation flags native unmanaged.
关于keyword - "auto," "ansi,"和 "cil managed"在 CIL 中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38910211/
我正在查看 CIL 中的各种操作码,我发现了很多类似的代码,例如 Beq,Beq_S Bge,Bge_S Bgt,Bgt_S Br,Br_S 其中 S 应该是“短格式”。这意味着什么?? 最佳答案 指
查看 monodis 生成的代码,我看到对 Console.WriteLine 的调用被转换为 call void class [mscorlib]System.Console::WriteLine。
使用 Frama-C API 中定义的 Cil_datatypes 模块,我尝试用谓词 (Cil_datatype) 中的新术语替换术语 (Cil_datatype)。为此,我需要使用一个函数映射一个
由于各种原因,我正在学习 CIL,似乎类的定义通常类似于: .class public auto ansi beforefieldinit [...] extends [mscorlib]Syste
在 Microsoft IL 中,要对值类型调用方法,您需要间接引用。假设我们有一个名为“il”的 ILGenerator 并且当前我们在堆栈顶部有一个 Nullable,如果我们想检查它是否有值,那
让我们假设以下 CIL 程序: .assembly extern mscorlib {} .assembly Program {} .method private static void Main()
这可能是一个基本问题,但是CIL的含义是什么? 我知道CIL是与平台和CPU无关的中间语言,但是 有人对此进行了解释以及CPU不可知论的含义将对您有所帮助。 最佳答案 如果是platform agno
我对值类型和 CIL 评估堆栈有点困惑。 ECMA-335, Partition III, §1.1 说 CLI 处理这些“基本 CLI 类型”: A subset of the full numer
如果应用程序采用 MSIL 格式,为什么 Visual Studio 会将应用程序编译为可执行文件?不应该像java那样把代码编译成.class文件吗? 最佳答案 .NET“可执行文件”实际上是一个很
是否有任何可读的最新(.net 4)MSIL 引用手册? 最佳答案 有一堆可下载的引用文档here . 包括 2006 年 6 月的 ECMA-335 公共(public)语言基础结构文档 (pdf)
.Net 运行时是否对 CIL 指令的原子性做出任何保证?如果是这样,它们是什么?所有 CIL 指令都是原子的吗?或者它是否取决于 JIT 编译器生成的机器代码的原子性,因此太特定于平台而无法做出任何
我有一个基于自定义堆栈的语言,我正在尝试将其编译为 CIL,以便可以对其进行 JIT 编译。该语言本身相当简单,因为它只有整数和 bool 值。然而,每种数据类型都有一个专用的堆栈。该语言本身是一个命
假设我的解决方案中有一个 C# Windows 类库,我在 VS2010 IDE 中构建它。我的 bin 目录中的输出是 X.dll 1) X.dll现阶段不包含MSIL,而是“压缩字节码”。 这是真
是否有任何 .NET CIL(又名 MSIL)ANTLR 语法? 最佳答案 根据this publication , Microsoft 在Microsoft Visual Studio 安装文件as
什么是获得可移植可执行文件的良好、人类可读形式的 CLI 的好程序?我不想要一个完整的反汇编程序,因为我想了解它们的工作原理(或者,就我而言,不工作)。 最佳答案 我推荐reflector . 它可以
我可以将指令编译为字节码,甚至可以轻松执行它们,但我发现提取 CIL 的唯一函数是 GetILAsByteArray,顾名思义,它只返回字节而不是 CIL 指令。 那么如何在 .NET 上以编程方式反
我理解以下 C# 代码: var evens = from n in nums where n % 2 == 0 select n; 编译为: var evens = nums.Where(n =>
尝试使用 ildasm 深入研究 CIL 代码,很明显 CIL 本身正在基于堆栈工作以支持如下表达式 IL_0001: ldc.i4.s 13 ; 1f 0d IL_0003: s
我在 CIL 中定义了一个字段,如下所示: .field public int32 modopt(void*) fld 我把它编译成一个程序集。现在我把它改成: .field public int32
是否可以编写将任何类型(值和引用)的实例转换为 System.String 的通用 CIL 指令? 特别是,我对将这些指令注入(inject)方法的 Mono.Cecil 代码感兴趣。 分析一个通用方
我是一名优秀的程序员,十分优秀!