Suivez-nous sur X
|
|
|
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
|
|
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
|
|
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
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
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 :
Et maintenant, les quelques étapes pour arriver à un exécutable :
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 :
De plus en plus fort, des boucles structurées :
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.
|
|