Welcome

AS78K0S Assembler

78K/0S REGISTER SET 

The following is a list of the 78K/0S registers used by AS78K0S: 

        x(r0), a(r1),   8-bit registers
        c(r2), b(r3),
        e(r4), d(r5),
        l(r6), h(r7)

        ax(rp0),        16-bit registers
        bc(rp1),
        de(rp2),
        hl(rp3)

        sp              Stack pointer
        psw             Program status word
        cy              Carry flag

        Register names are NOT case sensitive.

78K/0S INSTRUCTION SET 


   The  following tables list all 78K/0S mnemonics recognized by
the AS78K0S assembler.  The designation [] refers to a  required
addressing  mode  argument.  The first list specifies the format
for each addressing mode supported by AS78K0S:  

        addr16          direct addressing
                        via 16-bit address

        !addr16         immediate addressing
                        only required for the
                        long br instruction

        @saddr          short direct addressing
                        0xFE20 <= saddr <= 0xFF1F

        @saddr.bit      short direct addressing
        @saddr,bit      with bit addressing (0-7)
                        0xFE20 <= saddr <= 0xFF1F

        *sfr            special function registers
                        0xFF00 <= sfr <= 0xFFCF  or
                        0xFFE0 <= sfr <= 0xFFFF

        *sfr.bit        special function registers
        *sfr,bit        wiht bit addressing (0-7)
                        0xFF00 <= sfr <= 0xFFCF  or
                        0xFFE0 <= sfr <= 0xFFFF

        label           branch label
                        (pc relative addressing)

        #byte           immediate data (8  bit)
        #word           immediate data (16 bit)

        rn              registers (8 bit)
                        x, a, c, b, e, d, l, h
                        r0-r7

        rpn             registers (16 bit)
                        ax, bc, de, hl
                        rp0-rp3

        sp              stack pointer

        psw             program status register

        cy              carry flag

        [DE], [HL]      register indirect addressing

        [HL+byte]       based register indirect addressing

The terms addr16, saddr, sfr, bit, label, byte, and word may all
be expressions.  

   Absolute  addresses  (CONSTANTS)  will be checked as being in
the 'saddr' range first and then as being in the 'sfr' range  if
no explicit @ or * is specified.  

   The  bit addressing modes *sfr.bit and @saddr.bit use the '.'
as a separator from the address and  the  bit  value.   The  bit
value  can  be  a numeric constant, a named constant, an expres-
sion, or a combination of these.  Because  the  '.'  is  also  a
legal character in a name or label the assembler may not be able
to resolve the address and bit value.  The  optional  method  of
using a ',' to separate the address and bit value may be used in
this case.  

   If  the 'sfr' or 'saddr' address is external then the user is
responsible to ensure the addresses are in  the  proper  ranges.
NO ERRORS will be reported by the linker.  

   Note  that  not all addressing modes are valid with every in-
struction, refer to the 78K/0S technical data for valid modes.  

Inherent Instructions 

        nop     halt    stop
        ret     reti
        di      ei

Branch Instructions 

        bc      label                   bnc     label
        bz      label                   bnz     label

        br      []                      dbnz    [],addr16

        bt      [],addr16               bf      [],addr16

Single Operand Instructions 

        inc     []                      dec     []
        incw    rpn                     dec     rpn

        set1    []                      clr1    []

        set1    cy                      clr1    cy
        not1    cy

        call    addr16                  callt   []

        push    []                      pop     []

Double Operand Instructions 

        movw    sp,ax                   movw    ax,sp
        movw    [],[]                   xchw    ax,rpn

        add     a,[]                    add     saddr,#byte
        addc    a,[]                    addc    saddr,#byte
        sub     a,[]                    sub     saddr,#byte
        subc    a,[]                    subc    saddr,#byte
        and     a,[]                    and     saddr,#byte
        or      a,[]                    or      saddr,#byte
        xor     a,[]                    xor     saddr,#byte
        cmp     a,[]                    cmp     saddr,#byte

        adddw   ax,#word                subw    ax,#word
        cmpw    ax,#word

        ror     a,1                     rol     a,1
        rorc    a,1                     rolc    a,1

Go to the Documentation Index

... Exit the ASxxxx Documentation

... Home Page

Last Updated: September 2023