Next: Incbin, Previous: Ident, Up: Pseudo Ops
.if
.if
marks the beginning of a section of code which is only
considered part of the source program being assembled if the argument
(which must be an absolute expression) is non-zero. The end of
the conditional section of code must be marked by .endif
(see
.endif
); optionally, you may include code for the
alternative condition, flagged by .else
(see
.else
).
If you have several conditions to check, .elseif
may be used to avoid
nesting blocks if/else within each subsequent .else
block.
The following variants of .if
are also supported:
.ifdef
symbol
Assembles the following section of code if the specified symbol
has been defined. Note a symbol which has been referenced but not yet defined
is considered to be undefined.
.ifb
text
Assembles the following section of code if the operand is blank (empty).
.ifc
string1
,
string2
Assembles the following section of code if the two strings are the same. The
strings may be optionally quoted with single quotes. If they are not quoted,
the first string stops at the first comma, and the second string stops at the
end of the line. Strings which contain whitespace should be quoted. The
string comparison is case sensitive.
.ifeq
absolute expression
Assembles the following section of code if the argument is zero.
.ifeqs
string1
,
string2
Another form of .ifc
. The strings must be quoted using double quotes.
.ifge
absolute expression
Assembles the following section of code if the argument is greater than or
equal to zero.
.ifgt
absolute expression
Assembles the following section of code if the argument is greater than zero.
.ifle
absolute expression
Assembles the following section of code if the argument is less than or equal
to zero.
.iflt
absolute expression
Assembles the following section of code if the argument is less than zero.
.ifnb
text
Like .ifb
, but the sense of the test is reversed: this assembles the
following section of code if the operand is non-blank (non-empty).
.ifnc
string1
,
string2
.
Like .ifc
, but the sense of the test is reversed: this assembles the
following section of code if the two strings are not the same.
.ifndef
symbol
.ifnotdef
symbol
Assembles the following section of code if the specified symbol
has not been defined. Both spelling variants are equivalent. Note a symbol
which has been referenced but not yet defined is considered to be undefined.
.ifne
absolute expression
Assembles the following section of code if the argument is not equal to zero
(in other words, this is equivalent to .if
).
.ifnes
string1
,
string2
Like .ifeqs
, but the sense of the test is reversed: this assembles the
following section of code if the two strings are not the same.
The text of the Arduino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.