DCI

ARM コードでは、DCI ディレクティブは、ワード単位でメモリを割り当てて、4 バイト境界でアラインさせ、実行時のメモリの初期内容を定義します。

Thumb コードでは、DCI ディレクティブは、ハーフワード単位でメモリを割り当てて、2 バイト境界でアラインさせ、実行時のメモリの初期内容を定義します。

Show/hide構文

{label} DCI{.W} expr{,expr}

各パラメータには以下の意味があります。

expr

数値式を指定します。

.W

指定されている場合は、Thumb コードに 4 バイトを挿入する必要があることを示します。

Show/hide使用法

DCI ディレクティブは、DCD ディレクティブや DCW ディレクティブとよく似ていますが、メモリ位置はデータではなくコードとしてマークされます。使用しているアセンブラのバージョンでサポートされていない新しい命令のマクロを記述する場合は、DCI を使用して下さい。

ARM コードでは、DCI は、必要に応じて、最初に定義されたワードの前に最大 3 バイトのパディングを挿入して、アラインメントを 4 バイトにします。Thumb コードでは、DCI は、必要に応じて、先頭バイトのパディングを挿入して、アラインメントを 2 バイトにします。

DCI を使用して、ビットパターンを命令ストリームに挿入できます。例えば、以下を使用します。

DCI 0x46c0

Thumb 演算 MOV r8,r8 が挿入されます。

Show/hide

    MACRO           ; このマクロは新しい命令 Rd,Rm を
                    ; 適切なマシンコードに変換する
    newinst     $Rd,$Rm
    DCI         0xe16f0f10 :OR:($Rd:SHL:12) :OR:$Rm
    MEND

Show/hide32 ビット Thumb の例

    DCI.W   0xf3af8000   ; 32 ビット NOP を挿入し、2 バイト境界でアラインさせる

Show/hide関連項目

概念

『アセンブラの使用』

参照
Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0489FJ
Non-ConfidentialID111211