1

Au risque de poser une question digne d'un nOoB, j'ai un pbm qui me turlipine neutral

J'ai un registre d'addresse qui pointe sur une zone mémoire. et j'ai un registre de donnée de la taille d'un octet qui contient une valeur signé (-127 a +128) et je doit ajouter la valeur de se registre de donnée a la valeur contenu dans le registre d'addresse.

Ma question stupide est que est-ce que etendre la valeur du signe sur un long suffira a faire que les valeurs < 0 soir "soustraite" a mon registre d'addresse ? ou ya une méthode plus simple, sachant que le 68000 ne fait pas d'opération signé...

ie:

est-ce que :
 move.b #VALEUR, d0
 ext.w d0
 ext.l d0
 add.l d0, a0

fonctionnera ???
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

2

move.b #VALEUR, d0
add.l d0, a0


Me parail plus simple?
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.

3

le pbm c que de faire sa :

on commence :

d0 = 0x12345678

move.b #0xA5, d0

d0 = 0x123456A5

add.l d0, a5

ajoute a a5 la valeur 0x123456A5
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

4

 move.b #VALEUR,d0
 ext.w d0
 adda.w d0,a0

suffit.
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é

5

si la valeur contenu dans d0 est négative il la soustrara bien tu est sur ?
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

6

(j'ai pas la tete a refléchir sur les operation binaire ses derniers temps sa me fait mal a la tete rien que d'y penser...)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

7

godzil
: si la valeur contenu dans d0 est négative il la soustrara bien tu est sur ?

Oui.
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

ok je passerait juste par un word alors sa prendra moins de cycles

merci

(vraiment stupide ma question etait il est vrai)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

9

il n'y a jamais de question stupid, mais souvent des reponse stupide (pour les reponse, rien a voir avec ce topic!)

10

perso quand je me pose ce genre de questions, je verifie ac un debugueur, c encore plus rapide que de poster une question ici grin (surtout que g plus internet chez moi, alors c vraiment BCP plus rapide triso)

11

smile

12

oui mais les longues scéance de debugguage de mon CPU avec VTI sa ma saoule un max et quand g posé la Q je venait d'en sortir d'une neutral
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

13

Et moi j'ouvre une doc. Extrait de 68kguide:
*** ADDA ***

Binary addition to an addressregister. To make it possible to mix
addressoperations with dataoperations, this instruction won't affect any
flags.

ADDRESSMETHODS: Dn, An, (An), (An)+, -(An), x(An), x(An,xr.s), x.w, x.l, x(PC), x(PC,xr.s), #x

The effective address must be the source.

DATALENGTH: Word, longword

ADDA affects always all 32 bits in the destination addressregister.

FLAGS: Unaffected
SYTNAX: ADDA <ea>,An


Donc faut utiliser des words.
avatar
;)

14

pour adda oui car adda permet de faire une addition entre un registre a ou d avec un registre a
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

15

info juste une petite correction du post de départ : un octet signé ça va de -128 à +127

16

oui

17

faute de frappe
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

18

Pourquoi vous utilisez adda alors que A68k optimise l'instruction générique add en adda ?
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.

19

Parce qu'on écrit ce qu'on pense. D'autant plus que adda.w se comporte suffisamment différemment de add.w pour qu'il vaille le coup de faire la différence.
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é

20

D'ailleurs ce n'est même pas une 'optimisation'. Il y a une seule instruction binaire, c'est 'add'. Il se trouve que la plupart des assembleurs acceptent adda, mais cette instruction n'existe pas (oui, je sais elle existe dans la doc de Motorola, pourtant au niveau binaire il n'y a aucune raison de faire la différence, contrairement à ce qui se passe pour 'addi' qui est effectivement différent de 'add' - c'est juste pour que les utilisateurs du 68000 soient obligés de voir la différence)

Et personnellement je n'utilise jamais, mais ça n'engage que moi. Surtout que je ne pense pas qu'il y ait bcp de monde qui utilise systématiquement movea...

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

21

Moi, j'utilise systématiquement adda et movea au lieu de add et move.
Mais je pensais que c'était des instructions différentes, au niveau de l'opcode, et apparamment ce n'est pas le cas.

22

Moi, je ne le faisais pas quand j'étais débutant, mais je le fais maintenant. smile C'est tellement plus clair de voir adda ou movea, en particulier pour les words ou la différence est notable.
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é

23

Essaie de te rattraper roll Avoue que tu ne savais pas que c'étaient les mêmes instructions tongue
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.

24

Donc à ce que je comprend move=movea et add=movea? Si c'est le cas je vais changer ma façon de coder et écrire plus clairemement mon code. smile

Ou je peux trouver une documentation claire en français (si possible) avec toutes les instructions du A68K, l'opcode (par exemple rts=Nu)...?
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.

25

Thibaut :
Essaie de te rattraper roll Avoue que tu ne savais pas que c'étaient les mêmes instructions tongue

Crétin, ce n'est pas parce que les instructions ont le même opcode (mais avec des spécifications de registres différentes!) qu'elles fonctionnent de la même manière. Lis le 68kguide et/ou la documentation officielle de Motorola et tu verras que l'instruction move ...,an n'existe pas ailleurs que dans ta fantaisie parce que le vrai nom de cette instruction est movea. Et ce sont les constructeurs du CPU, qui s'y connaissent certainement mieux que toi, qui disent ça (cf. documentation officielle).
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é

26

geogeo :
Donc à ce que je comprend move=movea et add=movea? Si c'est le cas je vais changer ma façon de coder et écrire plus clairemement mon code. smile

move ...,an et add ...,an n'existent pas, donc ce n'est certainement pas "clair" de les utiliser.
move.w ne fait pas d'extension de signe, movea.w en fait une.
add.w n'applique pas la retenue au mot de poids fort, adda.w le fait.
Les instructions se comportent différemment.
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é

27

KK> Ne joue pas sur les mots, Pollux a bien précisé qu'au niveau de l'opcode, move et movea n'avaient aucune différence : ils commencent tous les deux par 00, les autres bits définissent la taille de l'opérande source, les modes d'adressage de la source et de la destination. Ils sont tous les deux construits de la même façon.
Après, motorola a voulu les différencier, c'est leur choix. Sûrement parce que, comme tu l'as précisé, "movea" affecte les 32 bits du registre de destination, quelle que soit la taille de l'opérande source. donc, c'est plus clair de dire qu'il y a deux fonctions différentes plutôt que de préciser les cas particuliers selon les modes d'adressage.

Bref, sinon, geogeo pour un listing complet des instructions du 68000, il n'y a rien de mieux qu'une doc officielle. Cherche [google]68kPM.pdf[/google] dans google smile

28

Je vais télécharger ça. smile

Mais dans cette doc il n'y a pas l'écriture en binaire des instructions?
Je trouve interessant d'ouvrir un fichier en mode texte et de voir ce charabia et de comprendre que rts=Nu... C'est bien pour apprendre comment fonctionne le CPU au niveaux des instructions..
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.

29

D'ailleurs, autre différence: avec les registres d'adresse en destination, les flags ne sont pas affectés.
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é

30

Malheureusement, les instructions sont en anglais et le pdf concerne tous les processeurs de la famille 68k, donc il faut faire un tri... La section 5 par exemple ne nous concerne pas.

Mais j'y pense, j'avais fait un doc texte où j'ai recopié toutes les instructions + une petite description dans un fichier TEXT à mettre sur la TI. Je vais essayer de trouver ça et de l'uploader. Je l'avais fait pour moi à la base, donc ce n'est pas sûr que ce soit très lisibl et puis il y a peut-être des fautes puisque je n'ai fait que recopier machinalement ce que j'ai dans mon bouquin.