For first, I only know the SHARC, but maybe they work similar to your
DSP;
I try to give you some ideas:
regards
Christoph
> -----Ursprgliche Nachricht-----
> Von: Ian [mailto:]
> Gesendet: Mittwoch, 4. April 2001 17:38
> An:
> Betreff: [adsp] Illegal multifunction instruction & a
> DO-UNTIL query in
> ADSP 2181
> Q1 - My assembler is telling me that the following
> instruction is an illegal
> multifunction
> but I can't see anything wrong, and the processor manual
> implies that it
> should be possible
>
> MR = MR + MX0 * MX0 (SS), MX0 = DM(I0, M1);
may be you should check if your MX0 is part of the accumulator. As far as I
know only registers can be used for multiplikations. Moreover you could
check if it's possible to do a quadrature with this ASM command.
>
> Any comments ?
>
> Q2 - I have a loop construct of the following form
>
> CNTR = 15;
> DO loop UNTIL CE;
> xxxxxx;
> IF NOT CE JUMP DecCntr;
> JUMP Quit2;
on SHARC's you need a suffix to jump out of a loop. It's JUMP
_somewhere
(LE);
>
> DecCntr: xxxxxx;
> xxxxxx;
> loop: xxxxxx;
>
> Quit1: {a normal loop exit}
> RTS;
>
> Quit2: {alternative loop exit}
> RTS;
>
> Where xxxx indicate irrelevant code in this example.
>
> The question is what POPs (if any) should occur at the Quit2 point ?
> The processor manual is a bit vague on what gets POPed by IF
> NOT CE when it
> does not jump.
> I have assumed that the Quit2 line should execute a POP PC, POP LOOP;
> instruction
> which seems to work ok.
|