Go4Expert (http://www.go4expert.com/)
-   Assembly Language Programming (ALP) Forum (http://www.go4expert.com/forums/assembly-language-programming-forum/)
-   -   what does -(A7) or (A7)+ mean (http://www.go4expert.com/forums/a7-a7-mean-t15270/)

Shafqat 27Nov2008 07:35

what does -(A7) or (A7)+ mean

I'm a beginner at assembly language and I have a piece of code I'm trying to understand. I understand most of it but I still am not sure what -(A7) or (A7)+ mean.

I know An are address registers and so A7 is the last 32 bit address register (coldfire processor). But whats the -/+ before and after?

Is it decrementing or incrementing?

If so, what is being incremented or decremented? The address registers themselves?

e.g. does -(A7) mean A6?


xpi0t0s 27Nov2008 13:31

Re: what does -(A7) or (A7)+ mean
-(A7) dereferences and predecrements A7, in C++ this would be *(--A7)
(A7)+ dereferences and postincrements A7, in C++ *(A7++).

-(A7) decreases the value in A7 by 1, then looks up in memory what is at address A7. So if we have the following memory layout:

0012bcad 41
0012bcae 37
0012bcaf 26

and A7 contains 0012bcae, move.b -(A7),d0 will change A7 to 0012bcad and load 41 into d0.
Mirroring that, if A7 contains 0012bcae, move.b (A7)+,d0 will load 37 into d0 and change A7 to 0012bcaf.

Shafqat 28Nov2008 00:55

Re: what does -(A7) or (A7)+ mean
That helped a lot, thank you :)

All times are GMT +5.5. The time now is 21:00.