## ASSX Assembler

####

         The  ASSX  assembler  supports the UBICOM SX family of com-
    munication  controllers.   The  processor  family  includes  the
    SX18/20/28/42/52 variations.

####

    SX REGISTER SET

    The following is a list of the SX registers used by ASSX.

            W       -       8-bit working register
            M       -       mode register

    The  following  is  a list of the SX special function registers.
    (Not all are present in all SX processors.)

    Address
    -------
     0x00   INDF    -       indirect addressing register
     0x01   RTCC    -       real time clock/counter
     0x02   PC      -       program counter
     0x03   STATUS  -       ALU status bits
     0x04   FSR     -       File Select Register
     0x05   RA      -       Port RA data register
     0x06   RB      -       Port RB data register
     0x07   RC      -       Port RC data register
     0x08   RD      -       Port RD data register
     0x09   RE      -       Port RE data register

####

    SX INSTRUCTION SET

         The following list specifies the format for each addressing
    mode supported by ASSX:

            W               the working register

            M               the MODE register

            fr              a memory address
                            for a file register

            fr.bit          a memory address
                            for a file register
                            with bit selection (0-7)

            !               Non-memory-mapped register
                            designator prefix

            #lit            immediate data

            label           branch label or value

    The terms fr, data, lit, and label may all be expressions.

         The  following  tables  list all SX mnemonics recognized by
    the ASSX assembler.  Note that the argument ordering is dst,src.

####

    Logical Operation Instructions

            and   fr,W      and   W,fr      and   W,#lit
            or    fr,W      or    W,fr      or    W,#lit
            xor   fr,W      xor   W,fr      xor   W,#lit
            not   fr

    Arithmetic and Shift Instructions

            add   fr,W      add    W,fr
            clr   fr        clr    W        clr    !WDT
            dec   fr        decsz  fr
            inc   fr        incsz  fr
            rl    fr        rr     fr
            sub   fr,W      swap   fr

    Bitwise Operation Instructions

            clrb  fr.bit    setb   fr.bit
            sb    fr.bit    snb    fr.bit

    Data Movement Instructions

            mov   fr,W      mov   W,fr      mov   W,fr-W
            mov   W,#lit    mov   M,#lit
            mov   W,M       mov   M,W

            mov   W,/fr     Move Complement of fr to W
            mov   W,--fr    Move (fr - 1) to W
            mov   W,++fr    Move (fr + 1) to W
            mov   W,<>fr    Rotate fr Right through Carry
                            and move to W
            mov   W,<>fr    Swap High/Low Nibbles of fr
                            and move to W

            mov   !rx,W     Move Data Between W
                            and Control Register
            mov   !option,W Move W to OPTION Register

            movsz W,--fr    Move (fr - 1) to W
                            and Skip if Zero
            movsz W,++fr    Move (fr + 1) to W
                            and Skip if Zero

            test  fr        Test fr for Zero

    Program Control Instructions

            call    label   PC<7:0> <- label
            jmp     label   PC<8:0> <- label

            nop             No Operation

            ret             Return from Subroutine

            retp            Return from Subroutine
                            Across Page Boundary

            reti            Return from interrupt

            retiw           Return from Interrupt
                            and add W to RTCC

            retw    lit     Return from Subroutine
                            with Literal in W

    System Control Instructions

            bank    label   Load Bank Number

            iread           Read Word from
                            Instruction Memory

            page    label   Load Page Number

            sleep           Power Down Mode

    Equivalent Assembler Mnemonics

            clc             Clear Carry Flag
            clz             Clear Zero Flag
            sc              Set Carry Flag
            sz              Set Zero Flag
            jmp   W         Jump Indirect W
            jmp   PC+W      Jump Indirect W Relative
            mode  #lit      Move immediate to MODE Register
            not   W         Complement W
            skip            Skip Next Instruction

##### Go to the Documentation Index

... Exit the ASxxxx Documentation

... Home Page

###### Last Updated: March 2025