// Microsoft (R) .NET Framework IL Disassembler. Version 3.5.21022.8 // Copyright (c) Microsoft Corporation. All rights reserved. // Metadata version: v2.0.50727 .assembly extern mscorlib { .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. .ver 2:0:0:0 } .assembly '01.variables' { // --- The following custom attribute is added automatically, do not uncomment ------- // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 00 00 00 00 00 ) .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. .hash algorithm 0x00008004 .ver 0:0:0:0 } .module '01.variables.exe' // MVID: {DCE2ECEE-D230-4665-9579-97BF93D73C0E} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY // Image base: 0x00E80000 // =============== CLASS MEMBERS DECLARATION =================== .class public auto ansi beforefieldinit FL_Program extends [mscorlib]System.Object { .field public static literal int32 C = int32(0x00000000) .field public int32 A .field public int32 B .method public hidebysig instance int32 F(int32 P1, int32& P2, [out] int32& P3) cil managed { // Code size 15 (0xf) .maxstack 2 .locals init ([0] int32 D) .language '{3F5162F8-07C6-11D3-9053-00C04FA302A1}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' // Source File 'l:\Лекции\4 Курс\Теория компиляторов\Samples\MSIL\copy\01.variables.cs' //000043: int D = 0; IL_0000: ldc.i4.0 IL_0001: stloc.0 //000044: D = P1 + P2; IL_0002: ldarg.1 IL_0003: ldarg.2 IL_0004: ldind.i4 IL_0005: add IL_0006: stloc.0 //000045: P3 = D; IL_0007: ldarg.3 IL_0008: ldloc.0 IL_0009: stind.i4 //000046: P2 = P1; IL_000a: ldarg.2 IL_000b: ldarg.1 IL_000c: stind.i4 //000047: //000048: return C; IL_000d: ldc.i4.0 IL_000e: ret } // end of method FL_Program::F .method public hidebysig instance void FL_Main() cil managed { // Code size 54 (0x36) .maxstack 8 //000049: } //000050: //000051: //000052: public void FL_Main() { //000053: B = 2; IL_0000: ldarg.0 IL_0001: ldc.i4.2 IL_0002: stfld int32 FL_Program::B //000054: Console.WriteLine(F(1, ref B, out A)); IL_0007: ldarg.0 IL_0008: ldc.i4.1 IL_0009: ldarg.0 IL_000a: ldflda int32 FL_Program::B IL_000f: ldarg.0 IL_0010: ldflda int32 FL_Program::A IL_0015: call instance int32 FL_Program::F(int32, int32&, int32&) IL_001a: call void [mscorlib]System.Console::WriteLine(int32) //000055: Console.WriteLine(A); IL_001f: ldarg.0 IL_0020: ldfld int32 FL_Program::A IL_0025: call void [mscorlib]System.Console::WriteLine(int32) //000056: Console.WriteLine(B); IL_002a: ldarg.0 IL_002b: ldfld int32 FL_Program::B IL_0030: call void [mscorlib]System.Console::WriteLine(int32) //000057: } IL_0035: ret } // end of method FL_Program::FL_Main .method public hidebysig static void Main(string[] args) cil managed { .entrypoint // Code size 11 (0xb) .maxstack 8 //000058: //000059: //000060: public static void Main(string[] args) { //000061: (new FL_Program()).FL_Main(); IL_0000: newobj instance void FL_Program::.ctor() IL_0005: call instance void FL_Program::FL_Main() //000062: } IL_000a: ret } // end of method FL_Program::Main .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method FL_Program::.ctor } // end of class FL_Program // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** // WARNING: Created Win32 resource file 01.variables.ilasm.res