部分CIL 操作码

操作码                                           作用

add, sub, mul, div, rem                   用于两个数加减乘除求模

add, or, not, xor                            用于在两个值上进行二进制操作

ceq, cgt, clt                                   用不同的方法比较两个在栈上的值,ceq:是否相等;cgt:是否大约;clt:是否小于

box, unbox                                   在引用类型和值类型之间转换

ret                                                退出方法和返回一个值

beq, bgt, ble, blt, switch                 控制方法中的条件分支,beg:如果相等就中止到代码标签;bgt:如果大于就中止到代码标签;

ble:如果小于等于就中止到代码标签;blt:如果小于就中止到代码标签;

所有的分支控制操作码都需要给出一个CIL代码标签作为条件为真的跳转目的

br.s                                             (无条件)中止到代码标签

call                                               调用一个成员

nearer, newobj                              在内存中创建一个新的数组或新的对象类型

主要的入栈CIL操作码  (ld 加载)

操作码                                           作用

ldarg (及多个变化形式)                     加载方法的参数到栈中。除了泛型ldarg(需要一个索引作为参数),还有后其他很多的变化形式。

eg. 有个数字后缀的ldarg操作码来指定需要加载的参数。同时还有很多ldarg的变化形式允许加载

指定的数据类型(ldarg_i4, 加载int32)和值(ldarg_i4_5 加载一个值为5的int32)

ldc (及多个变化形式)                      加载一个常数到栈中

ldfld (及多个变化形式)                      加载一个对象实例的成员到栈中

ldloc (及多个变化形式)                      加载一个本地变量到栈中

ldobj                                            获得一个堆对象的所有数据,并将它们放置到栈中

ldstr                                             加载一个字符串数据到栈中

主要的弹出栈操作码 (st 存储)

操作码                                           作用

pop                                              删除当前栈顶的值,但是并不影响存储的值

starg                                            存储栈顶的值到给出方法的参数,根据索引确定这个参数

stloc (及多个变化形式)                      弹出当前栈顶的值并存储在一个本地变量列表中,根据所以确定这个参数

stobj                                            从栈中复制一个特定的类型到指定的内存地址

stfld                                             用从栈中获得的值替换对象成员的值

IL命令的更多相关文章

  1. NET IL命令查询器

    最近研究了一下IL代码,闲来无事,开发一个小工具,供大家使用.编程.破解,手头必备工具. 模糊搜索,可以把相关的命令都列出来.选中行,可以提示指令说明. 如果指令不全,可以增加指令及说明. CSDN下 ...

  2. IL命令初学者要知道的事

    在一个中间语言程序中,如果某一行以“.”开始,代表这是一个传输给汇编工具的指令:而不是以“.”开始的行是中间语言的代码.上图中.method是方法定义指令,定义了Main方法,参数在“()”中,IL代 ...

  3. 认识IL代码---从开始到现在 <第二篇>

    ·IL代码分析方法 ·IL命令解析 ·.NET学习方法论 1.引言 自从『你必须知道.NET』系列开篇以来,受到大家很多的关注和支持,给予了anytao巨大的鼓励和动力.俱往昔,我发现很多的园友都把目 ...

  4. vs 查看IL

    vs--工具--外部工具--新增1 标题:随便填, 2 命令:C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Too ...

  5. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  6. .NET Framework基础知识总结

    之前给大家总结了java的面试几次技巧总结,同学们看了觉得还是不错,能够得到大家的认可,感觉还是挺不错的.现在又有同学来想小编索要.NET面试的总结了,好吧.谁让小编这么好呢!以下是.NET面试之框架 ...

  7. linux概念之分区与文件系统

    分区类型 [root@-shiyan dev]# fdisk /dev/sda WARNING: DOS-compatible mode is deprecated. It's strongly re ...

  8. .Net反编译实战

    原文:.Net反编译实战 当你面对一个已经部署好的网站,功能,性能都非常不给力的时候,你会怎么办? 当你尝试去了解这个网站业务逻辑,代码逻辑和数据库逻辑时却发现根本没有任何资料时你会怎么办? 当你准备 ...

  9. .net 基础

    之前给大家总结了java的面试几次技巧总结,同学们看了觉得还是不错,能够得到大家的认可,感觉还是挺不错的.现在又有同学来想小编索要.NET面试的总结了,好吧.谁让小编这么好呢!以下是.NET面试之框架 ...

随机推荐

  1. javascript类继承的一些实验

    其实一开始编js没怎么用过对象,一般都用func,func,func···但是用多了,感觉代码一点都不美观,还要这里包一个函数,那里包一个函数,或者一直都是函数调用,不好看,而且一些重用的都要重写的话 ...

  2. [转]CSS3 Media Query实现响应布局

    讲到响应式布局, 相信大家都有一定的了解,响应式布局是今年很流行的一个设计理念,随着移动互联网的盛行,为解决如今各式各样的浏览器分辨率以及不同移动设备的显示效果, 设计师提出了响应式布局的设计方案.今 ...

  3. c# 中int.ToString()的格式化的示例

    格式化数值:有时,我们可能需要将数值以一定的格式来呈现,就需要对数值进行格式化.我们使用格式字符串指定格式.格式字符串采用以下形式:Axx,其中 A 为格式说明符,指定格式化类型,xx 为精度说明符, ...

  4. BaseHttpListActivity,几行代码搞定Android Http列表请求、加载和缓存

    Android开发中,向服务器请求一个列表并显示是非常常见的需求,但实现起来比较麻烦,代码繁杂. 随着应用的更新迭代,这种需求越来越多,我渐渐发现了实现这种需求的代码的共同点. 于是我将Activit ...

  5. Ftrl in tensorflow

    reference :点击这里https://github.com/tensorflow/tensorflow/issues/3725 讲解 http://www.tuicool.com/articl ...

  6. javafx之两种局部界面的呈现方式

    要求: 点击左边不同的按钮,右边红色方框内出现不同的内容 =========================== 第一种实现方法----插入fxml方法: 实现代码================== ...

  7. 【转】 Easy RadControl 之 RadGridView(Silverlight)

    1.不显示第1列即列指示器(Row Indicators) 在 telerik:RadGridView中设置属性   RowIndicatorVisibility="Collapsed&qu ...

  8. c语言问卷调查

    你对自己的未来有什么规划?做了哪些准备? 找一家公司实习积攒创业基金.努力学习专业知识,从各方面完善自身,参与各项活动如辩论赛,竞赛等锻炼自己. 2.你认为什么是学习?学习有什么用?现在学习动力如何? ...

  9. php复习第一章—1.1php 简介

    php语言是构建互联网应用的后端最佳选择 跨平台 性能优越,稳定性强 语法简单,易于上手 丰富完善的技术扩展 LAMP平台成熟稳定,低成本构建 回顾 web 网页本质是一个文本文件,由浏览器解释文件内 ...

  10. Qt 获取本机ip地址  【转自 CSDN jpchen609

    QString str; QHostInfo info=QHostInfo::fromName(QHostInfo::localHostName()); //定义一个HostInfo的对象然后对这个对 ...