次の方法で共有


OpCodes.Cpblk フィールド

始点アドレスからエンド ポイント アドレスに指定した数のバイトをコピーします。

Public Shared ReadOnly Cpblk As OpCode
[C#]
public static readonly OpCode Cpblk;
[C++]
public: static OpCode Cpblk;
[JScript]
public static var Cpblk : OpCode;

解説

命令の 16 進数の形式、MSIL (Microsoft Intermediate Language) アセンブリ形式、および簡単な説明の一覧を次の表に示します。

形式 アセンブリ形式 説明
FE 17 cpblk あるメモリ ブロックから別のメモリ ブロックにデータをコピーします。

スタックの遷移動作を順番に示すと、次のようになります。

  1. エンド ポイント アドレスがスタックにプッシュされます。
  2. 始点アドレスがスタックにプッシュされます。
  3. コピーするバイト数がスタックにプッシュされます。
  4. スタックからバイト数、始点アドレス、およびエンド ポイント アドレスがポップされます。指定したバイト数が始点アドレスからエンド ポイント アドレスにコピーされます。

cpblk 命令は、始点アドレス (*natural int 、または & の各型) からエンド ポイント アドレス (*natural int 、または & の各型) にバイト数 (unsigned int32 型) をコピーします。始点の領域とエンド ポイントの領域が重なっている場合は、 cpblk の動作は指定されません。

cpblk は、始点アドレスとエンド ポイント アドレスの両方が、コンピュータの通常サイズに合わせて配置されていることを前提にしています。 cpblk 命令の直前に unaligned.<prefix> 命令を置くことによって、始点アドレスまたはエンド ポイント アドレスが不整列であるを示すことができます。

cpblk 命令の演算は、直前に Volatile プリフィックス命令または Unaligned プリフィックス命令を置くことによって変更できます。

無効なアドレスが検出されると、 NullReferenceException がスローされることがあります。

cpblk オペコードを使用できる Emit コンストラクタ オーバーロードを次に示します。

  • ILGenerator.Emit(OpCode)

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

OpCodes クラス | OpCodes メンバ | System.Reflection.Emit 名前空間