IL指令集 MSIL Instruction Set 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 than or equal to …, value1, value2 … 7 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 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 unorded …, value1, value2 … 15 br. unconditional branch …, … 16 break breakpoint instruction …, … 17 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 …, 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. data conversion …, value …, result 28 conv.ovf data conversion with overflow detection …, value …, result 29 conv.ovf..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. 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 45 ldnull 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 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. 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 …, 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. 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. 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指令集】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。