f78 Statements Contents|Index|Previous|Next

Statements

A statement ends at a newline character (\n) or line separator character. (The line separator is usually (;), unless this conflicts with the comment character; see Machine Dependent Features.) The newline or separator character is considered part of its preceding statement.

Note:
Newlines and separators within character constants are an exception: they do not end statements.

It is an error to end any statement with end-of-file: the last character of any input file should be a newline.

You may write a statement on more than one line if you put a backslash (\) immediately in front of any newlines within the statement. When as reads a backslashed newline both characters are ignored. You can even put backslashed newlines in the middle of symbol names without changing the meaning of your source program.

An empty statement is allowed, and may include whitespace. It is ignored.

A statement begins with zero or more labels, optionally followed by a key symbol which determines what kind of statement it is. The key symbol determines the syntax of the rest of the statement.

If the symbol begins with a dot (.), then the statement is an assembler directive: typically valid for any computer.

If the symbol begins with a letter the statement is an assembly language instruction: it assembles into a machine language instruction.

Different versions of as for different computers recognize different instructions. In fact, the same symbol may represent a different instruction in a different computer’s assembly language.

A label is a symbol immediately followed by a colon (:). Whitespace before a label or after a colon is permitted, but you may not have whitespace between a label’s symbol and its colon. See Labels.

For HPPA targets, labels need not be immediately followed by a colon, but the definition of a label must begin in column zero, or the beginning of the line. This also implies that only one label may be defined on each line. Use the following statement as an example.

label:        .directive     followed by something
another_label:               # This is an empty statement.
               Instruction   operand_1, operand_2, ...

0