Intranet Catprocess
  1. news...
  2. about Blackvoxel
  3. download
  4. manual
  5. videos
  6. about us
  1. Add/Sub

    add : Register2 = Register2 + Register1
    sub : Register2 = Register2 - Register1

    Affected Flags
    C V N Z
    X X X X

    The add and sub instructions are used for addition and substraction.The operation is performed between two registers and the result is put in the last one.

    Forms and variants

    rx = source register
    ry = destination register

    Form Effect
    add.b ry,rx
    rx <- rx + ry
    add.w ry,rx
    add.l ry,rx
    sub.b ry,rx rx <- rx - ry
    sub.w ry,rx
    sub.l ry,rx

    Instruction encoding

    S = Source register number
    D = Destination register number
    Instruction Op
    Code
    Cycles Encoding
    add.b ry,rx 0E 6 00001110 SSSSDDDD
    add.w ry,rx 4E 6 01001110 SSSSDDDD
    add.l ry,rx 8E 6 01001110 SSSSDDDD
    sub.b ry,rx 0F 6 00001111 SSSSDDDD
    sub.w ry,rx 4F 6 01001111 SSSSDDDD
    sub.l ry,rx 8F 6 10001111 SSSSDDDD

    Code Examples

    Note: This example is for understanding and can be optimized.

    // Example : Simple (naive) Checksum of a c-style text string

    ; r0 = pointer to string (in)
    ; r0 = result (out)

    checksum: pushregs r1-r2
    movex.b #0,r1
    loop: move.b(r0),r2
    beq out
    inc #1,r0
    add.b r2,r1
    bra loop
    out: move.b r1,r0
     popregs r1-r2
    rts

     
  2. Google+