This documentation is archived and is not being maintained.

OpCodes.Initblk Field

Initializes a specified block of memory at a specific address to a given size and initial value.

Namespace:  System.Reflection.Emit
Assembly:  mscorlib (in mscorlib.dll)

public static readonly OpCode Initblk

The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:


Assembly Format


FE 18


Set each location in a block of memory to a given value.

The stack transitional behavior, in sequential order, is:

  1. A starting address is pushed onto the stack.

  2. An initialization value is pushed onto the stack.

  3. The number of bytes to initialize is pushed onto the stack.

  4. The number of bytes, the initialization value, and the starting address are popped from the stack, and the initialization is performed as per their values.

The initblk instruction sets the number (unsigned int32) of bytes starting at the specified address (of type native int, &, or *) to the initialization value (of type unsigned int8). initblk assumes that the starting address is aligned to the natural size of the machine.

The operation of the initblk instructions can be altered by an immediately preceding Volatile or Unaligned prefix instruction.

NullReferenceException may be thrown if an invalid address is detected.

The following Emit method overload can use the initblk opcode:

  • ILGenerator.Emit(OpCode)

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.