9.28.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’