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相关推荐

  1. MSIL Instruction Set

    MSIL Instruction Set Base Instructions Instruction Description Stack Transition 1 add add two values ...

  2. [原创]深入理解C# 3.x的新特性(3):从Delegate、Anonymous Method到Lambda Expression

    较之前一个版本,对于C# 3.x和VB 9来说,LINQ是最具吸引力的.基本上很多的新的特性都是围绕着LINQ的实现来设计的.借助Extension Method,我们可以为LINQ定义一系列的Ope ...

  3. 解密微软中间语言:MSIL

    在.Net框架中,公共语言基础结构使用公共语言规范来绑定不同的语言.通过要求不同的语言至少要实现公共类型系统(CTS)包含在公共语言规范中的部分,公共语言基础结构允许不同的语言使用.Net框架.因此在 ...

  4. 微软中间语言—MSIL(转载)

    在.Net框架中,公共语言基础结构使用公共语言规范来绑定不同的语言.通过要求不同的语言至少要实现公共类型系统(CTS)包含在公共语言规范中的部分,公共语言基础结构允许不同的语言使用.Net框架.因此在 ...

  5. C#语言:MSIL指令

    通常一个IL指令有操作码(opcode)和指令参数(instruction parameter,有时也称作操作数 operand)两个部分构成,操作码长度为1或2字节,当为2字节长时,第1个字节总是0 ...

  6. 解决英伟达Jetson平台使用Python时的出现“Illegal instruction(cpre dumped)”错误

    问题描述 笔者在使用Jetson NX平台配置深度学习开发环境,安装好了PyTorch(1.7.0)与torchvision(0.8.1)后,在安装"seaborn"出现以下问题: ...

  7. LLVM IR(五)——IR指令介绍(Instruction Reference)

    可以转载,请注明出处! 文章目录 5.1 终端指令(Terminator Instructions) ret指令 br指令 switch指令 indirectbr指令 invoke指令 callbr等 ...

  8. 【原创翻译】The Case for the Reduced Instruction Set Computer

    RISC机的例子 David A. Patterson 加州大学伯克利分校计算机科学系 David R. Ditzel 贝尔实验室计算科学研究中心 介绍 计算机体系结构最主要的目标之一就是设计比之前产 ...

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

    转自:http://www.cnblogs.com/Yahong111/archive/2007/08/16/857574.html 续上文[翻译]MSIL 教程(一) ,本文继续讲解数组.分支.循环 ...

  10. 一些查阅个人隐私信息的网站——国内的基本上都查不到

    暴露住址电话算什么, 这些无良网站连你的相亲网站都泄露得一干二净! 2017-06-13 10:35 社交 from:http://www.sohu.com/a/148430014_252846 大家 ...

最新文章

  1. Opencv cv2.KalmanFilter 鼠标跟踪
  2. multisim 12.0安装教程
  3. bzoj2005: [Noi2010]能量采集
  4. python全局变量的声明和使用_Python二级(07)——函数和代码复用
  5. xshell连接linux出现乱码
  6. 你的简历已经被机器人筛选了
  7. 走捷径拿到大厂25K高级测试Offer,别不服!
  8. mysql atlas 实现读写分离分担数据库压力
  9. 把流量变现赚钱的一些想法
  10. python网络爬虫从入门到精通吕云翔pdf_Python 网络爬虫从入门到精通
  11. 4刀最多切割一个正方体为多少部分
  12. 虚拟机ubuntu16.04下cheese 摄像头黑屏花屏问题
  13. android 程序运行不了,Android程序运行时,真机不能用
  14. Android Handler消息机制不完全解析
  15. python学习笔记(七):运算符和流程控制
  16. 情以何堪的伤感QQ日志分享:一句话,了断一切
  17. 用DOS命令关闭端口
  18. 微型计算机原理与接口技术ppt,单片机原理与接口技术课件ppt
  19. 八卦图代码matlab,HTML5 Canvas arc()函数 八卦图示例
  20. Tree Rotations HYSBZ - 2212

热门文章

  1. sw如何缩放装配体_solidworks提高大型装配体的展示、设计效率
  2. f5 web服务器 位置,用Ctrl+F5向Web服务器索要最新鲜的信息!
  3. 城市定位html,城市定位页.html
  4. cstring 的GetBuffer() 和 ReleaseBuffer()
  5. xp电脑多少位怎么看_怎么看电脑是32位还是64位
  6. excel单元格内加空格_Excel基础知识,你懂多少?
  7. ubuntu 卸载python_如何在各种环境下正确安装python——Linux
  8. mysql redo log 几个组_必须了解的mysql三大日志,你知道几个?
  9. 如何查看页面是否开启gzip压缩
  10. VNC 远程重装 Linux