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