9.23.2 Syntax

This syntax for the Motorola 680x0 was developed at mit .

The 680x0 version of as uses instructions names and syntax compatible with the Sun assembler. Intervening periods are ignored; for example, ‘ movl ’ is equivalent to ‘ mov.l ’.

In the following table apc stands for any of the address registers (‘ %a0 ’ through ‘ %a7 ’), the program counter (‘ %pc ’), the zero-address relative to the program counter (‘ %zpc ’), a suppressed address register (‘ %za0 ’ through ‘ %za7 ’), or it may be omitted entirely. The use of size means one of ‘ w ’ or ‘ l ’, and it may be omitted, along with the leading colon, unless a scale is also specified. The use of scale means one of ‘ 1 ’, ‘ 2 ’, ‘ 4 ’, or ‘ 8 ’, and it may always be omitted along with the leading colon.

The following addressing modes are understood:

Immediate
# number
Data Register
%d0 ’ through ‘ %d7
Address Register
%a0 ’ through ‘ %a7
%a7 ’ is also known as ‘ %sp ’, i.e., the Stack Pointer. %a6 is also known as ‘ %fp ’, the Frame Pointer.
Address Register Indirect
%a0@ ’ through ‘ %a7@
Address Register Postincrement
%a0@+ ’ through ‘ %a7@+
Address Register Predecrement
%a0@- ’ through ‘ %a7@-
Indirect Plus Offset
apc @( number )
Index
apc @( number , register : size : scale )

The number may be omitted.

Postindex
apc @( number )@( onumber , register : size : scale )

The onumber or the register , but not both, may be omitted.

Preindex
apc @( number , register : size : scale )@( onumber )

The number may be omitted. Omitting the register produces the Postindex addressing mode.

Absolute
symbol ’, or ‘ digits ’, optionally followed by ‘ :b ’, ‘ :w ’, or ‘ :l ’.