Quick start manual
13-16
Delphi Language Guide
The following table summarizes the predefined type symbols that the built-in
assembler provides in addition to any currently declared Delphi types.
Expression operators
The built-in assembler provides a variety of operators. Precedence rules are different
from that of the Delphi language; for example, in an asm statement, AND has lower
precedence than the addition and subtraction operators. The following table lists the
built-in assembler’s expression operators in decreasing order of precedence.
The following table defines the built-in assembler’s expression operators.
Table 13.5 Predefined type symbols
Symbol Type
BYTE 1
WORD 2
DWORD 4
QWORD 8
TBYTE 10
Table 13.6 Precedence of built-in assembler expression operators
Operators Remarks Precedence
& highest
(), [], ., HIGH, LOW
+, – unary + and –
:
OFFSET, TYPE, PTR, *, /, MOD, SHL, SHR, +, –
binary + and –
NOT, AND, OR, XOR lowest
Table 13.7 Definitions of built-in assembler expression operators
Operator Description
& Identifier override. The identifier immediately following the ampersand is treated as
a user-defined symbol, even if the spelling is the same as a built-in assembler
reserved symbol.
(...) Subexpression. Expressions within parentheses are evaluated completely prior to
being treated as a single expression element. Another expression can precede the
expression within the parentheses; the result in this case is the sum of the values of
the two expressions, with the type of the first expression.
[...] Memory reference. The expression within brackets is evaluated completely prior to
being treated as a single expression element. Another expression can precede the
expression within the brackets; the result in this case is the sum of the values of the
two expressions, with the type of the first expression. The result is always a memory
reference.