1

Hello, j'ai une toute petite question:
Je cherche à décaller des éléments d'un tableau d'une case. Actuellement je fais:


a0 = derniere case du tableau+1
a1 = avant derniere case du tableau+1

while (a0 != début du tableau) {
      -(a0) = -(a1)
}


J'utilise 2 registres. Il y a t-il moyen d'en utiliser qu'un seul (en utilisant un mode d'adressage particulier par exemple)?

2

Je pense que ceci devrait marcher:
while (%a0 != début du tableau) { 
      move.l (%a0)+,(%a0)
      subq.l #8,%a0
}
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

4

ah yeah top

5

(par contre à part si le tableau est petit, je ne vois pas trop l'intérêt : avec un movem ça irait plus vite, et à mon avis c'est quand même important pour ce genre de fonctions)

6

ah oui je connais cette astuce, mais le tableau peut etre grand. De toute façon c'était par curiosité que je demandais ça, dans mon cas on peut carrement se passer du décalage du tableau.

Et le problème était d'utiliser le moins de registres possibles, toi tu propose de faire le contraire grin

7

et heu... Changer le pointeur sur le début du tableau, spas possible? ça va encore plus vite ça grin

8

bah ça marcherait si j'avais une mémoire infini (et c'est pas le cas grin).

9

10

ok ok, mais pas besoin de me parler de toutes les techniques existante pour déplacer des données vu que
Jyaif (./6) :
dans mon cas on peut carrement se passer du décalage du tableau.

11

12

Jyaif (./6) :
ah oui je connais cette astuce, mais le tableau peut etre grand.

ben justement plus le tableau est grand plus c'est intéressant (la sauvegarde des registres devient négligeable)
De toute façon c'était par curiosité que je demandais ça, dans mon cas on peut carrement se passer du décalage du tableau.

ok embarrassed (wrap de l'indice ?)
Et le problème était d'utiliser le moins de registres possibles, toi tu propose de faire le contraire grin

certes tongue
mais j'ai bien précisé que pour ce type de problème, je ne vois pas trop l'intérêt de minimiser le nombre de registres utilisés (mais je suis curieux de le connaitre)

13

Pen^2 (./12) :
Jyaif (./6) :
ah oui je connais cette astuce, mais le tableau peut etre grand.
ben justement plus le tableau est grand plus c'est intéressant (la sauvegarde des registres devient négligeable)
ah oui.
De toute façon c'était par curiosité que je demandais ça, dans mon cas on peut carrement se passer du décalage du tableau.

ok embarrassed (wrap de l'indice ?)

oui ^^ (ça serait pas plutôt warp?)
Et le problème était d'utiliser le moins de registres possibles, toi tu propose de faire le contraire grin

certes tongue
mais j'ai bien précisé que pour ce type de problème, je ne vois pas trop l'intérêt de minimiser le nombre de registres utilisés (mais je suis curieux de le connaitre)

Le seul intérêt d'utiliser un seul registre était de satisfaire ma curiosité smile

14

- wrap/warp : je pense pas mais bon... à confirmer (http://homepages.inf.ed.ac.uk/rbf/HIPR2/wrap.htm)

- intérêt > ok hehe