Im przynosić IL z ILGenerator Oto mój kod:C# ILGenerator nop?
DynamicMethod method = new DynamicMethod("test", null, Type.EmptyTypes);
ILGenerator gen = method.GetILGenerator();
gen.Emit(OpCodes.Ldarg_0);
gen.Emit(OpCodes.Ldarg_1);
gen.Emit(OpCodes.Ldc_I4_S, 100);
ten generowany ten IL:
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldc.i4.s 100
IL_0004: nop
IL_0005: nop
IL_0006: nop
(ja pobrać kod IL z VS Virtulizer nazwie ILStream)
Skąd kod nops? czy istnieje sposób, aby się ich pozbyć? Próbuję imitować kod C# i nie ma 3 nops.
Być może jest to pakowanie instrukcji do bloku o określonej wielkości i wypełnianie reszty z nops? – Joe
Ponieważ NOP nie wyrządza żadnej szkody, dlaczego chcesz się ich pozbyć? – RichardOD
Jeśli nie ma sensu, dlaczego mają je tam, wynikowy kod C# nie ma żadnych ... – Peter