lequel je me lance sans protection et sans filet, seul
un 'Cerebral' pouvait se lancé la dedans !

Pourquoi je fais cela, pour essayez de convaincre des
personnes d'abandonné leur R4 pour la rolls des langages baptisé :
L'Assembleur.
L'Assembleur c'est long, c'est lourd, c'est un langage de fou.
Qui a osé dire cela ? Si je l'attrapes je lui mets une tentacule dans
sa face !!!
Qu'est ce que l'assembleur ? L'assembleur est le seul langage qui
vous permet de tout faire sur une machine, j'ai bien dit tout !!
N'oublies jamais une chose, quelque soit le langage que vous
utilisez a la fin cela se fini toujours par de l'assembleur !!
Et oui un prog c compil‚ cela se fini par de l'asm, un prog Gfa compil‚
meme sort !!!!
Donc pourquoi se prendre la tete a faire de l'asm si on y arrive a
travers d'autre langage ? Pour se passez des intermédiaires !! C'est
comme un produit, fabriqué par une boutique, vendu a des grossistes puis
distribué par des détaillants, petit prix au départ et gros prix a
l'arrivée !! C'est pareil pour la vitesse et la taille des autres langages
cela grossit a vue d'oeil !!!
Pour n'importe quel prog ou morceau de prog asm, c'est possible de
détérminé la vitesse a 500 nanosecondes prèt (Pour un STE a 8 Mhz),
vous y arrivez avec un autre langage sans vous arraché les cheveux ?
Cela n'est pas très interressant comme argument donc passons au
'chose vrais !'
L'assembleur c'est super prise de tête, je vais etre franc, pour certains
trucs c'est sur ce n'est pas cadeau, mais c'est toujours possible d'arrangé
la chose. On va passé a des exemples, attaquons !!
En gfa pour affecté 4 a A :
A&=4
en asm :
move.w #4,A
c'est simple non ? le move permet de transféré la valeur 4 dans A, c'est bete !!
le .w signifie word (la meme chose que le & du Gfa) soit une valeur sur 2
octets (valeur comprise entre 0 et 65535). C'est si dur que cela ?
vous voulez additionné 1 sur A :
en Gfa :
a&=a&+1 ou add a&,1 (ou l'inverse add a&,1 je me souviens plus de la syntaxe !)
en asm :
add.w #1,A
C'est vraiment si dur que cela l'asm ? le .w signifie pareil que pour
le move, on veut additionné sur un mot (word dans la langue de Shakespeare !)
L'asm est un cadeau pour les opérations simples, mais plus m..... pour
les opérations complexes. Par exemple pour affiché un texte en gfa un
bon 'print' suffit en asm bonjour le cadeau, parce qu'il n'existe pas
de print tout fait !! QUOI ? Et oui le print est une fonction du
systeme d'exploitation, en asm cela donne :
move.l #Mon_texte,-(a7)
move.w #9,-(a7)
trap #1
addq.w #4,a7
Et oui cela commence a devenir 'vachement' moins facile. Pour une personne
non initié au joie de la glisse sur un 68000, c'est normal, après un peu
de 'jeu' avec un tel microprocesseur et les lignes du dessus seront comme
un dragibus pour Vince, un apéritif !!!
Deux choses sont particulières a l'asm. Les registres et les modes
d'adressages.
Qu'est ce qu'un registre, un registre est une sorte de variables internes
au microprocesseur. Leurs avantages ? La vitesse et leur flexibilit‚.
Exemple :
add.w #1,d0
d0 est un registre du 68000. Cela fait exactement pareil qu'avec A mais
en plus rapide.
Leur flexibilité, en Gfa une variable sur une octet (byte, 1 octet) se déclare
avec un | après la variable une variable sur un mot (word, 2 octets) avec un &
et une variable sur un mot long (long, sur 4 octets) avec un % ben en asm nous
avons les meme trucs marrants :
a|=a|+1 ==> add.b #1,d0 (.b=byte)
a&=a&+1 ==> add.w #1,d0 (.w=word)
a%=a%+1 ==> add.l #1,d0 (.l=long)
voila un registre s'utilise dans les trois tailles sans soucis et cela va
vite, très vite !!
Les modes d'adressage c'est un peu compliqué mais cela vous simplifie la vie
a un codeur.
Et zoum, une incursion dans le monde, des excités du code. En esperant vous
avoir apporté une autre vision de ce monde a part qu'est l'Assembleur.
GT Turbo (C.V.S.D.)
