## 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