Skip to content

Latest commit

 

History

History
51 lines (49 loc) · 1.35 KB

vi.b.4.1-ilasm-version.md

File metadata and controls

51 lines (49 loc) · 1.35 KB

VI.B.4.1 ILAsm version

.assembly extern mscorlib {}
.assembly Phone {}
.class private Phone`2<([mscorlib]System.Object) K, ([mscorlib]System.Object) V>
    extends  [mscorlib]System.Object {
   .field private int32 hi
   .field private !0[]  keys
   .field private !1[]  vals
   .method public instance void Add(!0 k, !1 v) {
      .maxstack  4
      .locals init (int32 temp)
      ldarg.0
      ldfld      !0[] class Phone`2<!0,!1>::keys
      ldarg.0
      dup
      ldfld      int32 class Phone`2<!0,!1>::hi
      ldc.i4.1
      add
      dup
      stloc.0
      stfld      int32 class Phone`2<!0,!1>::hi
      ldloc.0
      ldarg.1
      stelem     !0
      ldarg.0
      ldfld      !1[] class Phone`2<!0,!1>::vals
      ldarg.0
      ldfld      int32 class Phone`2<!0,!1>::hi
      ldarg.2
      stelem     !1
      ret
   }  // end of Method Add
}  // end of class Phone

.class App extends [mscorlib]System.Object {
   .method static void Main() {
      .entrypoint
      .maxstack  3
      .locals init (class Phone`2<string,int32> temp)
      newobj     instance void class   Phone`2<string,int32>::.ctor()
      stloc.0
      ldloc.0
      ldstr      "Jim"
      ldc.i4.7
      callvirt   instance void class   Phone`2<string,int32>::Add(!0, !1)
      ret
   }  // end of method Main
}  // end of class App