La version avec les accents et les couleurs qui vont bien :; 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

—
Zeroblog —
« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » —
Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » —
GT Turbo