When I first read the IL, many instructions couldn't remember, you print the following two forms, prepare for quick check before the case! Initially I read IL, it is doing this. Later, I taught others to compile, and others must print this form first. You can also get information on your own text. However, maybe I organize this form, it is more convenient! Download address: http://www.cnblogs.com/files/jobs/msil.rar
Base Instructions
Instruction
Description
Stack Transition
1
Add
Add Two Values, Returning a New Value
..., Value1, Value2à ..., result
2
Add.ovf.
Add Integer Value with overflow check
..., Value1, Value2à ..., result
3
and
Bitwise and
..., Value1, Value2 à ..., result
4
arglist
Get Argument List
... à ..., arglisthandle
5
BEQ.
Branch On Equal
..., Value1, Value2 à ...
6
Bge.
Branch on Greater Thanles or Equal TO
..., Value1, Value2 à ...
Seduce
Bge.un.
Branch On Greater / Equal, unsigned or unordered
..., Value1, Value2 à ...
8
BGT.
Branch on Greater Than
..., Value1, Value2 à ...
9
BGT.UN
Branch on Greater Than, Unsigned or Unordered
..., Value1, Value2 à ...
10
Ble.
Branch On Less Thanlet Than Or Equal To
..., Value1, Value2 à ...
11
BLE..un
Branch on less / equal, unsigned or unordered
..., Value1, Value2 à ...
12
Blt.
Branch On Less Than
..., Value1, Value2 à ...
13
Blt.un.
Branch On Less Than, Unsigned or Unordered
..., Value1, Value2 à ...
14
Bne.un
Branch on NOT Equal or Urded
..., Value1, Value2 à ...
15
Br.
Unconditional Branch
..., à ...
16
Break
BreakPoint Instruction
..., à ...
In one
Brfalse.
Branch on false, null, or zero
..., Value à ...
18
BRTRUE.
Branch on non-false or non-null
..., Value à ...
19
Call
Call a Method
..., Arg1, Arg2 ... argn à ..., return (not always returned)
20
Calli
Indirect Method Call ..., Arg1, Arg2 ... Argn, ftn à ..., return (not always returned)
twenty one
Ceq
Compare Equal
..., Value1, Value2à ..., result
twenty two
CGT
Compare Greater Than
..., Value1, Value2à ..., result
twenty three
CGT.UN
Compare greater tran, unsigned or unordered
..., Value1, Value2à ..., result
twenty four
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.
Data Conversion
..., Value à ..., result
Twist
Conv.ovf
Data Conversion with overflow detection
..., Value à ..., result
29
Conv.ovf.
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.
Load Argument Onto The Stack
... à ..., value
39
Ldarga.
Load an Argument Address
..., à ..., address of argument Number Argnum
40
LDC.
Load Numeric Constant
... à ..., Num
41
LDFTN
Load Method Pointer
... à ..., ftn
42
Ldind.
Load Value Indirect Onto the Stack
..., Addr à ..., value
43
LDLOC
Load Local Variable Onto the Stack
... à ..., value
44
LDloca.
Load Local Variable Address
... à ..., address
45LDNULL
Load a null pointer
... à ..., null value
46
Leave.
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
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
oral
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.
Store a value in an Argument Slot
..., Value à ...,
62
Stind.
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.
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
..., valueetype à ..., 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 is is is is is is an instance of a class or interface
..., Obj à ..., result
Seduce
LDELEM.
Load an element fo an arch
..., Array, INDEX à ..., value
8
LDELMA
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
In one
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
twenty one
RefanyType
Load the Type Out of a typed reason
..., Typedref à ..., Type
twenty two
REFANYVAL
Load the address out of a typed reason
..., Typedref à ..., address
twenty three
Rethrow
Rethrow the current exception
..., à ...,
twenty four
Sizeof
Load the size in bytes of a value type
..., à ..., size (4 bytes, unsigned)
25
STELEM.
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 à ...,
Twist
STSFLD
Store A Static Field of Class
..., Val à ...,
29
Throw
Throw an Exception
..., Object à ...,
30
Unbox
Convert Boxed Value Type To ITS Raw Form
Reprinted: http://www.cnblogs.com/jobs/archive/2004/07/21/26022.aspx