亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

【深入淺出.NetIL】1.一個For循環引發的IL

2019-11-14 15:43:49
字體:
來源:轉載
供稿:網友

1.準備工作

1)新建一個PRoject

using System;namespace newArr{    class Program    {        static void Main(string[] args)        {            char[] arrchars = new char[5];            for (int i = 0; i < 5; i++)            {                arrchars[i] = 'a';                Console.WriteLine(arrchars[i]);            }            Console.WriteLine("123");        }    }}

2)編譯并生成exe文件

IL Disassembler 工具打開exe文件

 

 

2.分析IL代碼

打開Main方法

分析指令

1.初始化 local variable List

 .locals init ([0] char[] arrchars,

           [1] int32 i,

           [2] bool CS$4$0000)   

2.IL_0000:  nop 

空操作

3.IL_0001:  ldc.i4.5

將整數5存放到Evaluation stack的頂部

 

4. IL_0002:  newarr     [mscorlib]System.Char

創建一個數組

5.  IL_0007:  stloc.0

Evalution Stack 頂部值彈出放在第一個變量arrchars

 

6.  IL_0008:  ldc.i4.0

將整數0壓入到Evalution Stack

7.  IL_0009:  stloc.1

Evalution Stack頂部的值0彈出存放到Local variable list的第2個變量i

 

8.  IL_000a:  br.s       IL_0020

無條件跳轉到地址:IL_0020

9.IL_0020:  ldloc.1

Local variable list中的第2個變量的值copy一份到Evaluation stack的頂部

 

10.  IL_0021:  ldc.i4.5

將整數5存放到Evaluation Stack的頂部

 

 

11.IL_0022:  clt

比較Evaluation Stack頂部的兩個值,如果0<5則將1存放到Evaluation Stack頂部,否則將0存放到Evaluation Stack頂部

12.  IL_0024:  stloc.2

Evaluation Stack頂部的值1彈出存放到Local variable list的第二個變量中

13.  IL_0025:  ldloc.2

Local variable list中的第二個變量的值copy一份到Evaluation stack的頂部

14.  IL_0026:  brtrue.s   IL_000c

判斷Evaluation Stack頂部的值為true、非空或非零,則跳轉到IL_000c否則順序往下執行。因為頂部的值為1,所以跳轉到地址IL_000c

15.  IL_000c:  nop

空操作

16.  IL_000d:  ldloc.0

Local variable list中的第1個變量的值copy一份到Evaluation Stack的頂部

17.  IL_000e:  ldloc.1

Local variable list中的第2個變量的值copy一份到Evaluation Stack的頂部

 

18.IL_000f:  ldc.i4.s   97

97對應的ACISS 碼為'a',將'a'存放到Evaluation Stack的頂部

19.  IL_0011:  stelem.i2

arrchars[0]賦值為'a',將arrchars[0]的值存放到Local variable list的變量arrchars

20.  IL_0012:  ldloc.0

Local variable list中的第1個變量的值copy一份到Evaluation Stack的頂部

21. IL_0013:  ldloc.1

Local variable list中的第2個變量的值copy一份到Evaluation Stack的頂部

22.  IL_0014:  ldelem.u2

arrchars[0]壓入Evaluation Stack的頂部

 

 

23.  IL_0015:  call       void [mscorlib]System.Console::WriteLine(char)

調用System.Console.WriteLine(char)方法打印'a'

24.  IL_001a:  nop

空操作

25.  IL_001b:  nop

空操作

26.  IL_001c:  ldloc.1

Local variable list中的第2個變量的值copy一份到Evaluation Stack的頂部

27.  IL_001d:  ldc.i4.1

將整數1壓入Evaluation Stack的頂部

 28. IL_001e:  add

Evaluation Stack頂部的兩個值相加,將結果1壓入Evaluation Stack的頂部

29.  IL_001f:  stloc.1

Evaluation Stack頂部的值1彈出存放到Local variable list的第二個變量中

30.重復執行下面的指令

  IL_0020:  ldloc.1

  IL_0021:  ldc.i4.5

  IL_0022:  clt

  IL_0024:  stloc.2

  IL_0025:  ldloc.2

  IL_0026:  brtrue.s   IL_000c

31.Local variable list的第二個變量等于5時,

執行IL_0026:  brtrue.s   IL_000c  指令,順序往下執行

32. IL_0028:  ldstr      "123"

將字符串"123"壓入壓入Evaluation Stack的頂部

33.  IL_002d:  call       void [mscorlib]System.Console::WriteLine(string)

調用Sys.Console.WriteLine(string)方法,打印"123"

34.  IL_0032:  nop

空操作

35.  IL_0033:  ret

返回

 

至此,這個for循環的代碼的反編譯代碼就分析完了,請期待后續的文章。謝謝大家閱讀本文章。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人羞羞国产免费| 欧美日韩在线观看视频小说| 精品高清美女精品国产区| 亚洲天天在线日亚洲洲精| 中文字幕在线看视频国产欧美| 亚洲欧美国产va在线影院| 日韩女优人人人人射在线视频| 色狠狠久久aa北条麻妃| 亚洲国产免费av| 色99之美女主播在线视频| 中文精品99久久国产香蕉| 欧美性猛交xxxx免费看漫画| 亚洲天堂av在线播放| 日韩精品在线免费播放| 成人av色在线观看| 精品国产欧美一区二区五十路| 国产精品视频精品视频| 欧美成人免费全部| 欧美极品少妇与黑人| 俺去了亚洲欧美日韩| 色综合视频网站| 欧美国产在线视频| 国产美女久久久| 亚洲在线免费看| 欧美日韩午夜剧场| 日韩经典一区二区三区| 日韩精品极品在线观看播放免费视频| 亚洲国产精品福利| 精品亚洲va在线va天堂资源站| 午夜精品一区二区三区在线播放| 欧美日本高清视频| 成人免费午夜电影| 懂色av中文一区二区三区天美| 91精品视频一区| 午夜精品国产精品大乳美女| 在线观看欧美视频| 亚洲影视九九影院在线观看| 国产精品久久久久久久久久久新郎| 国产精品夫妻激情| 国产精品美女在线观看| 国产精品美女久久久久久免费| 中文字幕日韩精品在线| 日韩美女主播视频| 久久精品小视频| 亚洲最大的成人网| 亚洲综合第一页| 国产在线不卡精品| 欧美电影在线观看高清| 国产精品com| 欧美在线一区二区视频| 欧美日韩不卡合集视频| 国产成人小视频在线观看| 日韩视频一区在线| 日韩一区二区三区国产| 久久久久久午夜| 国产精品a久久久久久| 国产精品视频在线播放| 日韩精品一二三四区| 欧美日韩免费观看中文| 日韩美女在线观看一区| 欧美激情xxxx性bbbb| 91久热免费在线视频| 欧美做受高潮电影o| 亚洲成人在线视频播放| 亚洲欧美日韩国产成人| 精品亚洲夜色av98在线观看| 亚洲一级一级97网| 日韩在线观看网址| 日本sm极度另类视频| 日韩精品在线免费观看视频| 777午夜精品福利在线观看| 福利视频导航一区| 久久久亚洲天堂| 日本久久久久亚洲中字幕| 国产成人涩涩涩视频在线观看| 欧美性感美女h网站在线观看免费| 国产国语videosex另类| 韩日欧美一区二区| 亚洲人成在线一二| 亚洲xxxxx| 国产在线一区二区三区| 欧美一级淫片videoshd| 国产精自产拍久久久久久| 亚洲欧美在线免费| 日韩美女视频免费在线观看| 成人做爰www免费看视频网站| 成人免费视频网址| 欧美日韩精品中文字幕| 精品伊人久久97| 欧美精品亚州精品| 欧美激情视频网址| 成人欧美一区二区三区黑人孕妇| 日韩欧美在线网址| 最近更新的2019中文字幕| 亚洲欧美中文日韩在线v日本| 日本久久久久久| 国产精品一区=区| 久久免费视频观看| 另类专区欧美制服同性| 国产噜噜噜噜久久久久久久久| 久久久久久久久久亚洲| 91av在线精品| 久久久久久伊人| 日韩专区在线播放| 日韩电影中文 亚洲精品乱码| 2023亚洲男人天堂| 日本精品视频网站| 国产免费一区二区三区香蕉精| 国产视频在线观看一区二区| 91美女片黄在线观| 久久免费福利视频| 国产精品久久77777| 日韩欧美高清视频| 国产成人精品一区二区在线| 久久精品国产综合| 日韩美女激情视频| 亚洲专区国产精品| 2019中文字幕在线免费观看| 国产精品露脸自拍| 91网站在线免费观看| 国产精品亚洲自拍| 亚洲欧美色婷婷| 亚洲女性裸体视频| 久久久国产在线视频| 精品高清美女精品国产区| 97超级碰在线看视频免费在线看| 欧美日在线观看| 亚洲一区二区自拍| 亚洲精品日韩在线| 国产精品一区二区久久久久| 国产丝袜一区视频在线观看| 国产精品欧美一区二区三区奶水| 亚洲一区二区久久久久久| 欧美日韩亚洲激情| 国产精品视频一区二区三区四| 2020久久国产精品| 国产一区二区视频在线观看| 国产91免费看片| 欧美极品少妇与黑人| 亚洲aⅴ日韩av电影在线观看| 久久久久亚洲精品| 国产免费一区二区三区在线观看| 亚洲一区二区在线播放| 久久久久日韩精品久久久男男| 人妖精品videosex性欧美| 国产精品久久久久999| 国语自产在线不卡| 一个人看的www久久| 久久久精品国产亚洲| 久久躁狠狠躁夜夜爽| 久久久久久久一| 国产一区二区香蕉| 日韩精品极品在线观看播放免费视频| 亚洲天堂男人天堂女人天堂| 欧美精品久久一区二区| 欧美激情三级免费| 一区二区在线视频| 成人97在线观看视频| 欧美日韩国产黄| 国产精品久久久久久久久久久不卡| 中文字幕亚洲国产| 久久久伊人日本| 日韩精品视频免费在线观看| 亚洲综合中文字幕在线|