ack/man/m68k2_as.1
1984-07-12 14:55:49 +00:00

101 lines
2.7 KiB
Groff

\" $Header$
.TH M68K2_AS 1
.ad
.SH NAME
m68k2_as \- assembler for Motorola 68000
.SH SYNOPSIS
/usr/em/lib/m68k2_as [options] argument ...
.br
/usr/em/lib/m68k4_as [options] argument ...
.SH DESCRIPTION
This assembler is made with the general framework
described in \fIuni_ass\fP(6).
.SH SYNTAX
.IP registers
The 68000 has the following registers:
seven data-registers (d1 - d7), seven address-registers (a1 - a6, sp)
of which sp is the system stack pointer, a program counter (pc),
a status register (sr), and a condition codes register (ccr) which is actually
just the low order byte of the status register.
.IP "addressing modes"
.nf
.ta 8 16 24 32 40 48
syntax meaning (name)
reg contents of `reg' is operand, where `reg' is
one of the registers mentioned above (register direct)
(areg) contents of `areg' is address of operand, where
`areg' is an address-register
(address register indirect)
(areg)+ same as (areg), but after the address is used,
`areg' is incremented by the operand length
(postincrement)
-(areg) same as (areg), but before the address is used,
`areg' is decremented by the operand length
(predecrement)
expr(areg)
expr(pc) `expr' + the contents of the register yields the
address of the operand (displacement)
expr(areg, ireg)
expr(pc, ireg) `expr' + the contents of the register + the contents
of `ireg' yields the address of the operand. `ireg' is
an address- or a data-register.
`ireg' may be followed by .w or .l indicating whether
the size of the index is a word or a long
(displacement with index)
expr `expr' is the address of the operand
(absolute address)
#expr `expr' is the operand (immediate)
.fi
Some instructions have as operand a register list. This list consists of
one or more ranges of registers separated by '/'s. A register range consists
of either one register (e.g. d3) or two registers separated by a '-'
(e.g. a2-a4, or d4-d5). The two registers must be in the same set (address-
or data-registers) and the first must have a lower number than the second.
.IP instructions
Some instructions can have a byte, word, or longword operand.
This may be indicated by prepending the mnemonic with .b, .w, or .l
respectively. Default is .w.
.SH "SEE ALSO"
uni_ass(6),
ack(1),
.br
MC68000 16-bit microprocessor User's manual, Motorola Inc, 1979
.SH EXAMPLE
.sp 2
.nf
.ta 8 16 24 32 40 48 56 64
.define .cii
.text
.cii:
movem.l a0/d0/d1,.savreg
move.l (sp)+,a0 ! return address
move (sp)+,d0 ! destination size
sub (sp)+,d0 ! destination - source size
bgt 1f
sub d0,sp ! pop extra bytes
bra 3f
1:
move (sp),d1
ext.l d1
swap d1
asr #1,d0
2:
move.w d1,-(sp)
sub #1,d0
bgt 2b
3:
move.l a0,-(sp)
movem.l .savreg,a0/d0/d1
rts
.fi