Obligement - L'Amiga au maximum

Mardi 23 avril 2024 - 12:52  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in english


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Programmation : Assembleur - les bases
(Article écrit par Jérôme Marchal - septembre 1999)


C'est quoi l'assembleur ?

L'assembleur est le langage de programmation par excellence. Vous connaissez certainement le BASIC. Sur Amiga, les trois BASIC principaux sont : AMOS, Blitz Basic et HiSoft Basic. Quand vous programmez en BASIC, vous utilisez des instructions texte évidentes telles que print (imprimer) qui sont ensuite soit compilées soit interprétées. Le problème est qu'à part les instructions fournies dans le BASIC, vous ne pouvez pas vraiment faire ce que vous voulez.

La programmation en assembleur est totalement différente. Grâce à elle, il vous est possible de faire n'importe quoi. Vous n'utilisez plus que des instructions préfabriquées... Au contraire, vous allez directement taper dans le matériel de l'Amiga pour faire votre programme. On comprend vite pourquoi les programmeurs de démos ont choisi l'assembleur : au lieu d'utiliser de lentes instructions de BASIC, ils peuvent aller bidouiller chaque composante de la carte mère de l'Amiga pour faire de la 3D toujours plus rapide et plus bourrine.

Les registres

Bon, pour coder en assembleur, il faut que vous compreniez bien une chose essentielle. Quoi que vous vouliez faire, vous allez forcément utiliser les registres. D'un côté, on a les registres d'adressages et de l'autre, les registres de données.
----------------------------
Registres         Registres
d'adressage       de données
----------------------------
A(0)              D(0)
A(1)              D(1)
A(2)              D(2)
A(3)              D(3)
A(4)              D(4)
A(5)              D(5)
A(6)              D(6)
----------------------------
1) Les registres d'adressages

Ces derniers servent à stocker des adresses... Sans déconner ? Par exemple, si vous ouvrez une bibliothèque, vous stockez son adresse au hasard en A(6). Les registres d'adresses sont au nombre de 7 à savoir de A(0) a A(6).

2) Les registres de données

Idem que les registres d'adressages : Au nombre de 7 (de D(0) a D(6)), ils servent à stocker des données numériques ou textuelles.

Exemples siou plait m'sieur !

Bon, puisque vous insistez lourdement, je vais vous donner des petits exemples... On ne va pas voir ici un programme complet, mais juste des instructions au hasard pour vous instruire un peu.

Bouge de là...

Bon, je vous ai parlé des registres de données et d'adressages. Maintenant, on va voir comment on peut déplacer le contenu de D(0) en D(4).

move D(0),D(4)

Et ouaip, ce n'est pas plus compliqué que ça. Move est l'instruction qui sert à déplacer et on lui précise ici que c'est le contenu de D(0) qui bouge en D(4). Et si on voulait déplacer le contenu du registre d'adressage A(5) en A(3) ?

move A(5),A(3)

Autrement dit, l'instruction est exactement la même sauf qu'on remplace nos deux registres de données (D(0) et D(4)) par deux registres d'adressages (A(5) et A(3)).

Va voir ailleurs si j'y suis

Bon, si vous voulez vous mettre à l'assembleur, c'est que vous avez sûrement déjà un peu touché au BASIC. En BASIC, on utilise une instruction toute bête pour aller à un endroit du programme : GOSUB. En assembleur, cette instruction existe aussi mais ne possède pas le nom, c'est JSR. De la même manière que le BASIC, on place des étiquettes dans le code et on peut s'y rendre quand on veut. Aller, trève de blabla, un exemple :

-Rulez
JSR   -AcidOZine
move  d(1),d(4)
-AcidOZine
JSR   -Rulez

Bon, dans l'exemple à la con que je viens de faire, on utilise deux instructions différentes : move dx,dx que l'on a vu précédemment et JSR -XXX que l'on est en train de voir. A savoir que JSR, c'est les initiales de "Jump to Sub Routine" qui veut dire saute à la sous-routine dont le nom est placé juste après JSR.

Pour en venir à ce petit programme : la première ligne est une étiquette. La deuxième ligne dit à l'ordinateur de sauter à la sous-routine -AcidOZine. La troisième ligne déplace le contenu de d(1) en d(4). La quatrième est l'étiquette -AcidOZine et la cinquième dit de sauter à l'étiquette -Rulez. Donc, dans le concret, l'ordinateur passe la première ligne puis en obéissant aux ordres de JSR, saute à l'étiquette -AcidOZine. Arrivé là, il rencontre une autre instruction JSR qui lui dit d'aller à l'étiquette -Rulez et il recommence à l'infinie sans jamais s'arrêter... Et notre instruction move, là dedans, elle sert à quoi ? Eh bien à rien puisque l'on saute par dessus, mais ça faisait plus "style" avec move entre les deux.
INSTRUCTIONS      ÇA SERT A QUOI
------------------------------------------
ADD               Addition
ADDA              Addition avec résultat
                  Stocke en aX
AND               Et logique
SUB               Soustraction
JSR               Saut à une sous-routine
MOVE              Déplacer
MOVEQ             Déplacer vite
OR                Ou
TST               Test
------------------------------------------
Conclusion

Bon, je vais m'arrêter là pour cet article-ci. En attendant, mattez les deux tableaux et essayer de bien cogiter tout ça pour la prochaine fois... car les choses sérieuses vont bientôt commencer !


[Retour en haut] / [Retour aux articles]


Soutenez le travail d'Obligement