; Ce tuto est a distribué, envoyez, copiez ; il est libre de tout droit, juste créditez ; les auteurs, merci ; Tuto 1 première partie ; Bienvenue a la première partie du 68000 ; par F(olco) et G(Tturbo :) ) ; Bonjour a tous et bienvenu sur le premier tuto ; pour faire de vous un pro du 68000 :) ; D'abord balayez toutes vos idées concernant ; le fait que cela ne concerne que des génies, ; je suis mécanicien auto et j'ai appris l'asm ; 68000 tout seul, a l'époque il y avait pas internet ; juste un paquet de livre remplis de bugs, ce ; qui était super pratique quand on est débutant..... ; L'asm 68000 est surement le meilleur asm pour ; apprendre ce superbe langage, syntaxe propre, ; lisible, clair, logique. ; Tout le monde peux apprendre l'asm, par contre ; ce qui ont fait du 'high level langage' (C, Java, etc...) ; avant, risque de pleurer, car il faut tout faire ; a la main, l'assembleur c'est de l'artisanat pure. ; ; C'est de la puissance pure mais au détriment de nuits ; très courtes, d'arrachages de cheveux. ; ; Vous trouverez un paquet de pages sur internet ; concernant l'asm 68000, mais on va attaquer cela ; autrement, car lire un paquet de données ultra techniques ; sans exemple et tout d'un coup c'est 'infecte'. ; Donc on part sur quelques détails structurels d'un ; programme et après direct les deux pieds dans le ; plat. ; Un prog 68000 a trois parties distinctes, baptisé Section on a : ; la Section text qui est le programme lui meme, ; donc la liste d'instructions. ; la Section data : données initialisés, comme en ; basic a=4 sera donc déclaré en data ; la Section Bss : données non initialisés, ; toute variable qui n'a pas besoin d'avoir ; de valeur spécifique est dans cette partie. ; Exemple : c=0, d=0 ; Petit exemple rassemblant tout cela : SECTION TEXT ; Déclaration de notre section move.l #4,A ; La variable A=4 add.w #2,C ; on add 2 a la variable C ; *************************************** ; pour l'instant ne faites comme si il avait rien ici ; entre les deux rangées d'astérisques move.w #7,-(a7) trap #1 addq.w #2,a7 clr.w -(a7) trap #1 ; Mais ca sera pour plus tard ; *************************************** SECTION Data C: dc.w 4 SECTION Bss A: ds.l 1 END ; Donc, quelque explications, vous voyez clairement les 3 ; sections. Beaucoup d'assembleurs, se passent des déclarations ; de ces sections, mais pour des raisons pratiques, gardez les ; vous comprendrez quand votre programme fera plus de 1000 lignes. ; Donc notre première ligne de code on place la valeur 4 dans A. ; C'est le role du 'move', il copie la premiere valeur dans la seconde. ; le .l indique la taille de la valeur a copier, le .L (signifie long) ; on a trois valeurs possibles : ; b (byte soit l'octet en francais, 256 valeurs possibles) ; w (word soit un mot : 65536 valeurs) ; l (long soit un long : 2^32 valeurs) ; J'ai pris ici le long pour le move pour démo, vu la valeur 4 ; les 3 tailles seraint passés : move.b #4,A, move.w #4,A ; ensuite on a donc un add, qui comme son nom l'indique ; add itionne la première valeur sur la seconde, qui est donc ; notre variable C. Qui est donc initialisé a 4 si vous regardez en ; section Data et vaut donc maintenant 6 !!! ; On va mettre un oeil dans les section data et text. ; en data on a C qui est donc déclaré par dc.w 4 ; le .w signifie word comme pour le move, donc on a un C déclaré ; sur un mot et initialisé a 4. ; Pour pouvez déclarez d'autres variables avec d'autres tailles : ; Tortue_ninja: dc.l 84 ; Templeton_mange_des_pieuvres : dc.b 3 ; En section data les vars seront toujours déclarés par ; nom_var dc.taille valeur ; Va pour la section bss, on a un A déclaré en long (.l) avec un 1 ; ensuite, vu que les variables en BSS ne sont pas initialisés ; ce n'est pas une valeur mais le nombre de long (dans ce cas) ; qu'on veux se reserver : ; Youpi: ds.w 16 ; Permet d'avoir une variable longue de 16 mots (w=word) on va ; pas s'étendre la dessus pour l'instant, mais cela aura une utilité. ; Si vous assemblez ce source (Alt-A) pour ceux qui sont sous Devpac ; et vous le lancez ensuite (Alt-x), vous aurez juste une attente ; d'une touche ce qui est normal, vu qu'il y a aucune sortie quelconque. ; La partie entre astérisques pour l'instant pas expliqué ; est l'attente d'une touche et le quit. ; La seconde partie sera beaucoup plus sympa car vous pourrez ; voir les choses :) ; ; Folco et GT Turbo