.assembly extern mscorlib { .ver 2:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. } .assembly 'test9' { .custom instance void class [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 test9.exe // GUID = {F10FAF26-CF06-4CD0-A566-4E6BBC01230F} .class public auto ansi beforefieldinit Kiwi extends [mscorlib]System.Object { // method line 1 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed { // Method begins at RVA 0x20ec // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void object::.ctor() IL_0006: ret } // end of method Kiwi::instance default void .ctor () // method line 2 .method public static hidebysig default void Pause () cil managed { // Method begins at RVA 0x20f4 // Code size 1 (0x1) .maxstack 8 IL_0000: ret } // end of method Kiwi::default void Pause () .class nested public auto ansi beforefieldinit InputWordPortAttribute extends [mscorlib]System.Attribute { .custom instance void class [mscorlib]System.AttributeUsageAttribute::.ctor(valuetype [mscorlib]System.AttributeTargets) = ( 01 00 00 01 00 00 01 00 54 02 0D 41 6C 6C 6F 77 // ........T..Allow 4D 75 6C 74 69 70 6C 65 00 ) // Multiple. .field public string name // method line 3 .method public hidebysig specialname rtspecialname instance default void .ctor (string n) cil managed { // Method begins at RVA 0x20f8 // Code size 14 (0xe) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void class [mscorlib]System.Attribute::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 IL_0008: stfld string Kiwi/InputWordPortAttribute::name IL_000d: ret } // end of method InputWordPortAttribute::instance default void .ctor (string n) } // end of class InputWordPortAttribute .class nested public auto ansi beforefieldinit InputBitPortAttribute extends [mscorlib]System.Attribute { .custom instance void class [mscorlib]System.AttributeUsageAttribute::.ctor(valuetype [mscorlib]System.AttributeTargets) = ( 01 00 00 01 00 00 01 00 54 02 0D 41 6C 6C 6F 77 // ........T..Allow 4D 75 6C 74 69 70 6C 65 00 ) // Multiple. .field public string name // method line 4 .method public hidebysig specialname rtspecialname instance default void .ctor (string n) cil managed { // Method begins at RVA 0x2108 // Code size 14 (0xe) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void class [mscorlib]System.Attribute::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 IL_0008: stfld string Kiwi/InputBitPortAttribute::name IL_000d: ret } // end of method InputBitPortAttribute::instance default void .ctor (string n) } // end of class InputBitPortAttribute .class nested public auto ansi beforefieldinit OutputWordPortAttribute extends [mscorlib]System.Attribute { .custom instance void class [mscorlib]System.AttributeUsageAttribute::.ctor(valuetype [mscorlib]System.AttributeTargets) = ( 01 00 00 01 00 00 01 00 54 02 0D 41 6C 6C 6F 77 // ........T..Allow 4D 75 6C 74 69 70 6C 65 00 ) // Multiple. .field public string name // method line 5 .method public hidebysig specialname rtspecialname instance default void .ctor (string n) cil managed { // Method begins at RVA 0x2118 // Code size 14 (0xe) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void class [mscorlib]System.Attribute::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 IL_0008: stfld string Kiwi/OutputWordPortAttribute::name IL_000d: ret } // end of method OutputWordPortAttribute::instance default void .ctor (string n) } // end of class OutputWordPortAttribute .class nested public auto ansi beforefieldinit OutputBitPortAttribute extends [mscorlib]System.Attribute { .custom instance void class [mscorlib]System.AttributeUsageAttribute::.ctor(valuetype [mscorlib]System.AttributeTargets) = ( 01 00 00 01 00 00 01 00 54 02 0D 41 6C 6C 6F 77 // ........T..Allow 4D 75 6C 74 69 70 6C 65 00 ) // Multiple. .field public string name // method line 6 .method public hidebysig specialname rtspecialname instance default void .ctor (string n) cil managed { // Method begins at RVA 0x2128 // Code size 14 (0xe) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void class [mscorlib]System.Attribute::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 IL_0008: stfld string Kiwi/OutputBitPortAttribute::name IL_000d: ret } // end of method OutputBitPortAttribute::instance default void .ctor (string n) } // end of class OutputBitPortAttribute } // end of class Kiwi .class public auto ansi beforefieldinit parallel_port extends [mscorlib]System.Object { .field private static unsigned int8 dout .custom instance void class Kiwi/OutputWordPortAttribute::.ctor(string) = (01 00 00 00 00 ) // ..... .field private static bool strobe .custom instance void class Kiwi/OutputBitPortAttribute::.ctor(string) = (01 00 00 00 00 ) // ..... .field private static bool ack .custom instance void class Kiwi/InputBitPortAttribute::.ctor(string) = (01 00 00 00 00 ) // ..... // method line 7 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed { // Method begins at RVA 0x2138 // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void object::.ctor() IL_0006: ret } // end of method parallel_port::instance default void .ctor () // method line 8 .method public static hidebysig default void putchar (unsigned int8 c) cil managed { // Method begins at RVA 0x2140 // Code size 50 (0x32) .maxstack 8 IL_0000: br IL_000a IL_0005: call void class Kiwi::Pause() IL_000a: ldsfld bool parallel_port::ack IL_000f: ldsfld bool parallel_port::strobe IL_0014: beq IL_0005 IL_0019: ldarg.0 IL_001a: stsfld unsigned int8 parallel_port::dout IL_001f: call void class Kiwi::Pause() IL_0024: ldsfld bool parallel_port::strobe IL_0029: ldc.i4.0 IL_002a: ceq IL_002c: stsfld bool parallel_port::strobe IL_0031: ret } // end of method parallel_port::default void putchar (unsigned int8 c) } // end of class parallel_port .class private auto ansi beforefieldinit test9 extends [mscorlib]System.Object { // method line 9 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed { // Method begins at RVA 0x2174 // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void object::.ctor() IL_0006: ret } // end of method test9::instance default void .ctor () // method line 10 .method public static hidebysig default void parallel_print (string s) cil managed { // Method begins at RVA 0x217c // Code size 37 (0x25) .maxstack 7 .locals init ( int32 V_0) IL_0000: ldc.i4.0 IL_0001: stloc.0 IL_0002: br IL_0018 IL_0007: ldarg.0 IL_0008: ldloc.0 IL_0009: callvirt instance char string::get_Chars(int32) IL_000e: conv.u1 IL_000f: call void class parallel_port::putchar(unsigned int8) IL_0014: ldloc.0 IL_0015: ldc.i4.1 IL_0016: add IL_0017: stloc.0 IL_0018: ldloc.0 IL_0019: ldarg.0 IL_001a: callvirt instance int32 string::get_Length() IL_001f: blt IL_0007 IL_0024: ret } // end of method test9::default void parallel_print (string s) // method line 11 .method public static hidebysig default void Main () cil managed { // Method begins at RVA 0x21b0 .entrypoint // Code size 11 (0xb) .maxstack 8 IL_0000: ldstr "Hello World\n" IL_0005: call void class test9::parallel_print(string) IL_000a: ret } // end of method test9::default void Main () } // end of class test9