Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation Assembleur 68K » GNU as (32 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
Folco Ecrit le: Mercredi 8 juin 2005 à 12:47 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


Je n'arrive déséspérément pas à créer des labels locaux avec GNU as, du même style que ceux de A68k: \label
J'ai vu une syntaxe avec des .L ou des L., je sais plus trop. Mais ils ne me semblent pas être équivalents aux labels locaux de A68k définis entre deux labels globaux (ce qui fait qu'on peut avoir des \loop un peu partout dans le code).
Quelle est la syntaxe pour créer des labels ayant exactement le même rôle, je trouvais ça super commode avec A68k?
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°1   Marquer comme non lu.
Sasume Ecrit le: Mercredi 8 juin 2005 à 14:09 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Tu peux faire ça :
| du code...
  beq.s 0f
  | Encore du code...
0:
  | Toujours du code...
  beq.s 0b


Le label s'appelle 0, et lorsque tu y fais référence, tu précises s'il est en avant (f) ou en arrière (b).
Par contre ce n'est pas aussi explicite qu'un joli nom de label.
    
./Post n°2   Marquer comme non lu.
Lionel Debroux Ecrit le: Mercredi 8 juin 2005 à 14:11 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

Un type de label local est le label numérique:
0: bra.s 0b; bra.s 1f; nop; 1:
(c'était juste pour montrer b[ackwards] et f[orward], cet exemple est débile)

Si ça t'amuse, tu peux avoir deux labels de même nom:
0: tst.w (%a7)+; bne.s 0b; bra.s 0f; illegal; 0:

Il me semble que les .L(C)* utilisés dans le code produit par GCC sont également locaux.

[EDIT: cross]
-Edité le Mercredi 8 juin 2005 à 14:11 par Lionel Debroux-
Lionel Debroux - membre de TICT.
    
./Post n°3   Marquer comme non lu.
Sasume Ecrit le: Mercredi 8 juin 2005 à 14:11 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Pour plus d'infos : http://tigcc.ticalc.org/doc/gnuasm.html#SEC48L
    
./Post n°4   Marquer comme non lu.
Folco Ecrit le: Mercredi 8 juin 2005 à 14:18 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


ok, merci pour ces infos. Vous utilisez vraiment ces sauts avec F et B?
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°5   Marquer comme non lu.
Kevin Kofler Ecrit le: Mercredi 8 juin 2005 à 14:59 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Perso, je ne vois pas trop l'intérêt des labels locaux à part pour mettre de l'ASM inline dans une fonction C inlinable.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°6   Marquer comme non lu.
Folco Ecrit le: Mercredi 8 juin 2005 à 15:03 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


Mais moi j'aime bien. C'est faisable ou pas avec GNU as?
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°7   Marquer comme non lu.
Kevin Kofler Ecrit le: Mercredi 8 juin 2005 à 15:09 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Avec la version actuelle, non.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°8   Marquer comme non lu.
Folco Ecrit le: Mercredi 8 juin 2005 à 15:13 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


Au moins c'est clair :'( Merci.
-Edité le Mercredi 8 juin 2005 à 15:13 par Martial Demolins-
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°9   Marquer comme non lu.
Lionel Debroux Ecrit le: Mercredi 8 juin 2005 à 15:37 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

> Vous utilisez vraiment ces sauts avec F et B?
Systématiquement.
Lionel Debroux - membre de TICT.
    
./Post n°10   Marquer comme non lu.
Sasume Ecrit le: Mercredi 8 juin 2005 à 15:50 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Moi aussi.
Je trouve ça assez lourd en fait mais bon...

Je trouve que les labels locaux sont très pratiques pour éviter d'avoir des noms à rallonge.
    
./Post n°11   Marquer comme non lu.
Flanker Ecrit le: Jeudi 9 juin 2005 à 14:32 Déconnecté(e)    Voir le profil de Flanker Envoyer un email à Flanker Envoyer un message privé à Flanker  

ça poutre les lables locaux ! 80% de mes labels sont locaux, au moins quand je veux quitter une sous-fonction, je sais que je dois faire juste bra \exit, pas besoin de donner un nom compliqué ^^, pareil pour les boucles , dbra d0,\loop =)
    
./Post n°12   Marquer comme non lu.
Folco Ecrit le: Jeudi 9 juin 2005 à 15:29 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


ben oui, je suis fan de ça aussi, comme toi je ne compte plus les \loop, \next et \exit...
Mais je suis passé sur GNU as depuis 2 mois, mais rien que pour ça, je vais aussi rester à A68k.
Je voulais porter une lib dynamique que je suis en train d'écrire sur GNU as, mais je pense que ça ne se fera pas rien qu'à cause de ça. Seul GFA Editor (tkt geo² ça avance aussi :D) sera codé chez moi sur GNU as.
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°13   Marquer comme non lu.
Lionel Debroux Ecrit le: Jeudi 9 juin 2005 à 15:43 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

On peut prendre une convention pour les labels locaux numériques.
Dans ExtGraph, j'utilise 0 pour l'exit, 1 et 2 pour des boucles, etc. Les routines clippées ont dix labels locaux différents.
Lionel Debroux - membre de TICT.
    
./Post n°14   Marquer comme non lu.
Folco Ecrit le: Jeudi 9 juin 2005 à 15:58 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


C'est une bone idée en effet, si ça devient une convention. Le seul pépin, on peut avoir plusieurs labels identiques dans le même source?
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°15   Marquer comme non lu.
Lionel Debroux Ecrit le: Jeudi 9 juin 2005 à 16:42 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

Oui, même si je ne l'ai pas fait pour ExtGraph: cf #2.
Lionel Debroux - membre de TICT.
    
./Post n°16   Marquer comme non lu.
Folco Ecrit le: Jeudi 9 juin 2005 à 16:44 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


Ah oui ok, j'avais pas percuté en lisant ton exemple.

Je vais donc essayer comme ça, voir si j'arrive à m'y faire. Donc 0=exit, 1 et 2 pour les boucles, tu en as d'autres comme ça?
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°17   Marquer comme non lu.
Lionel Debroux Ecrit le: Jeudi 9 juin 2005 à 17:22 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

Pour la convention utilisée dans la plupart des routines de sprite d'ExtGraph:
0 -> exit.
1, 2 -> boucles.
3 -> deuxième point d'entrée dans une boucle (beaucoup de routines d'ExtGraph font le lea 30(an),an une fois de moins).

Après, c'est moins logique, car ça a été ajouté au fur et à mesure...
4, 5 -> boucles de clipping sur les côtés.
6, 9, 10 -> labels utilisés pour continuer l'exécution plus loin.
7, 8 -> prologues du clipping sur les côtés.


Mais ça n'a aucun caractère général: d'autres routines avec un seul label utilisent 0 comme boucle.
Lionel Debroux - membre de TICT.
    
./Post n°18   Marquer comme non lu.
Kevin Kofler Ecrit le: Jeudi 9 juin 2005 à 17:44 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Dans mon scanf, comme je n'avais pas envie de chercher des noms pour tous les labels, j'ai utilisé beaucoup de labels locaux numériques, mais je les ai tous numérotés dans l'ordre, donc il y a par exemple un 47:. :)
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°19   Marquer comme non lu.
Flanker Ecrit le: Vendredi 10 juin 2005 à 09:33 Déconnecté(e)    Voir le profil de Flanker Envoyer un email à Flanker Envoyer un message privé à Flanker  

au moins t'as un code super lisible après #tritop#
    
  :: Index » Forum Ti68K » Programmation Assembleur 68K » GNU as (32 réponse(s))
Pages : 1/2     « [1] 2 » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 108.97ms avec 18 requetes