Bonjour, je dois faire un exercice en ARM 7. Cet exercice consiste à prendre une série de nombre présent dans une variable tableau source (src) et les mettre dans une autre variable (dst)en commençant par la fin.
Par exemple:
src = 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4
Donc dst = 4,3,2,1,8,7,6,5,4,3,2,1,8,7,6,5,4,3,2,1
Je n'arrive pas à faire la fonction qui écriras dans la variable dst le résultat.
Voici moncode:
AREA TP2, CODE, READONLY
ENTRY
start
LDR R0, =src
LDR R1, =dst
MOV R2, #20
reverse_function
end_reverse function
AREA data, DATA, READWRITE
src DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4
dst DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
END
Bravo! Tu as trouvé la solution toi-même. Pourrais-tu la partager? Je ne connais pas l'assembleur ARM mais j'ai déjà travaillé sur d'autres assembleurs. Intuitivement je ferais ceci: load r0,src load r1,dst load r2,longueur add r1,r2 ajouter longueur pour la fin de dst (+1) rso r1 replace substract one (dernier) loop bss 0 définir l'adresse load r3,(r0) mve r3,r4 store r4,(r1) rao r0 replace add one rso r1 rso r2 nz r2,loop À condition que la longueur soit supérieure à 0 au départ.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.