.hd as6800 "Motorola 6800 cross-assembler" 02/23/82 as6800 [-{l | d}] .ds 'As6800' is an extremely simplified cross-assembler for the Motorola 6800 microprocessor. .sp It is designed to assemble the output of the SSPL compiler in a single pass, producing a file of relocatable object code with a symbol table (suitable for later processing by 'mot' or 'lk'). It is also suitable for limited assembly language coding by hand (allowing the SSPL run-time package to be assembled). .sp 'As6800' takes a source program on its first standard input and produces an object program on the file ".o". The assembler differs from Motorola's standard in the following ways: .sp .in +5 .ta 6 .tc \ .ti -5 1.\Instruction mnemonics that make use of an accumulator symbol ("a" or "b") may not be separated from the accumulator symbol. Thus, "add a #5" is illegal; the correct form is "adda #5". .ti -5 2.\Labels may appear in any mixture of upper and lower case. Character case is significant. Instruction mnemonics must appear in lower case. Labels may include the underscore (_) and the grave accent (`) characters; those labels beginning with underscore are not written to the object file symbol table and may be used freely as temporaries. All characters in labels are significant. .ti -5 3.\Binary and octal number representations are not supported. Decimal integers may be used, or hexadecimal integers preceded by a dollar sign ($). .ti -5 4.\The following pseudo-operations are totally unsupported: end, pag, opt, equ. The fcb and fdb pseudo-ops have been replaced by the 'byte' and 'word' pseudo-ops (otherwise identical in function). The rmb pseudo-op has been replaced by the 'res' pseudo-op, with identical function. The 'org' pseudo-op may not be used to decrease the location counter; only forward origins are allowed. .ti -5 5.\Arithmetic expressions more complex than labels or simple integers are not supported. (SSPL does not generate them.) .ti -5 6.\Comments are indicated by preceding commentary text with a percent sign (%). This rule applies uniformly; all comments must be preceded by a percent sign. .ti -5 7.\Unless the "-l" option is specified, 'as6800' does not produce an assembly listing. When "-l" is used, the assembly listing is produced on standard output one. .ti -5 8.\Multiple statements may be place on one line provided they are separated by semicolons (;). .ti -5 9.\Unless the "-d" option is specified, the 'direct' (page-zero) addressing mode is not used (since instructions using it cannot be relocated). When the "-d" option is used, the user must take care that no direct-address forward references are made. .sp .in -5 The object file produced by 'as6800' contains a number of "segments," each consisting of a one-byte segment header, two bytes of segment size, and the text of the segment. Each byte of the object file occupies one 16-bit word in the physical file. .es rtr.as> as6800 mux.s> lex | sspl | opt6800 | as6800 .fl ".o" for the object code file .me Many error messages, hopefully some of which are self-explanatory. .bu Locally supported. .sa sspl (3), opt6800 (3), as8080 (3), as11 (3), mot (3), lk (3)