I tried the following instruction to push a structure member (with based on PUSH loc16 (page 6-291 of spru430). XAR5 is pointer to the structure MYSTRUCT and member2 is a 16 bit quantity. I was basically trying to save (one additional instruction) a read into a intermediate register. It assembles OK. But it is not producing the intended effect. What is happening? Can someone explain.
PUSH *+XAR5[MYSTRUCT.member2]