1

bon j'ai l'instruction : move.w $300(A0),$1000 mais j'ai pas compris ce que ça faisait

à priori ça devrait incrémenter de 300 l'adresse A0 et mettre ce contenu à l'adresse $1000, non ?

au passage, je connais pas du tout l'utilité des fonctions ABCD SBCD et NBCDtriso, qqun peut me les expliquer

tiens tant que j'y suis, je veux faire une lib qui retourne l'adresse d'une chaine de caractères:


xdef _library
xdef _ti92plus
xdef _readonly

xdef ouga@0000
xdef ouga@0001
;etc......smile

ouga@0000:
;heu, ben en fait je sais pas quoi mettre pour retourner l'adresse sad
rts

ouga@0001

rts

chaine0000:
dc.b "ougaaaaaa",0

chaine0001:
dc.b "chaine2 !!!",0

end
avatar
納 豆パワー!
I becamed a natto!!!1!one!

2

1 ° Ce mode s'appelle "adressage indirect indexé", il n'incrémente pas an !
X(an) permet d'accéder au Xième octet après ce que pointe an. C'est donc équivalent à add.l #X,an | move.w (an),$1000, sauf que an n'est pas modifié smile

2 ° lea chaine(pc),a0 (ou move.l #chaine,a0 mais c'est pas bô wink)
avatar
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.

3

Si ta librairie est en read_only, tu ne dois ma mettre de code !

fait
ouga@0000
dc.b "Ma chaine est la",0

Puis un
extern char ouga__0000[];

4

Thibaut a écrit :
1 ° Ce mode s'appelle "adressage indirect indexé", il n'incrémente pas an !
X(an) permet d'accéder au Xième octet après ce que pointe an. C'est donc équivalent à add.l #X,an | move.w (an),$1000, sauf que an n'est pas modifié smile

2 ° lea chaine(pc),a0 (ou move.l #chaine,a0 mais c'est pas bô wink)


1° Heu non il n'incrémente pas A0 de $300, c pas ce que je voulais dire, je voulais dire qu'il demarre à l'adresse A0 et qu'il va voir $300 plus loin et copier ce contenu ds $1000, je vois pas du tout l'intéret de ce mode d'adressage, autant un bon vieux : move.w 2(A0,D1),$1000 gni, là au moins je vois l'utilité, mais l'autre.....

2° j'a failli ecrire lea chaine0000(PC),A0 mais ds un prgm en C je sais pas comment récupérer l'adresse dans A0 grin, et puis comme l'a dit pphd, en read_only on fait pas ça


PpHd> merci ! (tu devines à quoi ça va me servir ?grin)
avatar
納 豆パワー!
I becamed a natto!!!1!one!

5

liquid a écrit :
1° Heu non il n'incrémente pas A0 de $300, c pas ce que je voulais dire, je voulais dire qu'il demarre à l'adresse A0 et qu'il va voir $300 plus loin et copier ce contenu ds $1000, je vois pas du tout l'intéret de ce mode d'adressage, autant un bon vieux : move.w 2(A0,D1),$1000 gni, là au moins je vois l'utilité, mais l'autre.....

Tu n'as jamais travaillé avec du passage d'arguments par la pile, n'est-ce pas? Et avec des variables locales sur la pile non plus? Et le mode x(an) est aussi pratique si tu veux lire un champ bien précis d'une structure (par exemple SYM_ENTRY->handle).
Et le fait que tu ne connaissais pas ce mode d'adressage explique aussi pourquoi tu aimes cette saleté qui s'appelle librairie de données. Le x(an) est vraiment pratique pour lire des données d'un fichier externe, et c'est beaucoup mieux que ton ouga@0000 (ouga0000_offset(a2) est plus rapide et prend moins de place).
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é

6

Non pas plus rapide. Enfin si, mais bon. Pas dans le sens ou on pourrait le comprendre.
Et plus gros parce qu'il faut gerer ca soit meme et faire gaffe que les rom-calls detruisent les registres smile

7

Je n'ai pas pris a2 au hasard. Les ROM_CALLs ne détruisent que d0-d2/a0-a1.
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é

8

Mais l'acces aux libs ne detruit rien du tout. C'est mieux.

9

kevin> tu sais, je sais pas coder en asm (du moins pas sur TI) et si je pose cette question c'est parce que sur mon ploy, cet exemple n'etait pas commenté, ceci dit merci pour l'aide wink

bon et puis je préfére avoir une lib dyna en mode readonly, j'ai pas besoin de rapidité d'execution, c pour des dialogues (et surtout je sais pas faire autrement rotfl)
avatar
納 豆パワー!
I becamed a natto!!!1!one!