You copied the Doc URL to your clipboard.

Numeric expressions

Numeric expressions consist of combinations of numeric constants, numeric variables, ordinary numeric literals, binary operators, and parentheses.

Numeric expressions can contain register-relative or program-relative expressions if the overall expression evaluates to a value that does not include a register or the PC.

Numeric expressions evaluate to 32-bit integers in A32 and T32 code. You can interpret them as unsigned numbers in the range 0 to 232-1, or signed numbers in the range -231 to 231-1. However, armasm makes no distinction between -n and 232-n.

In A64 code, numeric expressions evaluate to 64-bit integers. You can interpret them as unsigned numbers in the range 0 to 264-1, or signed numbers in the range -263 to 263-1. However, armasm makes no distinction between -n and 264-n.

Relational operators such as >= use the unsigned interpretation. This means that 0 > -1 is {FALSE}.

Example

a   SETA    256*256           ; 256*256 is a numeric expression
MOV     r1,#(a*22)        ; (a*22) is a numeric expression