En détail:
Soit %abcdefghijklmnop le mot à inverser.
move.w 4(a7),d1 et moveq.l #15,d2 ->
d0.w: %rstuvwxyzSTUVWXY
d1.w: %abcdefghijklmnop
d2.w: 15
X: Z
add.w d1,d1 ->
d0.w: %rstuvwxyzSTUVWXY
d1.w: %bcdefghijklmnop0
d2.w: 15
X: a
roxr.w #1,d0 ->
d0.w: %arstuvwxyzSTUVWX
d1.w: %bcdefghijklmnop0
d2.w: 15
X: Y
dbra d2,loop ->
d0.w: %arstuvwxyzSTUVWX
d1.w: %bcdefghijklmnop0
d2.w: 14
X: Y
add.w d1,d1 ->
d0.w: %arstuvwxyzSTUVWX
d1.w: %cdefghijklmnop00
d2.w: 14
X: b
roxr.w #1,d0 ->
d0.w: %barstuvwxyzSTUVW
d1.w: %cdefghijklmnop00
d2.w: 14
X: X
dbra d2,loop ->
d0.w: %barstuvwxyzSTUVW
d1.w: %cdefghijklmnop00
d2.w: 13
X: X
add.w d1,d1 ->
d0.w: %barstuvwxyzSTUVW
d1.w: %defghijklmnop000
d2.w: 13
X: c
roxr.w #1,d0 ->
d0.w: %cbarstuvwxyzSTUV
d1.w: %defghijklmnop000
d2.w: 13
X: W
dbra d2,loop ->
d0.w: %cbarstuvwxyzSTUV
d1.w: %defghijklmnop000
d2.w: 12
X: W
add.w d1,d1 ->
d0.w: %cbarstuvwxyzSTUV
d1.w: %efghijklmnop0000
d2.w: 12
X: d
roxr.w #1,d0 ->
d0.w: %dcbarstuvwxyzSTU
d1.w: %efghijklmnop0000
d2.w: 12
X: V
dbra d2,loop ->
d0.w: %dcbarstuvwxyzSTU
d1.w: %efghijklmnop0000
d2.w: 11
X: V
add.w d1,d1 ->
d0.w: %dcbarstuvwxyzSTU
d1.w: %fghijklmnop00000
d2.w: 11
X: e
roxr.w #1,d0 ->
d0.w: %edcbarstuvwxyzST
d1.w: %fghijklmnop00000
d2.w: 11
X: U
dbra d2,loop ->
d0.w: %edcbarstuvwxyzST
d1.w: %fghijklmnop00000
d2.w: 10
X: U
add.w d1,d1 ->
d0.w: %edcbarstuvwxyzST
d1.w: %ghijklmnop000000
d2.w: 10
X: f
roxr.w #1,d0 ->
d0.w: %fedcbarstuvwxyzS
d1.w: %ghijklmnop000000
d2.w: 10
X: T
dbra d2,loop ->
d0.w: %fedcbarstuvwxyzS
d1.w: %ghijklmnop000000
d2.w: 9
X: T
add.w d1,d1 ->
d0.w: %fedcbarstuvwxyzS
d1.w: %hijklmnop0000000
d2.w: 9
X: g
roxr.w #1,d0 ->
d0.w: %gfedcbarstuvwxyz
d1.w: %hijklmnop0000000
d2.w: 9
X: S
dbra d2,loop ->
d0.w: %gfedcbarstuvwxyz
d1.w: %hijklmnop0000000
d2.w: 8
X: S
add.w d1,d1 ->
d0.w: %gfedcbarstuvwxyz
d1.w: %ijklmnop00000000
d2.w: 8
X: h
roxr.w #1,d0 ->
d0.w: %hgfedcbarstuvwxy
d1.w: %ijklmnop00000000
d2.w: 8
X: z
dbra d2,loop ->
d0.w: %hgfedcbarstuvwxy
d1.w: %ijklmnop00000000
d2.w: 7
X: z
add.w d1,d1 ->
d0.w: %hgfedcbarstuvwxy
d1.w: %jklmnop000000000
d2.w: 7
X: i
roxr.w #1,d0 ->
d0.w: %ihgfedcbarstuvwx
d1.w: %jklmnop000000000
d2.w: 7
X: y
dbra d2,loop ->
d0.w: %ihgfedcbarstuvwx
d1.w: %jklmnop000000000
d2.w: 6
X: y
add.w d1,d1 ->
d0.w: %ihgfedcbarstuvwx
d1.w: %klmnop0000000000
d2.w: 6
X: j
roxr.w #1,d0 ->
d0.w: %jihgfedcbarstuvw
d1.w: %klmnop0000000000
d2.w: 6
X: x
dbra d2,loop ->
d0.w: %jihgfedcbarstuvw
d1.w: %klmnop0000000000
d2.w: 5
X: x
add.w d1,d1 ->
d0.w: %jihgfedcbarstuvw
d1.w: %lmnop00000000000
d2.w: 5
X: k
roxr.w #1,d0 ->
d0.w: %kjihgfedcbarstuv
d1.w: %lmnop00000000000
d2.w: 5
X: w
dbra d2,loop ->
d0.w: %kjihgfedcbarstuv
d1.w: %lmnop00000000000
d2.w: 4
X: w
add.w d1,d1 ->
d0.w: %kjihgfedcbarstuv
d1.w: %mnop000000000000
d2.w: 4
X: l
roxr.w #1,d0 ->
d0.w: %lkjihgfedcbarstu
d1.w: %mnop000000000000
d2.w: 4
X: v
dbra d2,loop ->
d0.w: %lkjihgfedcbarstu
d1.w: %mnop000000000000
d2.w: 3
X: v
add.w d1,d1 ->
d0.w: %lkjihgfedcbarstu
d1.w: %nop0000000000000
d2.w: 3
X: m
roxr.w #1,d0 ->
d0.w: %mlkjihgfedcbarst
d1.w: %nop0000000000000
d2.w: 3
X: u
dbra d2,loop ->
d0.w: %mlkjihgfedcbarst
d1.w: %nop0000000000000
d2.w: 2
X: u
add.w d1,d1 ->
d0.w: %mlkjihgfedcbarst
d1.w: %op00000000000000
d2.w: 2
X: n
roxr.w #1,d0 ->
d0.w: %nmlkjihgfedcbars
d1.w: %op00000000000000
d2.w: 2
X: t
dbra d2,loop ->
d0.w: %nmlkjihgfedcbars
d1.w: %op00000000000000
d2.w: 1
X: t
add.w d1,d1 ->
d0.w: %nmlkjihgfedcbars
d1.w: %p000000000000000
d2.w: 1
X: o
roxr.w #1,d0 ->
d0.w: %onmlkjihgfedcbar
d1.w: %p000000000000000
d2.w: 1
X: s
dbra d2,loop ->
d0.w: %onmlkjihgfedcbar
d1.w: %p000000000000000
d2.w: 0
X: s
add.w d1,d1 ->
d0.w: %onmlkjihgfedcbar
d1.w: %0000000000000000
d2.w: 0
X: p
roxr.w #1,d0 ->
d0.w: %ponmlkjihgfedcba
d1.w: %0000000000000000
d2.w: 0
X: s
dbra d2,loop ->
d0.w: %ponmlkjihgfedcba
d1.w: %0000000000000000
d2.w: -1
X: s
d2.w=-1, donc la boucle dbra termine.
La valeur de retour dans d0.w est bien %ponmlkjihgfedcba, qui est %abcdefghijklmnop inversé.
[edit]Edité par Kevin Kofler le 20-11-2001 à 04:01:40[/edit]
