Hi


$ make mmm
========== makefile ===========
TARGET=Hi
PHONY=all test meta mmm html clean
all: $(TARGET).exe

$(TARGET).exe: $(TARGET).cs
        csc.exe /out:$@ /t:exe /r:MSCorLib.dll $<

test:
        ./$(TARGET).exe

meta: $(TARGET).exe
        ILDasm /out:$@ /metadata $<

clean:
        -rm $(TARGET).exe *.o *~ meta meta.res

mmm:
        @echo ========== makefile ===========
        @cat makefile
        @echo ========== $(TARGET).cs =======
        @cat $(TARGET).cs
        @cat meta

html:
        cat /dev/clipboard | code2html | unix2dos
========== Hi.cs =======
public sealed class Hi{
        public static void Main(){
                System.Console.WriteLine("Hi");
        }
}

//  Microsoft (R) .NET Framework IL Disassembler.  Version 2.0.50727.312
//  Copyright (c) Microsoft Corporation.  All rights reserved.


// ================================= M E T A I N F O ===========================

=====================

// ===========================================================
// ScopeName : Hi.exe
// MVID      : {56E975DC-0353-41FA-8088-25236941F1C3}
// ===========================================================
// Global functions
// -------------------------------------------------------
//
// Global fields
// -------------------------------------------------------
//
// Global MemberRefs
// -------------------------------------------------------
//
// TypeDef #1 (02000002)
// -------------------------------------------------------
//      TypDefName: Hi  (02000002)
//      Flags     : [Public] [AutoLayout] [Class] [Sealed] [AnsiClass] [BeforeFi

eldInit]  (00100101)
//      Extends   : 01000001 [TypeRef] System.Object
//      Method #1 (06000001) [ENTRYPOINT]
//      -------------------------------------------------------
//              MethodName: Main (06000001)
//              Flags     : [Public] [Static] [HideBySig] [ReuseSlot]  (00000096

)
//              RVA       : 0x00002050
//              ImplFlags : [IL] [Managed]  (00000000)
//              CallCnvntn: [DEFAULT]
//              ReturnType: Void
//              No arguments.
//
//      Method #2 (06000002)
//      -------------------------------------------------------
//              MethodName: .ctor (06000002)
//              Flags     : [Public] [HideBySig] [ReuseSlot] [SpecialName] [RTSp

ecialName] [.ctor]  (00001886)
//              RVA       : 0x0000205e
//              ImplFlags : [IL] [Managed]  (00000000)
//              CallCnvntn: [DEFAULT]
//              hasThis
//              ReturnType: Void
//              No arguments.
//
//
// TypeRef #1 (01000001)
// -------------------------------------------------------
// Token:             0x01000001
// ResolutionScope:   0x23000001
// TypeRefName:       System.Object
//      MemberRef #1 (0a000004)
//      -------------------------------------------------------
//              Member: (0a000004) .ctor:
//              CallCnvntn: [DEFAULT]
//              hasThis
//              ReturnType: Void
//              No arguments.
//
// TypeRef #2 (01000002)
// -------------------------------------------------------
// Token:             0x01000002
// ResolutionScope:   0x23000001
// TypeRefName:       System.Runtime.CompilerServices.CompilationRelaxationsAttr

ibute
//      MemberRef #1 (0a000001)
//      -------------------------------------------------------
//              Member: (0a000001) .ctor:
//              CallCnvntn: [DEFAULT]
//              hasThis
//              ReturnType: Void
//              1 Arguments
//                      Argument #1:  I4
//
// TypeRef #3 (01000003)
// -------------------------------------------------------
// Token:             0x01000003
// ResolutionScope:   0x23000001
// TypeRefName:       System.Runtime.CompilerServices.RuntimeCompatibilityAttrib

ute
//      MemberRef #1 (0a000002)
//      -------------------------------------------------------
//              Member: (0a000002) .ctor:
//              CallCnvntn: [DEFAULT]
//              hasThis
//              ReturnType: Void
//              No arguments.
//
// TypeRef #4 (01000004)
// -------------------------------------------------------
// Token:             0x01000004
// ResolutionScope:   0x23000001
// TypeRefName:       System.Console
//      MemberRef #1 (0a000003)
//      -------------------------------------------------------
//              Member: (0a000003) WriteLine:
//              CallCnvntn: [DEFAULT]
//              ReturnType: Void
//              1 Arguments
//                      Argument #1:  String
//
// Assembly
// -------------------------------------------------------
//      Token: 0x20000001
//      Name : Hi
//      Public Key    :
//      Hash Algorithm : 0x00008004
//      Version: 0.0.0.0
//      Major Version: 0x00000000
//      Minor Version: 0x00000000
//      Build Number: 0x00000000
//      Revision Number: 0x00000000
//      Locale: <null>
//      Flags : [none] (00000000)
//      CustomAttribute #1 (0c000001)
//      -------------------------------------------------------
//              CustomAttribute Type: 0a000001
//              CustomAttributeName: System.Runtime.CompilerServices.Compilation

RelaxationsAttribute :: instance void .ctor(int32)
//              Length: 8
//              Value : 01 00 08 00 00 00 00 00                          >
          <
//              ctor args: (8)
//
//      CustomAttribute #2 (0c000002)
//      -------------------------------------------------------
//              CustomAttribute Type: 0a000002
//              CustomAttributeName: System.Runtime.CompilerServices.RuntimeComp

atibilityAttribute :: instance void .ctor()
//              Length: 30
//              Value : 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       >
cep
tionThrows   <
//              ctor args: ()
//
//
// AssemblyRef #1 (23000001)
// -------------------------------------------------------
//      Token: 0x23000001
//      Public Key or Token: b7 7a 5c 56 19 34 e0 89
//      Name: mscorlib
//      Version: 2.0.0.0
//      Major Version: 0x00000002
//      Minor Version: 0x00000000
//      Build Number: 0x00000000
//      Revision Number: 0x00000000
//      Locale: <null>
//      HashValue Blob:
//      Flags: [none] (00000000)
//
//
// User Strings
// -------------------------------------------------------
// 70000001 : ( 2) L"Hi"
//
//
// Coff symbol name overhead:  0
// ===========================================================
// ===========================================================
// ===========================================================
// ================================= END OF METAINFO ===========================

=====================


// 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 Hi
{
  .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRel

axationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 )
  .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompati

bilityAttribute::.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 Hi.exe
// MVID: {56E975DC-0353-41FA-8088-25236941F1C3}
.imagebase 0x00400000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003       // WINDOWS_CUI
.corflags 0x00000001    //  ILONLY
// Image base: 0x00AB0000


// =============== CLASS MEMBERS DECLARATION ===================

.class public auto ansi sealed beforefieldinit Hi
       extends [mscorlib]System.Object
{
  .method public hidebysig static void  Main() cil managed
  {
    .entrypoint
    // Code size       13 (0xd)
    .maxstack  8
    IL_0000:  nop
    IL_0001:  ldstr      "Hi"
    IL_0006:  call       void [mscorlib]System.Console::WriteLine(string)
    IL_000b:  nop
    IL_000c:  ret
  } // end of method Hi::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 Hi::.ctor

} // end of class Hi


// =============================================================

// *********** DISASSEMBLY COMPLETE ***********************
// WARNING: Created Win32 resource file meta.res