ack/man/6800_as.1
1984-07-12 14:51:48 +00:00

56 lines
1.3 KiB
Groff

\" $Header$
.TH 6800_AS 1
.ad
.SH NAME
6800_as \- assembler for Motorola 6800
.SH SYNOPSIS
/usr/em/lib/6800_as [options] argument ...
.SH DESCRIPTION
This assembler is made with the general framework
described in \fIuni_ass\fP(6).
.SH SYNTAX
.IP registers
The 6800 has two accumulator registers, A and B. An instruction that refers
to accumulator A, has an "a" as last character. In the same way a "b" means
that the instruction uses B as accumulator.
.IP "addressing modes"
.nf
.ta 8 16 24 32 40 48
syntax meaning (name)
#expr with cpx, ldx, lds a 2-byte value,
otherwise a 1-byte value (immediate)
<expr 1-byte address. Not allowed with:
asl, asr, clr, com, dec, inc, lsl, lsr,
neg, rol, ror, tst (base page direct)
expr 2-byte address (extended direct)
expr, x 1-byte expr + contents of x
yields address (indexed)
.fi
.SH "SEE ALSO"
uni_ass(6),
ack(1),
.br
A. Osborne, 6800 programming for logic design,
Adam Osborne and Associates Inc., 1977
.SH EXAMPLE
An example of Motorola 6800 assembly code.
.sp 2
.nf
.ta 8 16 32 40 48 56 64
.data
val: 0
.text
ldx <val
com val, x
bhs someplace ! branch on carry clear
sta <val
adda #18 ! add 18 to accumulator A
.fi
.SH BUGS
You have to specify whether an address fits in one byte
with the token `<'. It should be done automatically.