Obligement - L'Amiga au maximum

Samedi 20 avril 2024 - 04:50  

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

 


Test d'EZAsm
(Article écrit par Cédric Beust et extrait d'Amiga News - juillet 1991)


EZAsm : l'assembleur facile

EZAsm est un programme original qui aidera très probablement beaucoup de nouveaux programmeurs à se mettre à l'assembleur. Le 68000 a beau être un assembleur très évolué, il peut rebuter qui a toujours programmé en programme impératif (C, Pascal, Modula-2, etc.) par la surcharge de lignes de codes qu'il impose pour les diverses initialisations et autres boucles.

EZAsm se propose d'alléger la tâche du programmeur du mieux qu'il peut de façon à ce que celui-ci ait le moins de soucis possible et qu'il puisse se concentrer sur l'essentiel du code. Il s'agit en fait d'un préprocesseur. Un préprocesseur, je le rappelle pour ceux qui auraient oublié le cours magistral de mon éminent collègue Batchman à ce sujet, est un programme qui prend un fichier texte et le transforme en y opérant des substitutions. Ici, EZAsm accepte un fichier texte correspondant à un source assembleur à son format et produit ensuite un véritable fichier texte (.asm) que vous pouvez alors donner en pâture à votre assembleur préféré.

Listing

Un listing valant mieux qu'un grand discours, je vous livre rapidement un exemple de fichier avant de décrire plus profondément la syntaxe d'EZAsm. Il s'agit du fameux "Hello World" que ma mégalomanie latente m'a poussé à modifier quelque peu. Voici donc le source EZAsm :

EZAsm

Et maintenant, les quelques étapes pour arriver à un exécutable :

EZAsm

Ce n'est pas plus difficile que ça. Remarquez au passage que j'ai ici utilisé l'assembleur Devpac 2 mais n'importe quel assembleur serait en mesure d'assembler le texte produit pas EZAsm.

Facilités syntaxiques

Venons-en maintenant aux facilités syntaxiques offertes par EZAsm. Comme vous pouvez le constater sur le listing, EZAsm permet de déclarer très simplement des variables locales (_DosBase dans l'exemple). Pour être plus technique, il s'agit de véritables variables locales car celles-ci sont allouées via link/unlk. Mais peu importe, c'est fait automatiquement par EZAsm.

Ensuite, vous n'avez plus à vous préoccuper des syntaxes d'appel des routines des bibliothèques de l'Amiga. Les macros offertes par tous les assembleurs vous dispensaient déjà de retenir les décalages par coeur en utilisant des "jsr LVOOpenLibrary" mais en plus, là, vous n'avez même plus à vous préoccuper des registres à utiliser. EZAsm connaît tout ça par coeur et utilise les registres appropriés pendant son travail. Les habitués apprécieront le confort que cela apporte (sans parler des innombrables gourous causés par une utilisation des mauvais registres...).

Vous aurez probablement remarqué les espaces insérés pour les appels des fonctions (exemple : OpenLibrary( #dosname 0 )). Ils sont indispensables afin que EZAsm puisse distinguer les instructions qu'il doit réécrire de celles qu'il ne doit pas toucher. Car naturellement, vous pouvez insérer des véritables instructions 68000 partout où vous le voulez.

Mais ce n'est pas tout ! EZAsm vous permet d'écrire très rapidement des initialisations, des affectations et des boucles avec une syntaxe proche du C. Exemples rapides :

EZAsm

De plus en plus fort, des boucles structurées :

EZAsm

Traduction rapide de ce fragment de code : si le bit 5 de d1 est à 1, on effectue tout ce qui est entre {}. A l'intérieur, si d2 > d3, on affecte DispMem à d2 et sinon on incrémente d2 de 50.

Bilan

Comme vous pouvez le constater, EZAsm peut faire gagner un temps extrêmement précieux sur beaucoup de points, et je n'évoque bien entendu pas toutes ses possibilités. De plus, le code produit est, dixit l'auteur, le plus optimisé qui soit et il affirme que le programmeur n'aurait pas pu en écrire de plus compact...

Récrire un programme C en assembleur avec EZAsm devient une partie de plaisir. De plus, ce genre de code peut typiquement être celui produit par un compilateur pour faire gagner du temps, et le faire passer ensuite par EZAsm puis un assembleur.

EZAsm est livré avec deux logiciels du domaine public qui vous permettront de produire des exécutables : A68K et blink. Ceci au cas où vous ne disposeriez pas déjà de votre propre assembleur. Bref, un programme petit (24 ko) mais qui possède un potentiel immense.

Nom : EZAsm.
Développeur : Joe Siebenmann.
Genre : logiciel de programmation.
Date : 1991.
Configuration minimale : Amiga OCS, 68000, 512 ko de mémoire.
Licence : gratuiciel.
Téléchargement : Fish 431.


[Retour en haut] / [Retour aux articles]