MSIL指令\操作\Opcode对照表

MSIL指令\操作\Opcode对照表
Opcode 名称 参数 弹出(Pop) 压入(Push)
00 nop      
01 break      
02 ldarg.0     *
03 ldarg.1     *
04 ldarg.2     *
05 ldarg.3     *
06 ldloc.0     *
07 ldloc.1     *
08 ldloc.2     *
09 ldloc.3     *
0A stloc.0   *  
0B stloc.1   *  
0C stloc.2   *  
0D stloc.3   *  
0E ldarg.s uint8   *
0F ldarga.s uint8   &
10 starg.s uint8 *  
11 ldloc.s uint8   *
12 ldloca.s uint8   &
13 stloc.s uint8 *  
14 ldnull     &=0
15 ldc.i4.m1,ldc.i4.M1     int32=–1
16 ldc.i4.0     int32=0
17 ldc.i4.1     int32=1
18 ldc.i4.2     int32=2
19 ldc.i4.3     int32=3
1A ldc.i4.4     int32=4
1B ldc.i4.5     int32=5
1C ldc.i4.6     int32=6
1D ldc.i4.7     int32=7
1E ldc.i4.8     int32=8
1F ldc.i4.s int8   int32
20 ldc.i4 int32   int32
21 ldc.i8 int64   int64
22 ldc.r4 float32   Float
23 ldc.r8 float64   Float
25 dup   * *,*
26 pop   *  
27 jmp <Method>    
28 call <Method> N个参数 Ret.value
29 calli <Signature> N个参数 Ret.value
2A ret   *  
2B br.s int8    
2C brfalse.s,brnull.s,brzero.s int8 int32  
2D brtrue.s,brinst.s int8 int32  
2E beq.s int8 *,*  
2F bge.s int8 *,*  
30 bgt.s int8 *,*  
31 ble.s int8 *,*  
32 blt.s int8 *,*  
33 bne.un.s int8 *,*  
34 bge.un.s int8 *,*  
35 bgt.un.s int8 *,*  
36 ble.un.s int8 *,*  
37 blt.un.s int8 *,*  
38 br int32    
39 brfalse,brnull,brzero int32 int32  
3A brtrue,brinst int32 int32  
3B beq int32 *,*  
3C bge int32 *,*  
3D bgt int32 *,*  
3E ble int32 *,*  
3F blt int32 *,*  
40 bne.un int32 *,*  
41 bge.un int32 *,*  
42 bgt.un int32 *,*  
43 ble.un int32 *,*  
44 blt.un int32 *,*  
45 switch (uint32=N)+N(int32) int32  
46 ldind.i1   & int32
47 ldind.u1   & int32
48 ldind.i2   & int32
49 ldind.u2   & int32
4A ldind.i4   & int32
4B ldind.u4   & int32
4C ldind.i8,ldind.u8   & int64
4D ldind.i   & int32
4E ldind.r4   & Float
4F ldind.r8   & Float
50 ldind.ref   & &
51 stind.ref   &,&  
52 stind.i1   int32,&  
53 stind.i2   int32,&  
54 stind.i4   int32,&  
55 stind.i8   int32,&  
56 stind.r4   Float,&  
57 stind.r8   Float,&  
58 add   *,* *
59 sub   *,* *
5A mul   *,* *
5B div   *,* *
5C div.un   *,* *
5D rem   *,* *
5E rem.un   *,* *
5F and   *,* *
60 or   *,* *
61 xor   *,* *
62 shl   *,* *
63 shr   *,* *
64 shr.un   *,* *
65 neg   * *
66 not   * *
67 conv.i1   * int32
68 conv.i2   * int32
69 conv.i4   * int32
6A conv.i8   * int64
6B conv.r4   * Float
6C conv.r8   * Float
6D conv.u4   * int32
6E conv.u8   * int64
6F callvirt <Method> N个参数 Ret.value
70 cpobj <Type> &,&  
71 ldobj <Type> & *
72 ldstr <String>   o
73 newobj <Method> N个参数 o
74 castclass <Type> o o
75 isinst <Type> o int32
76 conv.r.un   * Float
79 unbox <Type> o &
7A throw   o  
7B ldfld <Field> o/&/* *
7C ldflda <Field> o/& &
7D stfld <Field> o/&,*  
7E ldsfld <Field>   *
7F ldsflda <Field>   &
80 stsfld <Field> *  
81 stobj <Type> &,*  
82 conv.ovf.i1.un   * int32
83 conv.ovf.i2.un   * int32
84 conv.ovf.i4.un   * int32
85 conv.ovf.i8.un   * int64
86 conv.ovf.u1.un   * int32
87 conv.ovf.u2.un   * int32
88 conv.ovf.u4.un   * int32
89 conv.ovf.u8.un   * int64
8A conv.ovf.i.un   * int32
8B conv.ovf.u.un   * int64
8C box <Type> * o
8D newarr <Type> int32 o
8E ldlen   o int32
8F ldelema <Type> int32,o &
90 ldelem.i1   int32,o int32
91 ldelem.u1   int32,o int32
92 ldelem.i2   int32,o int32
93 ldelem.u2   int32,o int32
94 ldelem.i4   int32,o int32
95 ldelem.u4   int32,o int32
96 ldelem.i8,ldelem.u8   int32,o int64
97 ldelem.i   int32,o int32
98 ldelem.r4   int32,o Float
99 ldelem.r8   int32,o Float
9A ldelem.ref   int32,o o/&
9B stelem.i   int32,int32,o  
9C stelem.i1   int32,int32,o  
9D stelem.i2   int32,int32,o  
9E stelem.i4   int32,int32,o  
9F stelem.i8   int64,int32,o  
A0 stelem.r4   Float,int32,o  
A1 stelem.r8   Float,int32,o  
A2 stelem.ref   o/&,int32,o  
A3 ldelem,ldelem.any <Type> int32,o *
A4 stelem,stelem.any <Type> o/&,int32,o  
A5 unbox.any <Type> o *
B3 conv.ovf.i1   * int32
B4 conv.ovf.u1   * int32
B5 conv.ovf.i2   * int32
B6 conv.ovf.u2   * int32
B7 conv.ovf.i4   * int32
B8 conv.ovf.u4   * int32
B9 conv.ovf.i8   * int64
BA conv.ovf.u8   * int64
C2 refanyval <Type> * &
C3 ckfinite   * Float
C6 mkrefany <Type> & &
D0 ldtoken <Type>/<Field>/<Method> &  
D1 conv.u2   * int32
D2 conv.u1   * int32
D3 conv.i   * int32
D4 conv.ovf.i   * int32
D5 conv.ovf.u   * int32
D6 add.ovf   *,* *
D7 add.ovf.un   *,* *
D8 mul.ovf   *,* *
D9 mul.ovf.un   *,* *
DA sub.ovf   *,* *
DB sub.ovf.un   *,* *
DC endfinally,endfault      
DD leave int32    
DE leave.s int8    
DF stind.i   int32,&  
E0 conv.u   * int32
FE00 arglist   * &
FE01 ceq   *,* int32
FE02 cgt   *,* int32
FE03 cgt.un   *,* int32
FE04 clt   *,* int32
FE05 clt.un   *,* int32
FE06 ldftn <Method>   &
FE07 ldvirtftn <Method> o &
FE09 ldarg uint32   *
FE0A ldarga uint32   &
FE0B starg uint32 *  
FE0C ldloc uint32   *
FE0D ldloca uint32   &
FE0E stloc uint32 *  
FE0F localloc   int32 &
FE11 endfilter   int32  
FE12 unaligned. uint8    
FE13 volatile.      
FE14 tail.      
FE15 initobj <Type> &  
FE16 constrained. <Type>    
FE17 cpblk   int32,&,&  
FE18 initblk   int32,int32,&  
FE1A rethrow      
FE1C sizeof <Type>   int32
FE1D refanytype   * &
FE1E readonly.      
         
posted @ 2012-01-15 04:26  小墨的童鞋  阅读(2216)  评论(1编辑  收藏  举报