as68

Langue: en

Version: 110393 (mandriva - 01/05/08)

Section: 1 (Commandes utilisateur)

NAME

as68 - MC68000 Macro Assembler.

AUTHOR

Copyright (C) 1993-2003 Vincent Penne and Benjamin Gerard

This program is free software.

DATE

2003

SYNOPSIS

as68 [options] [-o ] [-s ]

DESCRIPTION

as68 is a very fast Motorola 68000 macro assembler.

OPTIONS

-r Do not produce relocation table (default)
-R Produce relocation table
-p No position independant code check (default)
-P Warning position dependant addressing mode
-v Disable verbose
-V Enable Verbose (default)
-b[Kbytes] Change code buffer (Kbytes is a number of Kbyte)
-s Set relocation table filename (def:.rel)
-o Set output filename (def:.bin)

ASSEMBLER SYNTAX

as68 syntax is very close to hisoft genst(tm). Except for some assembly directives are which are followed by a { ... } block. In other words it should be close enough to Motorola specifications.

MACRO SYNTAX

Following sample should demonstrate macro basic syntax.
  name MACRO
  {
  label_\@:        ;\@ is replaced by macro unic id (incremented number).
    move.l #\1,\2  ;\1 is the first macro parameter, 2 the second ...
  }
 
 
 

ASSEMBLER CONTROL DIRECTIVES

ALIGN [EXPR] Set align to given position
DEFAULT [BYTE|WORD] Set default opcode size
EVEN Set align to next even position
IF [EXPR] Start a conditionnal block
INCBIN [FILE] Include binary file.
INCLUDE [FILE] Include source file.
LOAD [EXPR] Set load address (cross devel)
LS [FILE] Load symbol
LST [FILE] Load symbol 2!
ORG [EXPR] Set assembly address.
PRINT [EXPR] Output a message
RELOCATION [on|off] Set relocation generation
REPEAT Start a REPEAT ... UNTIL loop
RPT as REPEAT
RSRESET Reset current structure
RSSET Add a field to current structure
RUN [EXPR] Set run address (cross devel)
UNTIL cond End a REPEAT ... UNTIL loop
WHILE [EXPR] Start a while block

RELOCATION TABLE

Relocation table is a binary table containing the offset from the beginning of the long word (32bit) that need a relocation. Each offset is stored as a long word (obviously Motorola 32 bit big endian). The table ends by a offset equal to -1 (0xFFFFFFFF).
  ;
  ; Sample code to use as68 relocation table.
  ;
  ; a0: relocation table
  ; a1: binary
  reloc:
    move.l  (a0)+,d0
    cmp.l   #-1,d0
    beq.s   .finish
    add.l   a1,0(a1,d0.l)
    bra.s   reloc
  .finish:
    rts        
 
 
 

STRIPING BSS

as68 does not handle sectionning. Anyway it assumes that BSS is all zeroed data at the end of the binary. Striping BSS means to remove this data even if it were not generated by a ds.x instruction.

BUGS

Report to bug@sashipa.com.

Missing relocation.
-P forces -R. org directive is disabled !!
pea relatif PC, bugs with -P or -R
symbol created by xx = v are always lower case !
label can not have an instruction name
label can start at any column

SEE ALSO

as68, debug68, info68, sc68, sourcer68, unice68