Welcome

ASxxxx Cross Assembler Updates

Version 4


   Version  4.00  of   the   ASxxxx  Cross  Assemblers
features 7 additional assemblers:

        Rabbit 2000/3000 processors
        Atmel AVR processors
        Microchip PIC processors
        Texas Instruments MPS430 processors

        Sharp SC61860 processor
        CDP1802 COSMAC processor
        Mitsubishi 740 processors


   Internally the assembler and linker cores have been
rewritten to support  processor  architectures  having
upto 32 bit addressing, independent program  and  data
addressing,  and  a  new  linker  bit  merging  method
allowing arbitrary positioning of  linking addresses /
data  within  an  instruction  opcode.  The bit scheme
allows simplified writing of assemblers for  the  AVR,
PIC,  DS80cxxx, 8051  or  newer RISC style instruction
processors  which  have  non contiguous address / data
bits within the instruction opcode.  The  bit  merging
definitions for any particular processor  are included
in the  .rel file  output  by  the  assembler for that
processor.  This method allows the linker  to  'learn'
the merge method for each  .rel file as it  is linked.
(The linker is also compatible with  Version 3  of the
ASxxxx assemblers.)

   One  of  the  additional  new  features  is  a  new
construct called a bank.  The bank is a collection  of
code and/or data areas which are linked as a group.  A
bank has optional attributes of  base  address,  size,
and of specifying a seperate linked output file.   The
bank  is  useful in  defining  banked  overlay/program
sections.

   Other  new  features  include  the   .local   ( =: )
directive which defines a local variable that  will not
be output to the  .rel file  even when the -a (make all
variables global) option is specified.  This feature is
useful  when  defining  a  large  number  of  assembler
constants  that  should   be  localized  to  a   single
assembly  process.   Additional  directives  have  been
added  which  are  synonyms  of   existing  directives:
.byte (.fcb),  .word (.fdb),  .blkb (.rmb, .rs), .ascii
(.fcc, .str), .ascis (.strs), and .asciz (.strz).   And,
the addition of many  new directives:   .equ,   .gblequ,
.lclequ, .end, .ifdef, .ifndef, .define,  and .undefine.

   The .define directive defines a  substitution  string
for a keyword in an assembly  input  line.  The  keyword
substitution is recursive  for  additional  flexibility.
The .undefine  directive  removes  the  definition  of a
defined keyword.  The .ifdef and .ifndef directives test
the existance of a .define keyword definition or  symbol
definition to assist in conditional assembly processing.

   The  assembler/linker  -z  option has been changed to
specify case insensitivity.

... Return to the ASxxxx Assembler Index

... Home Page