You copied the Doc URL to your clipboard.

21.21 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.


{label} DCQ{U} {-}literal{,{-}literal}

{label} DCQ{U} expr{,expr}



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 numericliteral, you can prefix literal witha minus sign. In this case, the range of numbers permitted is –263 to–1.

The result of specifying -n isthe same as the result of specifying 264n.


is either:

  • A numeric expression.

  • A PC-relative expression.


armasm accepts expressions in DCQ and DCQU directives only when you are assembling for AArch64 targets.


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, READWRITEdata    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.

Related concepts

Was this page helpful? Yes No