DCI directive allocates two or four-byte aligned memory and defines the initial runtime contents of the memory.
is a numeric expression.
if present, indicates that four bytes must be inserted in Thumb code.
DCI directive is very like the
but the location is marked as code instead of data. Use
writing macros for new instructions not supported by the version
of the assembler you are using.
In ARM code,
DCI allocates one or more words of
memory, aligned on four-byte boundaries. It inserts up to three bytes of padding before the
first defined word, if necessary, to achieve four-byte alignment.
In Thumb code,
DCI allocates one or more
halfwords of memory, aligned on two-byte boundaries. It inserts an initial byte of padding,
if necessary, to achieve two-byte alignment.
You can use
DCI to insert a bit pattern
into the instruction stream. For example, use:
to insert the Thumb operation
MACRO ; this macro translates newinstr Rd,Rm ; to the appropriate machine code newinst $Rd,$Rm DCI 0xe16f0f10 :OR: ($Rd:SHL:12) :OR: $Rm MEND
32-bit Thumb example
DCI.W 0xf3af8000 ; inserts 32-bit NOP, 2-byte aligned.