MSP430-Ext - Using as
Description: Using as

Previous: MSP430-Regs, Up: MSP430 Syntax

##### 9.26.2.4 Assembler Extensions

`@rN`
  As destination operand being treated as ‘`0(rn)`’
`0(rN)`
  As source operand being treated as ‘`@rn`’
`jCOND +N`
  Skips next N bytes followed by jump instruction and equivalent to ‘`jCOND $+N+2`’

Also, there are some instructions, which cannot be found in other assemblers. These are branch instructions, which has different opcodes upon jump distance. They all got PC relative addressing mode.

`beq label`
  A polymorph instruction which is ‘`jeq label`’ in case if jump distance within allowed range for cpu's jump instruction. If not, this unrolls into a sequence of

                  jne $+6
                  br  label

`bne label`
  A polymorph instruction which is ‘`jne label`’ or ‘`jeq +4; br label`’
`blt label`
  A polymorph instruction which is ‘`jl label`’ or ‘`jge +4; br label`’
`bltn label`
  A polymorph instruction which is ‘`jn label`’ or ‘`jn +2; jmp +4; br label`’
`bltu label`
  A polymorph instruction which is ‘`jlo label`’ or ‘`jhs +2; br label`’
`bge label`
  A polymorph instruction which is ‘`jge label`’ or ‘`jl +4; br label`’
`bgeu label`
  A polymorph instruction which is ‘`jhs label`’ or ‘`jlo +4; br label`’
`bgt label`
  A polymorph instruction which is ‘`jeq +2; jge label`’ or ‘`jeq +6; jl +4; br label`’
`bgtu label`
  A polymorph instruction which is ‘`jeq +2; jhs label`’ or ‘`jeq +6; jlo +4; br label`’
`bleu label`
  A polymorph instruction which is ‘`jeq label; jlo label`’ or ‘`jeq +2; jhs +4; br label`’
`ble label`
  A polymorph instruction which is ‘`jeq label; jl label`’ or ‘`jeq +2; jge +4; br label`’
`jump label`
  A polymorph instruction which is ‘`jmp label`’ or ‘`br label`’