- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究 MSIL (CIL) 代码着色器,尽管我对 MSIL 不是很熟悉。
我在 Common Language Infrastructure (CLI) 中找到了所有关键字的列表.
这些关键字包括 add
、.file
、conv.i4
和 unaligned.
。
我有点纠结于点是关键字的一部分。我很确定这些点需要成为关键字的一部分,因为我不认为像 i4
这样的东西可以单独作为关键字。我很确定我希望某些关键字开头的点成为关键字的一部分。
但是那些有尾随点的少数怎么办,比如最后一个?尾随点是关键字的一部分有什么原因吗?
最佳答案
点是这些说明的一部分(我不知道为什么)。还有其他一些类似的前缀指令,例如 unaligned.
、volatile.
、constrained.
、readonly.
和 tail.
。 (我不确定我是否列出了所有这些,但重点是,您的解析器必须识别这些。)
volatile.
的文档特别提到,在它适用的指令之前,至少必须有一个空格跟随它。例如:
volatile. ldind.i4 // Correct
和
volatile.ldind.i4 // Syntax error
这些来自 Serge Lidin 的 Expert .NET 2.0 IL Assembler(这几乎是权威的 IL 引用)。
关于.net - 了解 MSIL (CIL) 关键字中的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26444276/
我正在编写一个“弱事件工厂” - 将任何 Delegate 转换为具有相同签名的新委托(delegate)的代码,但在目标上实现 WeakReference。我正在使用 MSIL 来避免对 Deleg
两个混淆相关的问题: 1) 是否有任何工具可以将 F# 从 MSIL 目标形式反汇编回其源形式或接近它的形式?这不是通过默默无闻来实现安全性的尝试,但我想保护某些源代码免遭“盗窃”。 2) 我简要地查
关于 SO 上的 MSIL 有很多问题,但没有一个直接回答这个问题。 我一直在用 Textpad它确实有 MSIL 的语法定义文件,然后在命令提示符窗口中使用 ILASM。 我确实找到了对 ILIDE
我正在尝试为 .NET 平台创建我的语言的后端。前端和解释器用Delphi编写。非托管 API 只允许类型定义,但不允许发出 MSIL。 有哪些方法可以从非托管代码生成 MSIL?不使用 Reflec
是否有任何可读的最新(.net 4)MSIL 引用手册? 最佳答案 有一堆可下载的引用文档here . 包括 2006 年 6 月的 ECMA-335 公共(public)语言基础结构文档 (pdf)
在 VB.NET 中,您可以添加文件引用或项目引用。例如,如果您想使用 SQLConnection 类,那么您可以添加对 System.Data.SQLClient 的引用并导入命名空间。 这在 MS
请查看下面的 MSIL 代码: IL_00: ldstr "Hello World" IL_05: call void [mscorlib]System.Console::W
在 VB.NET 中,您可以添加文件引用或项目引用。例如,如果您想使用 SQLConnection 类,那么您将添加对 System.Data.SQLClient 的引用并导入命名空间。 这在 MSI
假设我的解决方案中有一个 C# Windows 类库,我在 VS2010 IDE 中构建它。我的 bin 目录中的输出是 X.dll 1) X.dll现阶段不包含MSIL,而是“压缩字节码”。 这是真
我正在使用 RemotingLite 库 ( see at github ) 并且 Proxy 类工厂有问题。简而言之,问题是在生成代码以返回 ValueType 对象(如用户定义的结构)时。 部分原
我正在尝试使用 Reflection.Emit(在 c# 中)创建一个新类型。 我要创建的代码类似于 public class { public static int[] A = new int
我试图弄清楚 MSIL 如何能够通过仅存储一个整数来表示对静态函数的调用。 例如,如果您添加对 Interlocked.Increment(ref someVariable) 的调用,您的 IL 将包
我只是想知道这是否可以做到。如果它不包含一些显着的性能优势,我不打算这样做。我是一名网络和游戏开发人员,但我通常不使用 c# 开发游戏。 最佳答案 是的,有可能 - 您可以使用 ilasm (附带 .
有人可以解释这几行 MSIL 吗?为什么它将评估堆栈中的值移到局部变量中,只是立即将其移回并返回? 以下 MSIL 代码加载单个参数(字符串),调用返回 bool 的方法,然后返回该 bool 值。我
这些问题似乎找不到好的答案。 以下是我认为我知道的和我不清楚的。 评估堆栈是一个类似于 C 风格堆栈的内存缓冲区(它是原生 int/size_t 的堆栈)吗? 评估堆栈元素可以是 32 位或 64 位
我可以访问这样的函数体中间语言: byte[] ilCodes = NestedFooInfo.GetMethodBody().GetILAsByteArray(); 我可以修改它的 IL 代码,以便
考虑以下C#代码段: static string input = null; static string output = null; static void Main(string[] args)
我有一组 MSIL/CLR 应用程序(用 C# 编写)。我正在寻找一种将它们刻录到纯硬件平台上的方法。我已经看到 Altera 有一个名为 NIOS II 的嵌入式处理器,它似乎支持 eCLR(嵌入式
在某种同行评审期间调试一些 C# 代码时,我注意到一种奇怪的行为,乍一看似乎是某种范围界定违规,但回想起来,编译器可能试图通过重用引用来节省内存。代码是: for(int i = 0; i < 10;
我尝试使用谷歌搜索和搜索 StackOverFlow,但没有看到明确的答案。如何查看我的 C# 编译成的 IL 代码?我想比较两种方法,看看它们是否产生相同的 IL。我曾看过一个非常棒的视频,内容是这
我是一名优秀的程序员,十分优秀!