पर आईएल कैसे सीखें इन आईएल कोडों के बाद से मैं और क्या देखता हूं, मैं सीखना चाहता हूं कि उन्हें सही तरीके से कैसे समझना है।सीएलआर
मैं सी # संकलक या किसी अन्य इसलिए मुझे लगता है मैं बहुत ज्यादा के बाद मैं इस आम लोगों सीखना बाकी की देखभाल कर सकते हैं की तरह एक प्रलेखन नहीं मिल सका:
नीचे कुछ नमूना आईएल युक्त मैं क्या जरूरत कोड हैं पता करने के लिए:
नमूना 1:
.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
// Code size 15 (0xf)
.maxstack 1
.locals init ([0] class EnumReflection.DerivedClass derivedClass)
IL_0000: nop
IL_0001: newobj instance void EnumReflection.DerivedClass::.ctor()
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: callvirt instance void EnumReflection.DerivedClass::WriteOutput()
IL_000d: nop
IL_000e: ret
} // end of method Program::Main
नमूना 2:
.method public hidebysig specialname rtspecialname
instance void .ctor() cil managed
{
// Code size 38 (0x26)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldstr "Hello"
IL_0006: stfld string EnumReflection.DerivedClass::hello
IL_000b: ldarg.0
IL_000c: ldstr "World"
IL_0011: stfld string EnumReflection.DerivedClass::world
IL_0016: ldarg.0
IL_0017: ldc.i4.s 123
IL_0019: stfld int32 EnumReflection.DerivedClass::age
IL_001e: ldarg.0
IL_001f: call instance void EnumReflection.BaseClass::.ctor()
IL_0024: nop
IL_0025: ret
} // end of method DerivedClass::.ctor
मुझे पता है कि इन कोडों के बाद से ये कोड क्या करते हैं :-) हालांकि मैं संबंधित आईएल कोड के बारे में अधिक जानना चाहता हूं।
इन नमूनों में आईएल कोड जैसे शामिल हैं और क्या आप प्रश्न चिह्नों के साथ कमांड को समझा सकते हैं? और यह आदेश भी किसके लिए खड़ा है? तो हम उन्हें आसानी से याद कर सकते हैं।
- nop (डिबगिंग के लिए - कोई आपरेशन)
- newobj
- stloc.0 (यह ढेर में नई वस्तु पैदा कर रही है लगता है)?
- ldloc.0?
- ret?
- ldarg.0?
- ldstr?
- stfld?
- ldc.i4.s?
- .ctor - निर्माता
आईएल को समझना महत्वपूर्ण है क्योंकि यह उजागर करता है कि कैसे विशेष संकलक विशिष्ट मामलों में कोड और कार्य उत्पादन होता है।
हालांकि, मुझे एक अच्छा दस्तावेज़ नहीं मिला जिसमें आईएल के बारे में उदाहरण भी शामिल हैं। सी # 3.0 के साथ सीएलआर एक अच्छी किताब है हालांकि आखिरकार यह आईएल बुक नहीं है, इसलिए यह आईएल के बारे में सब कुछ समझा नहीं है।
संपादित करें:
मैं चश्मा मिल गया है और वे इन बता: धन्यवाद @usr करने के लिए।
- nop (डिबगिंग के लिए - कोई आपरेशन)
- newobj - ढेर से स्थानीय चर को
- ldloc.0 पॉप मूल्य - एक नया वस्तु
- stloc.0 बनाने? - स्टैक
- पर स्थानीय चर लोड करें
- ldarg.0 - स्टैक पर लोड तर्क 0 लोड करें।
- ldstr - दुकान एक वस्तु
- ldc.i4.s के क्षेत्र में - - पुश संख्या int32, लघु फार्म के रूप में ढेर पर एक शाब्दिक स्ट्रिंग
- stfld लोड।
- .ctor - निर्माता
:।। मैं अपने सवाल ... – Tarik
संपादित मैं शीर्षक बदल रहा। लगता है कि यह एक पूरी तरह से वैध सवाल है। – usr
@usr: शीर्षक परिवर्तन के लिए धन्यवाद, यह सु अब अच्छा लग रहा है। – Tarik