搜尋


返回清單
切換到指定樓層
通知這文章過時或找檔案 發表主題

【轉貼】IL指令速查大全(文長)

[複製連結]
1
dcr345678 ( Lv.30 大天使 ) 發表於 2015-10-30 20:15:11 | 只看該作者 回覆獎勵 |升序瀏覽 |閱讀模式

名稱        說明

Add        將兩個值相加並將結果推送到計算堆疊上。
Add.Ovf        將兩個整數相加,執行溢出檢查,並且將結果推送到計算堆疊上。
Add.Ovf.Un        將兩個不帶正負號的整數值相加,執行溢出檢查,並且將結果推送到計算堆疊上。
And        計算兩個值的按位“與”並將結果推送到計算堆疊上。
Arglist        返回指向當前方法的參數列表的非託管指標。
Beq        如果兩個值相等,則將控制轉移到目標指令。
Beq.S        如果兩個值相等,則將控制轉移到目標指令(短格式)。
Bge        如果第一個值大於或等於第二個值,則將控制轉移到目標指令。
Bge.S        如果第一個值大於或等於第二個值,則將控制轉移到目標指令(短格式)。
Bge.Un        當比較不帶正負號的整數值或不可排序的浮點型值時,如果第一個值大於第二個值,則將控制轉移到目標指令。
Bge.Un.S        當比較不帶正負號的整數值或不可排序的浮點型值時,如果第一個值大於第二個值,則將控制轉移到目標指令(短格式)。
Bgt        如果第一個值大於第二個值,則將控制轉移到目標指令。
Bgt.S        如果第一個值大於第二個值,則將控制轉移到目標指令(短格式)。
Bgt.Un        當比較不帶正負號的整數值或不可排序的浮點型值時,如果第一個值大於第二個值,則將控制轉移到目標指令。
Bgt.Un.S        當比較不帶正負號的整數值或不可排序的浮點型值時,如果第一個值大於第二個值,則將控制轉移到目標指令(短格式)。
Ble        如果第一個值小於或等於第二個值,則將控制轉移到目標指令。
Ble.S        如果第一個值小於或等於第二個值,則將控制轉移到目標指令(短格式)。
Ble.Un        當比較不帶正負號的整數值或不可排序的浮點型值時,如果第一個值小於或等於第二個值,則將控制轉移到目標指令。
Ble.Un.S        當比較不帶正負號的整數值或不可排序的浮點值時,如果第一個值小於或等於第二個值,則將控制權轉移到目標指令(短格式)。
Blt        如果第一個值小於第二個值,則將控制轉移到目標指令。
Blt.S        如果第一個值小於第二個值,則將控制轉移到目標指令(短格式)。
Blt.Un        當比較不帶正負號的整數值或不可排序的浮點型值時,如果第一個值小於第二個值,則將控制轉移到目標指令。
Blt.Un.S        當比較不帶正負號的整數值或不可排序的浮點型值時,如果第一個值小於第二個值,則將控制轉移到目標指令(短格式)。
Bne.Un        當兩個不帶正負號的整數值或不可排序的浮點型值不相等時,將控制轉移到目標指令。
Bne.Un.S        當兩個不帶正負號的整數值或不可排序的浮點型值不相等時,將控制轉移到目標指令(短格式)。
Box        將值類轉換為對象引用(O 類型)。
Br        無條件地將控制轉移到目標指令。
Br.S        無條件地將控制轉移到目標指令(短格式)。
Break        向公共語言結構 (CLI) 發出信號以通知調試器已撞上了一個中斷點。
Brfalse        如果 value 為 false、空引用(Visual Basic 中的 Nothing)或零,則將控制轉移到目標指令。
Brfalse.S        如果 value 為 false、空引用或零,則將控制轉移到目標指令。
Brtrue        如果 value 為 true、非空或非零,則將控制轉移到目標指令。
Brtrue.S        如果 value 為 true、非空或非零,則將控制轉移到目標指令(短格式)。
Call        調用由傳遞的方法說明符指示的方法。
Calli        通過調用約定描述的參數調用在計算堆疊上指示的方法(作為指向入口點的指標)。
Callvirt        對物件調用後期綁定方法,並且將返回值推送到計算堆疊上。
Castclass        嘗試將引用傳遞的物件轉換為指定的類。
Ceq        比較兩個值。如果這兩個值相等,則將整數值 1 (int32) 推送到計算堆疊上;否則,將 0 (int32) 推送到計算堆疊上。
Cgt        比較兩個值。如果第一個值大於第二個值,則將整數值 1 (int32) 推送到計算堆疊上;反之,將 0 (int32) 推送到計算堆疊上。
Cgt.Un        比較兩個無符號的或不可排序的值。如果第一個值大於第二個值,則將整數值 1 (int32) 推送到計算堆疊上;反之,將 0 (int32) 推送到計算堆疊上。
Ckfinite        如果值不是有限數,則引發 ArithmeticException。
Clt        比較兩個值。如果第一個值小於第二個值,則將整數值 1 (int32) 推送到計算堆疊上;反之,將 0 (int32) 推送到計算堆疊上。
Clt.Un        比較無符號的或不可排序的值 value1 和 value2。如果 value1 小於 value2,則將整數值 1 (int32 ) 推送到計算堆疊上;反之,將 0 ( int32 ) 推送到計算堆疊上。
Constrained        約束要對其進行虛方法調用的類型。
Conv.I        將位於計算堆疊頂部的值轉換為 native int。
Conv.I1        將位於計算堆疊頂部的值轉換為 int8,然後將其擴展(填充)為 int32。
Conv.I2        將位於計算堆疊頂部的值轉換為 int16,然後將其擴展(填充)為 int32。
Conv.I4        將位於計算堆疊頂部的值轉換為 int32。
Conv.I8        將位於計算堆疊頂部的值轉換為 int64。
Conv.Ovf.I        將位於計算堆疊頂部的有符號值轉換為有符號 native int,並在溢出時引發 OverflowException。
Conv.Ovf.I.Un        將位於計算堆疊頂部的無符號值轉換為有符號 native int,並在溢出時引發 OverflowException。
Conv.Ovf.I1        將位於計算堆疊頂部的有符號值轉換為有符號 int8 並將其擴展為 int32,並在溢出時引發 OverflowException。
Conv.Ovf.I1.Un        將位於計算堆疊頂部的無符號值轉換為有符號 int8 並將其擴展為 int32,並在溢出時引發 OverflowException。
Conv.Ovf.I2        將位於計算堆疊頂部的有符號值轉換為有符號 int16 並將其擴展為 int32,並在溢出時引發 OverflowException。
Conv.Ovf.I2.Un        將位於計算堆疊頂部的無符號值轉換為有符號 int16 並將其擴展為 int32,並在溢出時引發 OverflowException。
Conv.Ovf.I4        將位於計算堆疊頂部的有符號值轉換為有符號 int32,並在溢出時引發 OverflowException。
Conv.Ovf.I4.Un        將位於計算堆疊頂部的無符號值轉換為有符號 int32,並在溢出時引發 OverflowException。
Conv.Ovf.I8        將位於計算堆疊頂部的有符號值轉換為有符號 int64,並在溢出時引發 OverflowException。
Conv.Ovf.I8.Un        將位於計算堆疊頂部的無符號值轉換為有符號 int64,並在溢出時引發 OverflowException。
Conv.Ovf.U        將位於計算堆疊頂部的有符號值轉換為 unsigned native int,並在溢出時引發 OverflowException。
Conv.Ovf.U.Un        將位於計算堆疊頂部的無符號值轉換為 unsigned native int,並在溢出時引發 OverflowException。
Conv.Ovf.U1        將位於計算堆疊頂部的有符號值轉換為 unsigned int8 並將其擴展為 int32,並在溢出時引發 OverflowException。
Conv.Ovf.U1.Un        將位於計算堆疊頂部的無符號值轉換為 unsigned int8 並將其擴展為 int32,並在溢出時引發 OverflowException。
Conv.Ovf.U2        將位於計算堆疊頂部的有符號值轉換為 unsigned int16 並將其擴展為 int32,並在溢出時引發 OverflowException。
Conv.Ovf.U2.Un        將位於計算堆疊頂部的無符號值轉換為 unsigned int16 並將其擴展為 int32,並在溢出時引發 OverflowException。
Conv.Ovf.U4        將位於計算堆疊頂部的有符號值轉換為 unsigned int32,並在溢出時引發 OverflowException。
Conv.Ovf.U4.Un        將位於計算堆疊頂部的無符號值轉換為 unsigned int32,並在溢出時引發 OverflowException。
Conv.Ovf.U8        將位於計算堆疊頂部的有符號值轉換為 unsigned int64,並在溢出時引發 OverflowException。
Conv.Ovf.U8.Un        將位於計算堆疊頂部的無符號值轉換為 unsigned int64,並在溢出時引發 OverflowException。
Conv.R.Un        將位於計算堆疊頂部的不帶正負號的整數值轉換為 float32。
Conv.R4        將位於計算堆疊頂部的值轉換為 float32。
Conv.R8        將位於計算堆疊頂部的值轉換為 float64。
Conv.U        將位於計算堆疊頂部的值轉換為 unsigned native int,然後將其擴展為 native int。
Conv.U1        將位於計算堆疊頂部的值轉換為 unsigned int8,然後將其擴展為 int32。
Conv.U2        將位於計算堆疊頂部的值轉換為 unsigned int16,然後將其擴展為 int32。
Conv.U4        將位於計算堆疊頂部的值轉換為 unsigned int32,然後將其擴展為 int32。
Conv.U8        將位於計算堆疊頂部的值轉換為 unsigned int64,然後將其擴展為 int64。
Cpblk        將指定數目的位元組從源位址複製到目標位址。
Cpobj        將位於物件(&、* 或 native int 類型)位址的數值型別複製到目標物件(&、* 或 native int 類型)的位址。
Div        將兩個值相除並將結果作為浮點(F 類型)或商(int32 類型)推送到計算堆疊上。
Div.Un        兩個不帶正負號的整數值相除並將結果 ( int32 ) 推送到計算堆疊上。
Dup        複製計算堆疊上當前最頂端的值,然後將副本推送到計算堆疊上。
Endfilter        將控制從異常的 filter 子句轉移回公共語言結構 (CLI) 例外處理常式。
Endfinally        將控制從異常塊的 fault 或 finally 子句轉移回公共語言結構 (CLI) 例外處理常式。
Initblk        將位於特定位址的記憶體的指定塊初始化為給定大小和初始值。
Initobj        將位於指定位址的數值型別的每個欄位初始化為空引用或適當的基元類型的 0。
Isinst        測試物件引用(O 類型)是否為特定類的實例。
Jmp        退出當前方法並跳至指定方法。
Ldarg        將參數(由指定索引值引用)載入到堆疊上。
Ldarg.0        將索引為 0 的參數載入到計算堆疊上。
Ldarg.1        將索引為 1 的參數載入到計算堆疊上。
Ldarg.2        將索引為 2 的參數載入到計算堆疊上。
Ldarg.3        將索引為 3 的參數載入到計算堆疊上。
Ldarg.S        將參數(由指定的短格式索引引用)載入到計算堆疊上。
Ldarga        將參數位址載入到計算堆疊上。
Ldarga.S        以短格式將參數位址載入到計算堆疊上。
Ldc.I4        將所提供的 int32 類型的值作為 int32 推送到計算堆疊上。
Ldc.I4.0        將整數值 0 作為 int32 推送到計算堆疊上。
Ldc.I4.1        將整數值 1 作為 int32 推送到計算堆疊上。
Ldc.I4.2        將整數值 2 作為 int32 推送到計算堆疊上。
Ldc.I4.3        將整數值 3 作為 int32 推送到計算堆疊上。
Ldc.I4.4        將整數值 4 作為 int32 推送到計算堆疊上。
Ldc.I4.5        將整數值 5 作為 int32 推送到計算堆疊上。
Ldc.I4.6        將整數值 6 作為 int32 推送到計算堆疊上。
Ldc.I4.7        將整數值 7 作為 int32 推送到計算堆疊上。
Ldc.I4.8        將整數值 8 作為 int32 推送到計算堆疊上。
Ldc.I4.M1        將整數值 -1 作為 int32 推送到計算堆疊上。
Ldc.I4.S        將提供的 int8 值作為 int32 推送到計算堆疊上(短格式)。
Ldc.I8        將所提供的 int64 類型的值作為 int64 推送到計算堆疊上。
Ldc.R4        將所提供的 float32 類型的值作為 F (float) 類型推送到計算堆疊上。
Ldc.R8        將所提供的 float64 類型的值作為 F (float) 類型推送到計算堆疊上。
Ldelem        按照指令中指定的類型,將指定陣列索引中的元素載入到計算堆疊的頂部。
Ldelem.I        將位於指定陣列索引處的 native int 類型的元素作為 native int 載入到計算堆疊的頂部。
Ldelem.I1        將位於指定陣列索引處的 int8 類型的元素作為 int32 載入到計算堆疊的頂部。
Ldelem.I2        將位於指定陣列索引處的 int16 類型的元素作為 int32 載入到計算堆疊的頂部。
Ldelem.I4        將位於指定陣列索引處的 int32 類型的元素作為 int32 載入到計算堆疊的頂部。
Ldelem.I8        將位於指定陣列索引處的 int64 類型的元素作為 int64 載入到計算堆疊的頂部。
Ldelem.R4        將位於指定陣列索引處的 float32 類型的元素作為 F 類型(浮點型)載入到計算堆疊的頂部。
Ldelem.R8        將位於指定陣列索引處的 float64 類型的元素作為 F 類型(浮點型)載入到計算堆疊的頂部。
Ldelem.Ref        將位於指定陣列索引處的包含物件引用的元素作為 O 類型(物件引用)載入到計算堆疊的頂部。
Ldelem.U1        將位於指定陣列索引處的 unsigned int8 類型的元素作為 int32 載入到計算堆疊的頂部。
Ldelem.U2        將位於指定陣列索引處的 unsigned int16 類型的元素作為 int32 載入到計算堆疊的頂部。
Ldelem.U4        將位於指定陣列索引處的 unsigned int32 類型的元素作為 int32 載入到計算堆疊的頂部。
Ldelema        將位於指定陣列索引的陣列元素的位址作為 & 類型(託管指標)載入到計算堆疊的頂部。
Ldfld        查找物件中其引用當前位於計算堆疊的欄位的值。
Ldflda        查找物件中其引用當前位於計算堆疊的欄位的位址。
Ldftn        將指向實現特定方法的本機代碼的非託管指標(native int 類型)推送到計算堆疊上。
Ldind.I        將 native int 類型的值作為 native int 間接載入到計算堆疊上。
Ldind.I1        將 int8 類型的值作為 int32 間接載入到計算堆疊上。
Ldind.I2        將 int16 類型的值作為 int32 間接載入到計算堆疊上。
Ldind.I4        將 int32 類型的值作為 int32 間接載入到計算堆疊上。
Ldind.I8        將 int64 類型的值作為 int64 間接載入到計算堆疊上。
Ldind.R4        將 float32 類型的值作為 F (float) 類型間接載入到計算堆疊上。
Ldind.R8        將 float64 類型的值作為 F (float) 類型間接載入到計算堆疊上。
Ldind.Ref        將物件引用作為 O(物件引用)類型間接載入到計算堆疊上。
Ldind.U1        將 unsigned int8 類型的值作為 int32 間接載入到計算堆疊上。
Ldind.U2        將 unsigned int16 類型的值作為 int32 間接載入到計算堆疊上。
Ldind.U4        將 unsigned int32 類型的值作為 int32 間接載入到計算堆疊上。
Ldlen        將從零開始的、一維陣列的元素的數目推送到計算堆疊上。
Ldloc        將指定索引處的區域變數載入到計算堆疊上。
Ldloc.0        將索引 0 處的區域變數載入到計算堆疊上。
Ldloc.1        將索引 1 處的區域變數載入到計算堆疊上。
Ldloc.2        將索引 2 處的區域變數載入到計算堆疊上。
Ldloc.3        將索引 3 處的區域變數載入到計算堆疊上。
Ldloc.S        將特定索引處的區域變數載入到計算堆疊上(短格式)。
Ldloca        將位於特定索引處的區域變數的位址載入到計算堆疊上。
Ldloca.S        將位於特定索引處的區域變數的位址載入到計算堆疊上(短格式)。
Ldnull        將空引用(O 類型)推送到計算堆疊上。
Ldobj        將位址指向的數值型別物件複製到計算堆疊的頂部。
Ldsfld        將靜態欄位的值推送到計算堆疊上。
Ldsflda        將靜態欄位的位址推送到計算堆疊上。
Ldstr        推送對中繼資料中存儲的字串的新物件引用。
Ldtoken        將中繼資料標記轉換為其運行時表示形式,並將其推送到計算堆疊上。
Ldvirtftn        將指向實現與指定物件關聯的特定虛方法的本機代碼的非託管指標(native int 類型)推送到計算堆疊上。
Leave        退出受保護的代碼區域,無條件將控制轉移到特定目標指令。
Leave.S        退出受保護的代碼區域,無條件將控制轉移到目標指令(縮寫形式)。
Localloc        從本地動態記憶體池分配特定數目的位元組並將第一個分配的位元組的位址(瞬態指標,* 類型)推送到計算堆疊上。
Mkrefany        將對特定類型實例的類型化引用推送到計算堆疊上。
Mul        將兩個值相乘並將結果推送到計算堆疊上。
Mul.Ovf        將兩個整數值相乘,執行溢出檢查,並將結果推送到計算堆疊上。
Mul.Ovf.Un        將兩個不帶正負號的整數值相乘,執行溢出檢查,並將結果推送到計算堆疊上。
Neg        對一個值執行求反並將結果推送到計算堆疊上。
Newarr        將對新的從零開始的一維陣列(其元素屬於特定類型)的物件引用推送到計算堆疊上。
Newobj        創建一個數值型別的新物件或新實例,並將物件引用(O 類型)推送到計算堆疊上。
Nop        如果修補操作碼,則填充空間。儘管可能消耗處理週期,但未執行任何有意義的操作。
Not        計算堆疊頂部整數值的按位元求補並將結果作為相同的類型推送到計算堆疊上。
Or        計算位於堆疊頂部的兩個整數值的按位元求補並將結果推送到計算堆疊上。
Pop        移除當前位於計算堆疊頂部的值。
Prefix1        基礎結構。此指令為保留指令。
Prefix2        基礎結構。此指令為保留指令。
Prefix3        基礎結構。此指令為保留指令。
Prefix4        基礎結構。此指令為保留指令。
Prefix5        基礎結構。此指令為保留指令。
Prefix6        基礎結構。此指令為保留指令。
Prefix7        基礎結構。此指令為保留指令。
Prefixref        基礎結構。此指令為保留指令。
Readonly        指定後面的陣列位址操作在運行時不執行類型檢查,並且返回可變性受限的託管指針。
Refanytype        檢索嵌入在類型化引用內的類型標記。
Refanyval        檢索嵌入在類型化引用內的地址(& 類型)。
Rem        將兩個值相除並將餘數推送到計算堆疊上。
Rem.Un        將兩個無符號值相除並將餘數推送到計算堆疊上。
Ret        從當前方法返回,並將返回值(如果存在)從調用方的計算堆疊推送到被調用方的計算堆疊上。
Rethrow        再次引發當前異常。
Shl        將整數值左移(用零填充)指定的位數,並將結果推送到計算堆疊上。
Shr        將整數值右移(保留符號)指定的位元數,並將結果推送到計算堆疊上。
Shr.Un        將不帶正負號的整數值右移(用零填充)指定的位數,並將結果推送到計算堆疊上。
Sizeof        將提供的數值型別的大小(以位元組為單位)推送到計算堆疊上。
Starg        將位於計算堆疊頂部的值存儲到位於指定索引的參數槽中。
Starg.S        將位於計算堆疊頂部的值存儲在參數槽中的指定索引處(短格式)。
Stelem        用計算堆疊中的值替換給定索引處的陣列元素,其類型在指令中指定。
Stelem.I        用計算堆疊上的 native int 值替換給定索引處的陣列元素。
Stelem.I1        用計算堆疊上的 int8 值替換給定索引處的陣列元素。
Stelem.I2        用計算堆疊上的 int16 值替換給定索引處的陣列元素。
Stelem.I4        用計算堆疊上的 int32 值替換給定索引處的陣列元素。
Stelem.I8        用計算堆疊上的 int64 值替換給定索引處的陣列元素。
Stelem.R4        用計算堆疊上的 float32 值替換給定索引處的陣列元素。
Stelem.R8        用計算堆疊上的 float64 值替換給定索引處的陣列元素。
Stelem.Ref        用計算堆疊上的物件 ref 值(O 類型)替換給定索引處的陣列元素。
Stfld        用新值替換在物件引用或指標的欄位中存儲的值。
Stind.I        在所提供的位址存儲 native int 類型的值。
Stind.I1        在所提供的位址存儲 int8 類型的值。
Stind.I2        在所提供的位址存儲 int16 類型的值。
Stind.I4        在所提供的位址存儲 int32 類型的值。
Stind.I8        在所提供的位址存儲 int64 類型的值。
Stind.R4        在所提供的位址存儲 float32 類型的值。
Stind.R8        在所提供的位址存儲 float64 類型的值。
Stind.Ref        存儲所提供位址處的物件引用值。
Stloc        從計算堆疊的頂部彈出當前值並將其存儲到指定索引處的區域變數清單中。
Stloc.0        從計算堆疊的頂部彈出當前值並將其存儲到索引 0 處的區域變數列表中。
Stloc.1        從計算堆疊的頂部彈出當前值並將其存儲到索引 1 處的區域變數列表中。
Stloc.2        從計算堆疊的頂部彈出當前值並將其存儲到索引 2 處的區域變數列表中。
Stloc.3        從計算堆疊的頂部彈出當前值並將其存儲到索引 3 處的區域變數列表中。
Stloc.S        從計算堆疊的頂部彈出當前值並將其存儲在區域變數清單中的 index 處(短格式)。
Stobj        將指定類型的值從計算堆疊複製到所提供的記憶體位址中。
Stsfld        用來自計算堆疊的值替換靜態欄位的值。
Sub        從其他值中減去一個值並將結果推送到計算堆疊上。
Sub.Ovf        從另一值中減去一個整數值,執行溢出檢查,並且將結果推送到計算堆疊上。


所有站內附件皆會附上安全掃描報告
請會員查看純淨度百分比後判斷使用



相關檔案須知:
取得檔案前,請先詳細閱讀文章內容
避免不必要錯誤與誤會發生。
也可多參考文章討論樓層內容
了解附件檔案相關討論資訊。










大家正在看啥


收藏收藏 分享文章到FB上分享
回覆 使用道具 檢舉
複製專屬你的推廣連結:發至FB與各論壇宣傳:累積點數換GP商品 & 藍鑽
每五點閱率就可以兌換藍鑽積分或遊戲點卡 夢遊推廣文章換GP商品

你需要登入後才可以回覆 登入 | 加入會員

本版積分規則

Copyright (C) 2010-2020 夢遊電玩論壇

廣告合作:請直接聯繫我們,並附上您預刊登位置的預算。  

快速回覆 返回頂端 返回清單