You copied the Doc URL to your clipboard.

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 literal with a minus sign. In this case, the range of numbers permitted is –263 to –1.

The result of specifying -n is the same as the result of specifying 264–n.

expr

is either:

  • A numeric expression.

  • A PC-relative expression.

Note

armasm accepts expressions in DCQ 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.
Related concepts
Was this page helpful? Yes No