DCQ and DCQU
The DCQ
directive allocates one or more eight-byte blocks of memory, aligned on four-byte boundaries, and defines the initial runtime contents of the memory. DCQU
is the same, except that the memory alignment is arbitrary.
Syntax
{
} label
DCQ
{U
}
{-}
{,{-}literal
}
literal
…
{
} label
DCQ
{U
}
{expr
,
}expr
…
where:
literal
is a 64-bit numeric literal.
The range of numbers permitted is 0 to 264-1.
In addition to the characters normally permitted in a numeric literal, you can prefix
with a minus sign. In this case, the range of numbers permitted is -263 to -1.literal
The result of specifying
-
is the same as the result of specifying 264-n
.n
expr
-
is either:
-
A numeric expression.
-
A PC-relative expression.
-
Note
armasm accepts expressions inDCQ
and
DCQU
directives only when you are assembling for AArch64 targets. Usage
DCQ
inserts up to three bytes of padding before
the first defined eight-byte block, if necessary, to achieve four-byte alignment.
Use DCQU
if you do not require alignment.
Correct example
AREA MiscData, DATA, READWRITE data DCQ -225,2_101 ; 2_101 means binary 101.
Incorrect example
number EQU 2 ; This code assembles for AArch64 targets only. DCQU number ; For AArch32 targets, DCQ and DCQU only accept ; literals, not expressions.