Orion_ a écrit :
Non, car je divise d'abord pour enlever la virgule et avoir un nombre entier.
Exemple: 200 / 16 = 12.5 : 12*2*4=96
alors que 200 / 2 = 100
Ah oui... Je pensais d'abord qu'il y avait un truc comme ça, puis je pensais que non, il n'y en avait pas, mais en fait si, il y en a. Garde donc tes 2 lignes. À moins que
lsr.w #1,d3; moveq.l #-8,dn; and.w dn,d3 ne soit plus rapide. (Et je viens de vérifier, c'est le cas: 16 cycles contre 26. Mais 2 octets de plus.

)
le dbra ne ralentit il pas la fonction ?
Si, il prend entre 10 et 14 cycles selon les conditions du moment. Si ça te dérange vraiment, tu peux dérouler la boucle, mais garde le
lsr que j'ai mis, ça prend 2 octets et 2 cycles de moins que ton
btst.
PS: je precise que l'optimisation en vitesse est bien plus important que la place
prise, car, pour la place, aucun probléme il existe d'excellent packer et on a 720Ko
(voir 820 si on booste) de libre sur disquette et 1Mo de libre en mémoire
Mais ton programme ne sera pas forcément le seul sur la disquette, n'est-ce pas?
Par contre, la vitesse est trés importante car l'Atari ne tourne qu'a 8MHz
(4 de moins que la TI HW2)
Et 2 de moins que la TI-89/92+ HW1. On voit difficilement la différence de vitesse entre HW1 et HW2, donc je suppose que la différence entre l'Atari et une HW1 n'est pas très visible non plus.