Obligement - L'Amiga au maximum

Dimanche 25 juin 2017 - 00:38  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

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

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


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


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


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Soutien

N'hésitez pas à soutenir le projet Obligement



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 offsets 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 : freeware.
Téléchargement : Fish 431.


[Retour en haut] / [Retour aux articles]