学习_你必须知道的.net2_第四章_一切从IL开始
IL體驗(yàn)中心:
?1: .class表示是一個(gè)類 ?; ?.public表示訪問(wèn)權(quán)限 ?; auto表示程序加載時(shí)內(nèi)存由CLR決定的,而不是程序本身
? .ansi實(shí)現(xiàn)托管與非托管代碼的無(wú)縫轉(zhuǎn)換; ? .beforefieldinit為附加信息,在靜態(tài)字段執(zhí)行之行,可以在任何時(shí)候執(zhí)行構(gòu)造函數(shù)
? .cil managed說(shuō)明為IL代碼,指示編譯器編譯為托管代碼 ;maxstack執(zhí)行.ctor可容納最大個(gè)數(shù)
? .IL_0000是一個(gè)標(biāo)識(shí)代碼行開(kāi)頭; ldarg.0即load argment表示裝載第一個(gè)成員參數(shù)
? call一般調(diào)用靜態(tài)方法,因?yàn)殪o態(tài)方法是在編譯時(shí)確定,callvirt表示調(diào)用實(shí)例方法
? ret即return
? entrypoint是CLR執(zhí)行程序的入口點(diǎn)
? ldstr即load string,表示將字符串壓棧,字符串被移到stack頂部,CLR通過(guò)元數(shù)據(jù)表中獲得文字常量來(lái)構(gòu)造string對(duì)象
? hidebysig表示如果作父類,則該方法不會(huì)被繼承
? locals用來(lái)聲明局部變量
? ld將變量從內(nèi)存中裝載到堆棧上面,而st開(kāi)頭對(duì)應(yīng)存儲(chǔ)指令
? ldc將數(shù)字壓入堆棧,ldind加載間接尋址,ldlen加載數(shù)組長(zhǎng)度,ldelem加載元素
? ldloc加載局部變量到堆棧,ldloca加到局部變量的地址到堆棧
? ldfld/ldsfld將實(shí)例,靜態(tài)字段加入堆棧
? ldarg/ldarga裝載成員參數(shù)/裝載成員參數(shù)地址
? .s表示取單個(gè)字節(jié)
? brturn/br.s用于條件跳轉(zhuǎn)
--------------------------------看的想吐了。。。這尼瑪感覺(jué)是在搞匯編啊-------------------
?
??
轉(zhuǎn)載于:https://www.cnblogs.com/jessetang/p/3408943.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的学习_你必须知道的.net2_第四章_一切从IL开始的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: dos下的edit命令使用详解
- 下一篇: Android开发:第四日番外——Ass