MSIL指令速查表
来源:互联网 发布:竞价采购软件 编辑:程序博客网 时间:2024/05/06 01:50
转载之 http://www.cnblogs.com/wingofwind/articles/116960.html
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
Object Model Instructions
Instruction
Description
Stack Transition
1
box
convert value type to object reference
…, valueType à …, obj
2
callvirt
call a method associated, a runtime, with an object
…, obj, arg1, … argN à …, returnVal (not always returned)
3
cast class
cast an object to a class
…, obj à …, obj2
4
cpobj
copy a value type
…, destValObj, srcValObj à …,
5
initobj
Initialize a value type
…,addrOfValObj à …,
6
isinst
test if an object is is an instance of a class or interface
…, obj à …, result
7
ldelem.<type>
load an element fo an array
…, array, index à …, value
8
ldelema
load address of an element of an array
…, array, index à …, address
9
ldfld
load field of an object
…, obj à …, value
10
ldflda
load field address
…, obj à …, address
11
ldlen
load the length of an array
…, array à …, length
12
ldobj
copy value type to the stack
…, addrOfValObj à …, valObj
13
ldsfld
load static field of a class
…, à …, value
14
ldsflda
load static field address
…, à …, address
15
ldstr
load a literal string
…, à …, string
16
ldtoken
load the runtime representation of metadata token
… à …, RuntimeHandle
17
ldvirtfn
load a virtual method pointer
… object à …, ftn
18
mkrefany
push a typed reference on the stack
…, ptr à …, typedRef
19
newarr
Create a zero-base, on-dimensional array
…, numElems à …, array
20
newobj
create a new object
…, arg1, … argN à …, obj
21
refanytype
load the type out of a typed reference
…, TypedRef à …, type
22
refanyval
load the address out of a typed reference
…, TypedRef à …, address
23
rethrow
rethrow the current exception
…, à …,
24
sizeof
load the size in bytes of a value type
…, à …, size (4 bytes, unsigned)
25
stelem.<type>
store an element of an array
…, array, index, value à …,
26
stfld
store into a field of an object
…, obj, value à …,
27
stobj
store a value type from the stack into memory
…, addr, valObj à …,
28
stsfld
store a static field of class
…, val à …,
29
throw
throw an exception
…, object à …,
30
unbox
convert boxed value type to its raw form
- MSIL指令速查表
- MSIL指令速查表
- MSIL指令速查表
- MSIL指令速查表
- MSIL指令速查表
- MSIL指令速查表
- MSIL 指令大全
- MSIL 指令大全
- MSIL/CIL 指令集合
- MSIL指令大全
- C#语言:MSIL指令
- msil
- MSIL指令及其参数详解(ldc指令诠释篇)
- mono:直接使用MSIL指令编写mono程序
- 动态创建方法和使用msil指令动态写入方法一(了解ILGenerator)
- 动态创建方法和使用msil指令动态写入方法一
- 解析MSIL
- MSIL简介
- 侨兴收购飞思卡尔无线事业部是假新闻
- 非计算机专业软件设计师备考经验
- 专题:网银安全 刻不容缓——
- 英特尔® 线程挑战赛—数独
- 透视矫正插值公式的几何证明
- MSIL指令速查表
- 在网页中定义id
- 2007年8月31日
- tune2fs和fsck的用法
- 2007年9月1日
- scanf()函数被跳过不运行的原因
- solr 1.3 安装步骤
- 解决IE下Ext XXX is null or no object 的问题
- Java开发者需坚守的十大基本准则