I really think the 5515 MNEMONIC assembler has a problem. It will encode an invalid MPY instruction. Per document spru374g.pdf the instruction is not shown as valid but it does not give an error but it encodes the instruction in error.
// Execute these instructions and the last MPY instruction changes T3 even though it's not part of the instruction
MOV #0,T3
MOV #0x1111,*AR0
MOV #0x2222,*AR1
MPY *AR0,*AR1,AC0
// After the above MPY instruction executes T3==0x1111 so it's as if it's encoded as:
// MPYM T3=*AR0,*AR1,AC0
// The above form of MPY is not allowed per the data sheet, spru374g.pdf, but it does not give an error. MPYM is the correct form.
// Execute the same sequence with the last instruction MPYM rather than MPY and T3 DOES NOT CHANGE. Here MPYM is the proper form per document spru374g.pdf
MOV #0,T3
MOV #0x1111,*AR0
MOV #0x2222,*AR1
MPYM *AR0,*AR1,AC0
Then I looked at the above in the disassembly window and sure enough for the first of instructions above I see my source line but the disassembled line shows the "T3=*AR0" part of the instruction. It's an easy TYPO to type MPY rather than MPYM for the above instruction and then all of a suddent T3 is changing on you and your program doesn't work.
And in a completely differnt complaint. This website had all sorts of problem when I tried to used it with WINDOWS 7. Now I'm using XP and it works good.