All three sections of the source line are optional.
symbol is usually a label. In instructions and pseudo-instructions it is
always a label. In some directives it is a symbol for a variable or a constant. The
description of the directive makes this clear in each case.
symbol must begin in the first column. It cannot contain any white space
character such as a space or a tab unless it is enclosed by bars (|).
Labels are symbolic representations of addresses. You can use labels to mark specific
addresses that you want to refer to from other parts of the code. Numeric local labels are a
subclass of labels that begin with a number in the range 0-99. Unlike other labels, a
numeric local label can be defined many times. This makes them useful when generating labels
with a macro.
Directives provide important information to the assembler that either affects the assembly
process or affects the final output image.
Instructions and pseudo-instructions make up the code a processor uses to perform
Instructions, pseudo-instructions, and directives must be preceded by white space, such
as a space or a tab, irrespective of whether there is a preceding label or not.
Some directives do not allow the use of a label.
A comment is the final part of a source line. The first semicolon on a line marks the
beginning of a comment except where the semicolon appears inside a string literal. The end
of the line is the end of the comment. A comment alone is a valid line. The assembler
ignores all comments. You can use blank lines to make your code more readable.
Considerations when writing assembly language source code
You must write instruction mnemonics,
pseudo-instructions, directives, and symbolic register names (except
v8, and Wireless MMX registers) in either
all uppercase or all lowercase. You must not use mixed case. Labels and comments can be in
uppercase, lowercase, or mixed case.
AREA ARMex, CODE, READONLY
; Name this block of code ARMex
ENTRY ; Mark first instruction to execute
MOV r0, #10 ; Set up parameters
MOV r1, #3
ADD r0, r0, r1 ; r0 = r0 + r1
MOV r0, #0x18 ; angel_SWIreason_ReportException
LDR r1, =0x20026 ; ADP_Stopped_ApplicationExit
SVC #0x123456 ; ARM semihosting (formerly SWI)
END ; Mark end of file
To make source files easier to read, you can split a long line of source into several lines
by placing a backslash character (
\) at the end of the line. The backslash
must not be followed by any other characters, including spaces and tabs. The assembler
treats the backslash followed by end-of-line sequence as white space. You can also use blank
lines to make your code more readable.
NoteDo not use the backslash followed by end-of-line sequence within quoted strings.
The limit on the length of lines, including any extensions using backslashes, is 4095