Si u as besoin de place plus que de vitesse crée une sous fonction contenant ce code... et appelée par chacune des autres fonctions.

Que cache le pays des Dieux ? -
Forum Ghibli -
Forum LittéraireLa fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.
Si tu fais une fonction non inline, non. Si tu fais une macro ou une fonction inline, oui.
Après c'est pas forcément moins gros de faire ça, ça dépend essentiellement de la quantité de code dans ta partie commune.

Que cache le pays des Dieux ? -
Forum Ghibli -
Forum LittéraireLa fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.
Euh on est en assembleur là désolé.
La sous-fonction ne sera jamais recopiée à l'intérieur du code (rappelle-toi qu'en assembleur le code généré est (à quelques éventuelles optimisations près) exactement celui de ta source).

Que cache le pays des Dieux ? -
Forum Ghibli -
Forum LittéraireLa fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.
Faut voir, comme dit Ximoon, si le code d'empilage des paramètres + appel ne prend pas plus de place que le code de la fonction.

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
Quel empilage des paramètres? La fonction appelante et la sous-fonctions sont tous les deux en l'assembleur, donc on n'a pas besoin de respecter une convention d'appel. On fait un jsr (qui sera optimisé en un bsr par le linker quand c'est possible) et on n'a pas du tout besoin de changer le code qu'on met dans la sous-fonction (à part pour ajouter 4 aux offsets sur la pile).
"Propre", pas vraiment, mais ça marche avec tous les AMS connus, et je pense que AMS 3 n'y change rien.
ça revient strictement au même, et ça utilise probablement autant de registres
EDIT: post croisé
Et les raisons pour lesquelles ce n'est pas propre:
1. Tu utilises un trap non-documenté à la place d'un ROM_CALL exporté.
2. Il n'y a aucune documentation officielle qui te dit que le trap #1 ne détruit pas de registres autres que %d0. Un trap peut détruire ce qu'il veut, même des registres qui ne sont normalement pas call-clobbered. Tout dépend du trap en question.
GoldenCrystal Le 17/02/2004 à 23:53Edité par GoldenCrystal le 17/02/2004 à 23:55 Martial Demolins> L'instruction TRAP n'est pas une instruction dont la fonction change avec le numéro... C'est juste une instruction qui éxécute la fonction dont l'adresse est stockée dans la table des vecteurs à l'emplacement TRAP #N prévu, en mode superviseur.