中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

一步步教你讀懂NET中IL(附詳細圖)

2018-07-20    來源:編程學(xué)習(xí)網(wǎng)

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

  接觸NET也有1年左右的時間了,NET的內(nèi)部如何實現(xiàn)對我產(chǎn)生了很大的吸引力,在msdn上找到一篇關(guān)于NET的IL代碼的圖解說明,寫的挺不錯的,在此基礎(chǔ)上加上個人的理解,每一個步驟都附帶圖解說明,如果你以前對NET中IL感覺晦澀難懂,頭昏腦漲的時候,沒關(guān)系,我相信這篇文章能讓你們對IL有一個比較詳細的理解,如果還不能幫助您,我也只能表示抱歉,因為這篇文章算比較詳細的了。個人覺得:能對這些底部的代碼是如何實現(xiàn)的進行了解和熟練的話,對以后自己寫代碼是有很大幫助的,好了,廢話不多說,現(xiàn)整理如下:

  .NET CLR 和 Java VM 都是堆疊式虛擬機器(Stack-Based VM),也就是說,它們的指令集(Instruction Set)都是採用堆疊運算的方式:執(zhí)行時的資料都是先放在堆疊中,再進行運算。JavaVM 有約 200 個指令(Instruction),每個指令都是 1 byte 的 opcode(操作碼),后面接不等數(shù)目的參數(shù);.NET CLR 有超過220個指令,但是有些指令使用相同的 opcode,所以 opcode 的數(shù)目比指令數(shù)略少。特別注意,.NET 的 opcode 長度並不固定,大部分的 opcode 長度是 1 byte,少部分是 2 byte。

  本文章以一個實際的例子,讓你了解堆疊式 VM 的運作原理,并對 .NET IL(Intermediate Language)有最基本的領(lǐng)略。

  下面是一個簡單的 C# 原始碼:                 

using System;
public class Test {
    public static void Main(String[] args) {
        int i=1;
        int j=2;
        int k=3;
        int answer = i+j+k;
        Console.WriteLine("i+j+k="+answer);
    }
}

標(biāo)簽: 代碼

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:8 種提升 ASP.NET Web API 性能的方法

下一篇:將HTML轉(zhuǎn)成XHTML并清除一些無用的標(biāo)簽和屬性