1

Est-ce que pea est plus rapide que de faire move.l a0,-(a7)?
Est-ce que de faire un set est-il plus rapide que de faire un eori?
L'instruction xorl ou xrol je sais plus le nom permet de faire quoi et fonctionne comment?

Je sais qu'avec la fonction add, si le résultat dépasse prévus, le bit C est mis à 1 et donc il est possible de tster les bits un par un dans une variable:

Par exemple j'ai une variable de ce type: 0b11100000 11000000 qui ce nomme var, je vais tester l'état de chaque bits en partant de la gauche à la droite.

Pour ça je fait:
move.w var(PC),d0
add d0,d0
bcs label1
add d0,d0
bcc label2
rts

Donc si le bit #15 est à 1 je vais à label1, si le bit #14 est à 0 je vais à label2...
Cette routine ne fonctionne pas, pourquoi???
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

2

Pour les timings, y'a une doc nommée timing.txt smile qui existe
1. nan
2. un poil mieux pour bset

3

geogeo
: L'instruction xorl ou xrol je sais plus le nom permet de faire quoi et fonctionne comment?

Tu veux dire roxl?
[url]http://www.technoplaza.net/assembly/index.cgi?p=68ks7#*** ROXL ***[/url]
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é

4

Tout a été répondu, mais j'ai aussi envie de répondre cheeky
geogeo :
Est-ce que pea est plus rapide que de faire move.l a0,-(a7)? Est-ce que de faire un set est-il plus rapide que de faire un eori?
Regarde dans 68000UM.pdf ! Il peut se télécharger à partir du site de la TICT.
L'instruction xorl ou xrol je sais plus le nom permet de faire quoi et fonctionne comment?
Comme rol, sauf qu'on a un bit en plus contenu dans le flag X (bon, explication vaseuse et tirée par les cheveux)
Exemple :d0.w=$8000, X=0
roxl.w #1,d0 ; d0.w = $0000, X=1
roxl.w #1,d0 ; d0.w = $0001, X=0
Pour ça je fait:
move.w var(PC),d0
add d0,d0
bcs label1
add d0,d0
bcc label2
rts

Donc si le bit #15 est à 1 je vais à label1, si le bit #14 est à 0 je vais à label2... Cette routine ne fonctionne pas, pourquoi???
Déjà tu devrais préciser les tailles de tes opérandes (add.w d0,d0) pour plus de sûreté. Ensuite, ça devrait marcher, j'utilise cette technique dans ma routine de tracé de ligne.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

5

Tiens, je viens de retrouver ça : http://membres.lycos.fr/jackiechan/decalages.jpg il y a un beau shéma explicatif pour l'instruction roxl smile
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

6

D'accord c'est bien ce que je pensais avoir comme réponses. grin

Mais je comprend pas pourquoi ma routine ne fonctionne pas, je vous la posterais.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

7

L'erreur n'est probablement pas dans l'extrait posté.
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

Voici la routine:
	lea	state(PC),a0
	move.b	(a0)+,d0
	add.b	d0,d0
	bcc.s	fin1
           	   
	add.b	d0,d0
	bcs	label_1
	add.b	d0,d0
	bcs	label_2
	add.b	d0,d0
	bcs	label_3
	add.b	d0,d0
	bcs	label_4
                
fin1:
	move.b	(a0)+,d0
	add.w	d0,d0
	bcc.s	fin2
        
                add.w	d0,d0
	bcc.s	fin2
           
	add.w	d0,d0
	bcs	label_5
	add.w	d0,d0
	bcs 	label_6
	add.w	d0,d0
	bcs	label_7
	add.w	d0,d0
	bcs	label_8


Voici ce que conteint state:
0b11100000 11000000

Suivant les tests je dois logiquement executer label_1 et si je passe à fin1, pas le cas dans l'exemple mais si c'est le cas je dois executer label_5!
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

9

./2> c'est marrant, à première vue j'aurais dit : 1) pea le plus rapide et 2) c pareil. Tu es vraiment sûr de ce que tu dis???

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

10

D'après mes souvenir, 2) c'est pareil. 1), j'ai la flemme de vérifier.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

11

Pollux: je me uis p-ê gourré de ligne comme j'ai dis a Ximoon qui a eut la mm réaction que toi, m'ai je trouve 12cycles pour le pea et 8 pour le move

12

pour pea.l (a0) et pea.l a0,-(a7), je trouve 12 cycles dans les deux cas.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

13

et move.l a0,-(a7) tu veux dire smile
C'est tout à fait possible que je me sois planter ... mais bon

14

12 cycles pour le pea et 14 pour le move.l a0,-(a7)

Enfin je crois, et ça explique aussi pourquoi le SDK de TI réserve toujours 4 octets de plus sur la pile : il peut passer le dernier argument à une fonction en faisant 'move.l d0,(a7)' plutôt que 'move.l d0,-(a7)' qui est plus lent.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

15

Désolé, mais je viens de vérifier, et j'ai bien 12 pour move.l a0,-(a7)
Par contre, pour move.l -(a7),a0, j'ai bien 14...
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

16

Oui, très juste. "timing.txt" se trompe alors.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)