The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:
FE 17 |
cpblk |
Copy data from one memory block to another. |
The stack transitional behavior, in sequential order, is:
[The 'ordered' type of list has not been implemented in the ECMA stylesheet.]The cpblk instruction copies a number (type unsigned int32) of bytes from a source address (of type *, native int, or &) to a destination address (of type *, native int, or &). The behavior of cpblk is unspecified if the source and destination areas overlap.
cpblk assumes that both the source and destination addressed are aligned to the natural size of the machine. The cpblk instruction can be immediately preceded by the unaligned.<prefix> instruction to indicate that either the source or the destination is unaligned.
The operation of the cpblk instruction can be altered by an immediately preceding OpCodes.Volatile or OpCodes.Unaligned prefix instruction.
NullReferenceException may be thrown if an invalid address is detected.
The following ILGenerator.Emit(OpCode) method overload can use the cpblk opcode:
ILGenerator.Emit(OpCode)