[查阅]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 integer value with overflow check |
…, value1, value2à…, result |
3 |
and |
bitwise AND |
…, value1, value2 à…, result |
4 |
arglist |
get argument list |
… à …, argListHandle |
5 |
beq.<length> |
branch on equal |
…, value1, value2 à … |
6 |
bge.<length> |
branch on greater than or equal to |
…, value1, value2 à … |
7 |
bge.un.<length> |
branch on greater/equal, unsigned or unordered |
…, value1, value2 à … |
8 |
bgt.<length> |
branch on greater than |
…, value1, value2 à … |
9 |
bgt.un<length> |
branch on greater than, unsigned or unordered |
…, value1, value2 à … |
10 |
ble.<length> |
branch on less than or equal to |
…, value1, value2 à … |
11 |
ble..un<length> |
branch on less/equal, unsigned or unordered |
…, value1, value2 à … |
12 |
blt.<length> |
branch on less than |
…, value1, value2 à … |
13 |
blt.un.<length> |
branch on less than, unsigned or unordered |
…, value1, value2 à … |
14 |
bne.un<length> |
branch on not equal or unorded |
…, value1, value2 à … |
15 |
br.<length> |
unconditional branch |
…, à … |
16 |
break |
breakpoint instruction |
…, à … |
17 |
brfalse.<length> |
branch on false, null, or zero |
…, value à … |
18 |
brtrue.<length> |
branch on non-false or non-null |
…, value à … |
19 |
call |
call a method |
…, arg1, arg2 … argn à …, retVal (not always returned) |
20 |
calli |
indirect method call |
…, arg1, arg2 … argn, ftn à …, retVal (not always returned) |
21 |
ceq |
compare equal |
…, value1, value2à…, result |
22 |
cgt |
compare greater than |
…, value1, value2à…, result |
23 |
cgt.un |
compare greater than, unsigned or unordered |
…, value1, value2à…, result |
24 |
ckfinite |
check for a finite real number |
…, value à …, value |
25 |
clt |
compare less than |
…, value1, value2à…, result |
26 |
clt.un |
compare less than, unsigned or unordered |
…, value1, value2à…, result |
27 |
conv.<to type> |
data conversion |
…, value à …, result |
28 |
conv.ovf<to type> |
data conversion with overflow detection |
…, value à …, result |
29 |
conv.ovf.<to type>.un |
unsigned data conversion with overflow detection |
…, value à …, result |
30 |
cpblk |
copy data from memory to memory |
…, destaddr, srcaddr, size à … |
31 |
div |
divide values |
…, value1, value2à…, result |
32 |
div.un |
divide integer values, unsigned |
…, value1, value2à…, result |
33 |
dup |
duplicate the top value of the stack |
…, value à …, value, value |
34 |
endfilter |
end filter clause of SEH |
…, value à … |
35 |
endfinally |
end the finally or fault clause of exception block |
… à … |
36 |
initblk |
initialize a block of memory to a value |
…, addr, value, size à … |
37 |
jmp |
jump to method |
… à … |
38 |
ldarg.<length> |
load argument onto the stack |
… à …, value |
39 |
ldarga.<length> |
load an argument address |
…, à …, address of argument number argNum |
40 |
ldc.<type> |
load numeric constant |
… à …, num |
41 |
ldftn |
load method pointer |
… à …, ftn |
42 |
ldind.<type> |
load value indirect onto the stack |
…, addr à …, value |
43 |
ldloc |
load local variable onto the stack |
… à …, value |
44 |
ldloca.<length> |
load local variable address |
… à …, address |
45 |
ldnull |
load a null pointer |
… à …, null value |
46 |
leave.<length> |
exit a protected region of code |
…, à |
47 |
localloc |
allocate space in the local dynamic memory pool |
size à address |
48 |
mul |
multiply values |
…, value1, value2 à …, result |
49 |
mul.ovf<type> |
multiply integer values with overflow check |
…, value1, value2 à …, result |
50 |
neg |
negate |
…, value à …, result |
51 |
nop |
no operation |
…, à …, |
52 |
not |
bitwise complement |
…, value à …, result |
53 |
or |
bitwise OR |
…, value1, value2 à …, result |
54 |
pop |
remove the top element of the stack |
…, value à … |
55 |
rem |
compute the remainder |
…, value1, value2 à …, result |
56 |
rem.un |
compute integer remainder, unsigned |
…, value1, value2 à …, result |
57 |
ret |
return from method |
retVal on callee evaluation stack (not always present) à …, retVal on caller evaluation stack (not always present) |
58 |
shl |
shift integer left |
…, value, shiftAmount à …, result |
59 |
shr |
shift integer right |
…, value, shiftAmount à …, result |
60 |
shr.un |
shift integer right, unsigned |
…, value, shiftAmount à …, result |
61 |
starg.<length> |
store a value in an argument slot |
…, value à …, |
62 |
stind.<type> |
store value indirect from stack |
…, addr, val à … |
63 |
stloc |
pop value from stack to local variable |
…, value à … |
64 |
sub |
substract numeric values |
…, value1, value2 à …, result |
65 |
sub.ovf.<type> |
substract integer values, checking for overflow |
…, value1, value2 à …, result |
66 |
switch |
table switch on value |
…, value à …, |
67 |
xor |
bitwise XOR |
..., value1, value2 à ..., result |
转载于:https://www.cnblogs.com/croot/p/3492745.html
[查阅]MSIL Instruction Set相关推荐
- MSIL Instruction Set
MSIL Instruction Set Base Instructions Instruction Description Stack Transition 1 add add two values ...
- [原创]深入理解C# 3.x的新特性(3):从Delegate、Anonymous Method到Lambda Expression
较之前一个版本,对于C# 3.x和VB 9来说,LINQ是最具吸引力的.基本上很多的新的特性都是围绕着LINQ的实现来设计的.借助Extension Method,我们可以为LINQ定义一系列的Ope ...
- 解密微软中间语言:MSIL
在.Net框架中,公共语言基础结构使用公共语言规范来绑定不同的语言.通过要求不同的语言至少要实现公共类型系统(CTS)包含在公共语言规范中的部分,公共语言基础结构允许不同的语言使用.Net框架.因此在 ...
- 微软中间语言—MSIL(转载)
在.Net框架中,公共语言基础结构使用公共语言规范来绑定不同的语言.通过要求不同的语言至少要实现公共类型系统(CTS)包含在公共语言规范中的部分,公共语言基础结构允许不同的语言使用.Net框架.因此在 ...
- C#语言:MSIL指令
通常一个IL指令有操作码(opcode)和指令参数(instruction parameter,有时也称作操作数 operand)两个部分构成,操作码长度为1或2字节,当为2字节长时,第1个字节总是0 ...
- 解决英伟达Jetson平台使用Python时的出现“Illegal instruction(cpre dumped)”错误
问题描述 笔者在使用Jetson NX平台配置深度学习开发环境,安装好了PyTorch(1.7.0)与torchvision(0.8.1)后,在安装"seaborn"出现以下问题: ...
- LLVM IR(五)——IR指令介绍(Instruction Reference)
可以转载,请注明出处! 文章目录 5.1 终端指令(Terminator Instructions) ret指令 br指令 switch指令 indirectbr指令 invoke指令 callbr等 ...
- 【原创翻译】The Case for the Reduced Instruction Set Computer
RISC机的例子 David A. Patterson 加州大学伯克利分校计算机科学系 David R. Ditzel 贝尔实验室计算科学研究中心 介绍 计算机体系结构最主要的目标之一就是设计比之前产 ...
- MSIL 教程(二):数组、分支、循环、使用不安全代码和如何调用Win32 API(转)...
转自:http://www.cnblogs.com/Yahong111/archive/2007/08/16/857574.html 续上文[翻译]MSIL 教程(一) ,本文继续讲解数组.分支.循环 ...
- 一些查阅个人隐私信息的网站——国内的基本上都查不到
暴露住址电话算什么, 这些无良网站连你的相亲网站都泄露得一干二净! 2017-06-13 10:35 社交 from:http://www.sohu.com/a/148430014_252846 大家 ...
最新文章
- Opencv cv2.KalmanFilter 鼠标跟踪
- multisim 12.0安装教程
- bzoj2005: [Noi2010]能量采集
- python全局变量的声明和使用_Python二级(07)——函数和代码复用
- xshell连接linux出现乱码
- 你的简历已经被机器人筛选了
- 走捷径拿到大厂25K高级测试Offer,别不服!
- mysql atlas 实现读写分离分担数据库压力
- 把流量变现赚钱的一些想法
- python网络爬虫从入门到精通吕云翔pdf_Python 网络爬虫从入门到精通
- 4刀最多切割一个正方体为多少部分
- 虚拟机ubuntu16.04下cheese 摄像头黑屏花屏问题
- android 程序运行不了,Android程序运行时,真机不能用
- Android Handler消息机制不完全解析
- python学习笔记(七):运算符和流程控制
- 情以何堪的伤感QQ日志分享:一句话,了断一切
- 用DOS命令关闭端口
- 微型计算机原理与接口技术ppt,单片机原理与接口技术课件ppt
- 八卦图代码matlab,HTML5 Canvas arc()函数 八卦图示例
- Tree Rotations HYSBZ - 2212
热门文章
- sw如何缩放装配体_solidworks提高大型装配体的展示、设计效率
- f5 web服务器 位置,用Ctrl+F5向Web服务器索要最新鲜的信息!
- 城市定位html,城市定位页.html
- cstring 的GetBuffer() 和 ReleaseBuffer()
- xp电脑多少位怎么看_怎么看电脑是32位还是64位
- excel单元格内加空格_Excel基础知识,你懂多少?
- ubuntu 卸载python_如何在各种环境下正确安装python——Linux
- mysql redo log 几个组_必须了解的mysql三大日志,你知道几个?
- 如何查看页面是否开启gzip压缩
- VNC 远程重装 Linux