24Fermer26
Lionel DebrouxLe 26/06/2012 à 18:55
Pour mettre un frame pointer dans a6 (c'est comme ça que tu utilises ce registre dans ton exemple), tu peux utiliser les instructions link et unlk smile
Beaucoup des autres jeux dont j'ai vu le code source ont mis leurs variables dans le programme même

C'est souvent la façon la plus efficace (en taille, et marginalement en vitesse) de faire, d'autant plus que la taille des variables globales est faible et que le nombre d'accès en lecture aux variables globales est élevé.
mais si on a besoin d'un grand bloc de mémoire, s'il s'agit par exemple d'un gbuf (ou deux), je suppose c'est pas vraiment convénient.

Dans ce cas-là, allouer un bloc de mémoire, et stocker le résultat dans une variable globale pointeur, est souvent assez efficace en taille.

-fomit-frame-pointer + -freg-relative-a(4, 5 ou 6) (à se faire à la main si on fait du pur ASM) peut donner d'excellents résultats, à la fois en taille et en vitesse, car tous les accès (lecture / écriture / exécution) sont des adressages d(an). Pas de vilains adressages xxx.l relogés.