// Microsoft (R) .NET Framework IL Disassembler. Version 3.5.30729.1 // 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 '02.operators' { // --- Следующий настраиваемый атрибут добавлен автоматически, не следует отменять преобразование в комментарий ------- // .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 '02.operators.exe' // MVID: {F6D89B28-24CE-4B49-9DD3-1194BECE3954} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY // Image base: 0x001F0000 // =============== CLASS MEMBERS DECLARATION =================== .class public auto ansi beforefieldinit FL_Program extends [mscorlib]System.Object { .field public int32 A .field public int32 B .field public int32 C .method public hidebysig instance void FL_Main() cil managed { // Размер кода: 250 (0xfa) .maxstack 3 .language '{3F5162F8-07C6-11D3-9053-00C04FA302A1}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' // Source File 'l:\Лекции\3 Курс\Теория компиляторов\Samples\MSIL\copy2\02.operators.cs' //000039: A=1; IL_0000: ldarg.0 IL_0001: ldc.i4.1 IL_0002: stfld int32 FL_Program::A //000040: B=2; IL_0007: ldarg.0 IL_0008: ldc.i4.2 IL_0009: stfld int32 FL_Program::B //000041: //000042: C=A+B; IL_000e: ldarg.0 IL_000f: ldarg.0 IL_0010: ldfld int32 FL_Program::A IL_0015: ldarg.0 IL_0016: ldfld int32 FL_Program::B IL_001b: add IL_001c: stfld int32 FL_Program::C //000043: C=A-B; IL_0021: ldarg.0 IL_0022: ldarg.0 IL_0023: ldfld int32 FL_Program::A IL_0028: ldarg.0 IL_0029: ldfld int32 FL_Program::B IL_002e: sub IL_002f: stfld int32 FL_Program::C //000044: C=A*B; IL_0034: ldarg.0 IL_0035: ldarg.0 IL_0036: ldfld int32 FL_Program::A IL_003b: ldarg.0 IL_003c: ldfld int32 FL_Program::B IL_0041: mul IL_0042: stfld int32 FL_Program::C //000045: C=A/B; IL_0047: ldarg.0 IL_0048: ldarg.0 IL_0049: ldfld int32 FL_Program::A IL_004e: ldarg.0 IL_004f: ldfld int32 FL_Program::B IL_0054: div IL_0055: stfld int32 FL_Program::C //000046: //000047: C=Convert.ToInt32(A==B); IL_005a: ldarg.0 IL_005b: ldarg.0 IL_005c: ldfld int32 FL_Program::A IL_0061: ldarg.0 IL_0062: ldfld int32 FL_Program::B IL_0067: ceq IL_0069: call int32 [mscorlib]System.Convert::ToInt32(bool) IL_006e: stfld int32 FL_Program::C //000048: C=Convert.ToInt32(A!=B); IL_0073: ldarg.0 IL_0074: ldarg.0 IL_0075: ldfld int32 FL_Program::A IL_007a: ldarg.0 IL_007b: ldfld int32 FL_Program::B IL_0080: ceq IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: call int32 [mscorlib]System.Convert::ToInt32(bool) IL_008a: stfld int32 FL_Program::C //000049: C=Convert.ToInt32(A>B); IL_008f: ldarg.0 IL_0090: ldarg.0 IL_0091: ldfld int32 FL_Program::A IL_0096: ldarg.0 IL_0097: ldfld int32 FL_Program::B IL_009c: cgt IL_009e: call int32 [mscorlib]System.Convert::ToInt32(bool) IL_00a3: stfld int32 FL_Program::C //000050: C=Convert.ToInt32(A IL_00a8: ldarg.0 IL_00a9: ldarg.0 IL_00aa: ldfld int32 FL_Program::A IL_00af: ldarg.0 IL_00b0: ldfld int32 FL_Program::B IL_00b5: clt IL_00b7: call int32 [mscorlib]System.Convert::ToInt32(bool) IL_00bc: stfld int32 FL_Program::C //000051: C=Convert.ToInt32(A>=B); IL_00c1: ldarg.0 IL_00c2: ldarg.0 IL_00c3: ldfld int32 FL_Program::A IL_00c8: ldarg.0 IL_00c9: ldfld int32 FL_Program::B IL_00ce: clt IL_00d0: ldc.i4.0 IL_00d1: ceq IL_00d3: call int32 [mscorlib]System.Convert::ToInt32(bool) IL_00d8: stfld int32 FL_Program::C //000052: C=Convert.ToInt32(A<=B); IL_00dd: ldarg.0 IL_00de: ldarg.0 IL_00df: ldfld int32 FL_Program::A IL_00e4: ldarg.0 IL_00e5: ldfld int32 FL_Program::B IL_00ea: cgt IL_00ec: ldc.i4.0 IL_00ed: ceq IL_00ef: call int32 [mscorlib]System.Convert::ToInt32(bool) IL_00f4: stfld int32 FL_Program::C //000053: } IL_00f9: ret } // end of method FL_Program::FL_Main .method public hidebysig static void Main(string[] args) cil managed { .entrypoint // Размер кода: 11 (0xb) .maxstack 8 //000054: //000055: //000056: public static void Main(string[] args) { //000057: (new FL_Program()).FL_Main(); IL_0000: newobj instance void FL_Program::.ctor() IL_0005: call instance void FL_Program::FL_Main() //000058: } IL_000a: ret } // end of method FL_Program::Main .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Размер кода: 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 // ============================================================= // *********** ДИЗАССЕМБЛИРОВАНИЕ ЗАВЕРШЕНО *********************** // ВНИМАНИЕ: создан файл ресурсов Win32 02.operators.ilasm.res