Obligement - L'Amiga au maximum

Samedi 20 avril 2024 - 15:01  

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 - modes d'adressage indexés
(Article écrit par Little Zeus et extrait d'A-News (Amiga News) - janvier 1989)


Chers Amiga-beginners, j'ai deux nouvelles à vous annoncer, une bonne et une mauvaise.

La bonne : voici le temps pour vous de devenir des Amiga-Users ; après les modes d'adressage absolus et immédiats, nous voyons maintenant les différents modes d'adressage indexés. Nous illustrerons ce mode par une petite routine qui aura pour but de retourner une image ou autrement dit, de produire un effet de miroir.

La mauvaise nouvelle : Little Zeus a le regret d'informer ses chers lecteurs de son départ, mais celui-ci n'est pas définitif. Pour l'instant, je suis encore là, donc commençons.

Mode d'adressage indirect

Le mode d'adressage indirect peut se trouver sous trois formes : la première consiste à prendre le contenu du contenu d'un registre d'adresse pour le mettre dans une case mémoire ; le second consiste à mettre une valeur dans le contenu du contenu du registre d'adresse ; enfin, le troisième combine les deux précédents et met le contenu du contenu d'un registre d'adresse dans le contenu du contenu d'un autre.

Tout ceci doit paraître un peu vague ; pour remédier à cela, appuyons-nous sur un exemple : Move.l #10,a0 Move.l #20,(a0). Première chose à remarquer, le mode d'adressage indirect se reconnaît par les deux parenthèses qui sont placées de part et d'autre du registre d'adresse concerné. Deuxième chose, la séquence précédente est équivalente à Move.l #20,10. Mais alors, pourquoi utiliser un mode d'adressage qui nécessite deux fois plus de lignes qu'un autre ? La réponse émergera lorsque nous étudierons la routine qui renverse les images.

Un deuxième exemple : Move.l #5,10 Move.l #10,a0 Move.l #20,a1 Move.l(a0),(a1) est équivalent à Move.l #5,20.

Les options du mode d'adressage indirect

Le mode d'adressage indirect possède différentes options ; nous en verrons trois : l'indirect postincrémenté, l'indirect prédécrémenté et enfin l'indirect avec déplacement.

Les deux premiers modes sont très utiles dans des boucles, le postincrémenté incrémente, comme son nom l'indique, le contenu du registre après avoir fait le transfert : Move.l #10,(a0)+ est équivalent à Move.l #10,(a0) Add.l #4,a0. Attention, Move.w #10,(a0)+ est équivalent à Move.w #10,(a0) add.l #2,a0. Nous noterons par conséquent que la postincrémentation est fonction de la longueur de l'adressage utilise (octet, mot ou long mot).

Le principe de la prédécrémentation est assez similaire sauf qu'au lieu d'incrémenter on décrémente et cette decrémentation se fait avant le transfert. Un exemple : Move.l #10,-(a0) est équivalent à Sub.l #4,a0 Move.l #10,(a0).

Enfin, l'adressage avec déplacement ajoute une valeur au contenu du registre d'adresse (des exemples sont donnés dans la routine ci-dessous).

La routine

Passons à la routine proprement dite, son principe est le suivant : nous allons successivement prendre mot par mot les données d'une image chargée en mémoire à partir de l'adresse "picdata", ensuite, nous les mettrons successivement dans les plans de bits, et ce ligne par ligne. Il apparaît donc évident que nous allons devoir prendre les plans de bits à l'envers, C'est-à-dire de l'adresse de poids le plus fort à l'adresse de poids le plus faible.

Assembleur

Nous allons maintenant utiliser à la fois les modes d'adressage indirects indexés avec postincrémentation et déplacement. On utilise le premier pour pointer automatiquement sur le mot suivant et le second à cause de la structure de l'image IFF qui fait se succéder 40 mots du plan de bits 1, 40 mots du plan de bits 2 et ainsi de suite (pour plus d'informations, rapportez-vous à l'article sur l'image IFF).

Assembleur

Pour rendre cette routine opérationnelle, il suffit de substituer la routine précédente aux lignes qui affichent l'image normalement (prenons par exemple la routine dans l'article sur l'image IFF et modifions-là comme précédemment dit !).

Ainsi s'achève cet article tout particulièrement consacré aux débutants. Maintenant, vous, ex-débutants vous êtes en mesure de reprendre les routines des numéros précédents et de les comprendre mieux, voire complètement !


[Retour en haut] / [Retour aux articles]