// Microsoft (R) .NET Framework IL Disassembler. Version 2.0.50727.42 // 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 07 01 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: {4BD411F2-7839-4CF8-BD92-56F5D1BAE43B} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY // Image base: 0x00380000 // =============== 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 20 (0x14) .maxstack 2 .locals init ([0] int32 D, [1] int32 CS$1$0000) .language '{3F5162F8-07C6-11D3-9053-00C04FA302A1}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' // Source File 'l:\Лекции\3 Курс\Теория компиляторов\Samples\MSIL\decompiled\01.variables.cs' //000042: public int F(int P1, ref int P2, out int P3) { IL_0000: nop //000043: int D = 0; IL_0001: ldc.i4.0 IL_0002: stloc.0 //000044: D = P1 + P2; IL_0003: ldarg.1 IL_0004: ldarg.2 IL_0005: ldind.i4 IL_0006: add IL_0007: stloc.0 //000045: P3 = D; IL_0008: ldarg.3 IL_0009: ldloc.0 IL_000a: stind.i4 //000046: P2 = P1; IL_000b: ldarg.2 IL_000c: ldarg.1 IL_000d: stind.i4 //000047: //000048: return C; IL_000e: ldc.i4.0 IL_000f: stloc.1 IL_0010: br.s IL_0012 //000049: } IL_0012: ldloc.1 IL_0013: ret } // end of method FL_Program::F .method public hidebysig instance void FL_Main() cil managed { // Code size 58 (0x3a) .maxstack 8 //000050: //000051: //000052: public void FL_Main() { IL_0000: nop //000053: B = 2; IL_0001: ldarg.0 IL_0002: ldc.i4.2 IL_0003: stfld int32 FL_Program::B //000054: Console.WriteLine(F(1, ref B, out A)); IL_0008: ldarg.0 IL_0009: ldc.i4.1 IL_000a: ldarg.0 IL_000b: ldflda int32 FL_Program::B IL_0010: ldarg.0 IL_0011: ldflda int32 FL_Program::A IL_0016: call instance int32 FL_Program::F(int32, int32&, int32&) IL_001b: call void [mscorlib]System.Console::WriteLine(int32) IL_0020: nop //000055: Console.WriteLine(A); IL_0021: ldarg.0 IL_0022: ldfld int32 FL_Program::A IL_0027: call void [mscorlib]System.Console::WriteLine(int32) IL_002c: nop //000056: Console.WriteLine(B); IL_002d: ldarg.0 IL_002e: ldfld int32 FL_Program::B IL_0033: call void [mscorlib]System.Console::WriteLine(int32) IL_0038: nop //000057: } IL_0039: ret } // end of method FL_Program::FL_Main .method public hidebysig static void Main(string[] args) cil managed { .entrypoint // Code size 13 (0xd) .maxstack 8 //000058: //000059: //000060: public static void Main(string[] args) { IL_0000: nop //000061: (new FL_Program()).FL_Main(); IL_0001: newobj instance void FL_Program::.ctor() IL_0006: call instance void FL_Program::FL_Main() IL_000b: nop //000062: } IL_000c: ret } // end of method FL_Program::Main .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 22 (0x16) .maxstack 8 //000038: public int A = 0; IL_0000: ldarg.0 IL_0001: ldc.i4.0 IL_0002: stfld int32 FL_Program::A //000039: public int B = 0; IL_0007: ldarg.0 IL_0008: ldc.i4.0 IL_0009: stfld int32 FL_Program::B IL_000e: ldarg.0 IL_000f: call instance void [mscorlib]System.Object::.ctor() IL_0014: nop IL_0015: ret } // end of method FL_Program::.ctor } // end of class FL_Program // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** // WARNING: Created Win32 resource file 01.variables.ilasm.res