Why address register postincrement is (A0)+

2019-07-31 10:14发布

问题:

Basically in the assembly language of 68000 to postincrement an address register you have to do:

(A0)+

Example

MOVE (A0)+,D0

This will move into D0 the value pointed by address of A0 and also will increment A0 by 1.

Considering that (A0) is the value pointed by A0 wasn't better if the postincrement syntax was:

(A0+)

? Or I am missing something?

回答1:

MOVE.L (A1)+,D0 ; increments A1 by 4, because it is long operation
                ; and 4 is size of long

I think that current postincrement syntax points at this feature, while (A1+) more suggests that A1 incremens by one always.

Look at: Indirect addressing with postincrement