Dynamic C integrated assembler

Hi all,

I’m using Dynamic C 10.64 with a Rabbit 5000 (BL5S220) and I ran into the following problem. I’m mistakenly coded the instruction

add ix, 4

and I say mistakenly because it doesn’t appear like a valid instruction in the manual . The problem is that the assembler didn’t question it and in fact, if I debug/disassemble, the instruction is shown as that precisly, but it simply doesn’t do the inteded, which is add to 4 to ix register.

My question is, how could I verify that my application code doesn’t contain any other misused/invalid instructions. Is there any command line utility such as an assembler or other verification utility.

Thanks in advance.

I suspect you have stumbled upon one of the new instructions added for the Rabbit 6000. If you compile the code with DC 10.50 it gives an error:

line 466 : ERROR MAIN.C : Unexpected token in instruction : "add ix, >>> 4 <<< ", expected one of { register }

The Rabbit instruction reference manual has not been updated to include the details for the Rabbit 6000 but it looks like the assembler has been but does not have the option to catch use of the new instructions with a cpu that does not support it.

The opcodes generated are 0xDD, 0xC5, 0x04 and C5 in the DD page is currently blank.

Regards,
Peter