.\" $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.