冰楓論壇

 找回密碼
 立即註冊
搜索
查看: 1410|回覆: 0
打印 上一主題 下一主題

[分享] 【轉貼】IL指令速查大全(文長)

[複製鏈接]

499

主題

0

好友

495

積分

中級會員

Rank: 3Rank: 3

UID
118815
帖子
498
主題
499
精華
0
積分
495
楓幣
4925
威望
494
存款
0
贊助金額
0
推廣
0
GP
509
閱讀權限
30
性別
保密
在線時間
10 小時
註冊時間
2015-10-11
最後登入
2015-12-16
跳轉到指定樓層
1
發表於 2015-10-31 00:21:19 |只看該作者 |倒序瀏覽

名稱        說明

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        從另一值中減去一個整數值,執行溢出檢查,並且將結果推送到計算堆疊上。
遊客【如果您要看隱藏內容 請選擇 繼續閱讀】本站解除隱藏說明教學

繼續閱讀文章 - 解除隱藏文章限制


收藏收藏0 推0 噓0


把本文推薦給朋友或其他網站上,每次被點擊增加您在本站積分: 1鑰匙
複製連結並發給好友,以賺取推廣點數
簡單兩步驟,註冊、分享網址,即可獲得獎勵! 一起推廣文章換商品、賺$$
高級模式
B Color Image Link Quote Code Smilies

廣告刊登意見回饋關於我們管群招募本站規範DMCA隱私權政策

Copyright © 2011-2024 冰楓論壇, All rights reserved

免責聲明:本網站是以即時上載留言的方式運作,本站對所有留言的真實性、完整性及立場等,不負任何法律責任。

而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。

小黑屋|手機版|冰楓論壇

GMT+8, 2024-12-13 16:38

回頂部