asMSX v0.12g asMSX Cross-assembleur pour MSX v.0.12g - Edition 2007 - [18 Mars

asMSX v0.12g asMSX Cross-assembleur pour MSX v.0.12g - Edition 2007 - [18 Mars 2007] Traduit de l'espagnol par Granced 1 asMSX v0.12g Index 1 Introduction......................................................................................................................................3 1.1 Description................................................................................................................................3 1.2 Caractéristiques.........................................................................................................................4 1.3 Justification...............................................................................................................................4 1.4 Syntaxe......................................................................................................................................5 1.5 Utilisation..................................................................................................................................5 2 Langage assembleur.........................................................................................................................5 2.1 Syntaxe du langage...................................................................................................................5 2.2 Etiquettes..................................................................................................................................6 2.3 Expressions numériques...........................................................................................................7 2.3.1 Formats numériques..........................................................................................................7 2.3.2 Opérateurs.........................................................................................................................8 2.4 Introduction de données............................................................................................................9 2.5 Directives................................................................................................................................10 2.6 Commentaires.........................................................................................................................15 2.7 Assemblage conditionnel........................................................................................................15 3 Autres outils....................................................................................................................................17 3.1 RLEpack.................................................................................................................................17 3.2 binDB......................................................................................................................................19 3.3 PCX2MSX..............................................................................................................................20 4 Codes source...................................................................................................................................21 4.1 Classic Pong v.0.15.................................................................................................................21 4.2 Classic Minesweeper v.0.10....................................................................................................21 4.3 Autres exemples......................................................................................................................22 4.4 Plus d'exemples.......................................................................................................................23 5 Renseignements supplémentaires sur asMSX................................................................................23 5.1 Nouveautés de la version 0.12g..............................................................................................23 5.2 Nouveautés de la version 0.12f...............................................................................................23 5.3 Nouveautés de la version 0.12e..............................................................................................23 5.4 Nouveautés de la version 0.11................................................................................................24 5.5 Nouveautés de la version 0.10................................................................................................24 5.6 Licence d'utilisation................................................................................................................24 5.7 Mentions légales.....................................................................................................................24 6 Ressources disponibles...................................................................................................................25 6.1 Sites web intéressants.............................................................................................................25 6.2 Autres ressources sur Internet.................................................................................................25 6.3 Bibliographie recommandée...................................................................................................26 6.4 Autres assembleurs.................................................................................................................27 6.5 Conseil gratuit.........................................................................................................................27 7 Distribution.....................................................................................................................................28 2 asMSX v0.12g 1 Introduction 1.1 Description asMSX est un assembleur pour le processeur Z80 qui intègre un certain nombre de caractéristiques qui facilitent la tâche de programmation sur MSX. Il s'agit d'un cross- assembleur qui fonctionne sur PC via un système coopératif avec Windows. Grâce à la vitesse des ordinateurs actuels, l'assemblage est quasi-instantané, ce qui est un avantage considérable en comparaison avec les assembleurs natifs sur MSX. De même, il n'y a aucune restriction sur la taille du code source, et celui-ci peut être édité avec n'importe quel éditeur de texte. La première version de asMSX (v.0.01) a été publiée en 2000, et n'était alors qu'une esquisse de ce qu'est dorénavant asMSX. Les erreurs de cette première version ont été corrigées, certains éléments ont été développés et des caractéristiques plus avancées mises en place. 1.2 Caractéristiques Voici une liste de quelques caractéristiques à souligner : – supporte toutes les instructions officielles du Z80 avec la syntaxe de Zilog – assemble toutes les instructions non-officielles documentées par Sean Young – comprend la syntaxe de la norme Z80 (accumulateur implicite) – compatible avec différents systèmes de numération (décimal, hexadécimal, octal et binaire) – opérations arithmétiques et logiques, y compris au niveau des codes source – prise en charge des nombres décimaux à virgule flottante, converti en virgule fixe – fonctions mathématiques réelles : trigonométriques, puissances, etc – accepte de multiples fichiers via des inclusions – inclusion de tout ou partie de ces fichiers binaires – étiquettes locales ou générales pour le code source – routines du Bios du MSX prédéfinies avec leur nom officiel – génération automatisée de fichiers binaires chargeables depuis le Basic – production automatisée de fichiers ROM – supporte 4 types distincts de megaROM : Konami, Konami SCC, ASCII 8 bits et 16 bits – utilisation de variables numériques à l'intérieur de l'assembleur – assemblage de fichiers COM (pour MSX-DOS) – export de la table des symboles – impression de textes indicatifs depuis le code – intégration avec le débogueur de BlueMSX – amélioration de l'assemblage conditionnel – génération de fichiers CAS ou WAV chargeables sur le MSX 3 asMSX v0.12g 1.3 Justification Y a t-il vraiment besoin d'un autre assembleur pour Z80 ? Probablement pas. Les annexes comprennent une liste d'assembleurs pour MSX, tant cross-assembleurs qu'assembleurs natifs, ainsi que leur disponibilité. Parmi eux, il existe d'excellents outils de développement qui ont été utilisés par de nombreux programmeurs. Le but d'asMSX est de fournir un ensemble avec le support complet des instructions du Z80, souple et confortable, fiable et largement orienté sur le développement de logiciels pour MSX. Ces objectifs sont atteints par la version actuelle. Cet assembleur est le plus commode pour le développement de ROMS et de mégaROMS MSX. Le résultat est une application créée via console de Windows, à partir de 32 Ko de taille et assemblée à très grande vitesse. 1.4 Syntaxe L'implémentation du langage assembleur pour le processeur Z80 qu'utilise asMSX diverge en certains aspects de la syntaxe officielle de Zilog. La différence majeure étant que les adressages indirects se font en utilisant les crochets [ ], et non pas les parenthèses ( ). La raison de ce changement apparaît évidente au vu du puissant langage mathématique qu'intègre asMSX, qui permet des calculs très complexes, les parenthèses sont ainsi utilisées dans les formules numériques. 1.5 Utilisation Il s'agit d'une application console pour Windows, ce qui signifie que la manière la plus commode de l'utiliser est à partir de l'invite de commandes de Windows ou de MS-DOS. Pour assembler un fichier, vous avez juste à taper ceci : asMSX fichier.txt Si l'extension n'est pas précisée, l'extension .asm sera prise par défaut. Les fichiers du code source devront être des fichiers textes dans formatage, codés en ASCII 8 bits. Il est également possible d'assembler le code source en faisant glisser l'icône du fichier contenant le programme sur l'icône d'asMSX, mais ce n'est pas recommandé. Les noms Wiindows ne peuvent plus fonctionner correctement, ce qui laisse suggérer que les points autres que celui qui indique le début de l'extension ne sont pas reconnus. Au cours de l'assemblage, une série de messages apparaîtra, et s'il n'y a aucune erreur dans le code, une série de fichiers sera générée : – fichier.sym : un fichier texte en mode ASCII qui contient tous les symboles définis dans le programme et sa valeur en décimal. Ce fichier est compatible avec l'émulateur BlueMSX, dont le débogueur permet de télécharger la table des symboles externes afin de faciliter le débogage. – fichier.txt : un autre fichier texte en mode ASCII avec les impressions que l'on désire faire depuis le programme. S'il n'est pas utilisé avec une instruction de type PRINT, il ne sera pas généré. – fichier[.z80/.bin/.com/.rom] : le résultat de l'assemblage est enregistré avec le même nom que le fichier d'entrée, l'extension est déterminée par les directives d'assemblage du code source. Ainsi, l'extension Z80 est pour le code sans entête, BIN est pour les fichiers binaires à utiliser à partir du MSX-Basic avec Bload, COM pour les exécutables sous MSX- DOS, et ROM pour les ROMs et mégaROMs MSX. 4 asMSX v0.12g 2 Langage assembleur 2.1 Syntaxe du langage Le format de ligne de code qu'accepte asMSX est le suivant : [étiquette:] [directive[paramètres]] [;commentaire] [étiquette:] [code opération[paramètres]] [;commentaire] Chacun de ces blocs est optionnel et sera expliqué plus en détail dans les paragraphes suivants. Il n'y a pas de limitation en ce qui concerne les longueurs de lignes, les espaces ou tabulations, car le préprocesseur s'occupe d'ajuster ces éléments. Exemple: boucle: ld a,[0ffffh] ; lit le registre maître points: db 20,30,40,50 ; table des points Org 08000h; positionne le début du code en page 2 Nop 2.2 Etiquettes Les étiquettes sont un moyen d'identifier une certaine position en mémoire. En réalité, cela revient à donner un nom à une valeur 16 bits. Leurs noms peuvent être alphanumériques, mais le premier caractère doit être une lettre ou le caractère « _ » (underscore). Pour être défini comme une étiquette, le nom doit être suivi des deux points (« : »). Attention toutefois, les majuscules et minuscules sont distinguées, ce qui signifie que etiquette: ETIQUETTE: ou EtIqUeTtE: ne sont pas identiques ! Exemple: etiquette: ETIQUETTE: _alphanumerique: boucle001: 5 asMSX v0.12g Les deux points servent pour la définition de l'étiquette dont la valeur est égale à la position de mémoire occupée par l'instruction suivante. Pour utiliser l'étiquette, il faut la référencer sans inclure les deux points. En outre, il est possible de définir des étiquettes locales, en les précédent de @@. La particularité de ces étiquettes est qu'elles ne sont disponibles qu'entre une étiquette globale et une autre. Par conséquent, un code comme celui-ci est tout à fait utilisable : ROUTINE1: ... @@BOUCLE: ... ROUTINE2: ... @@BOUCLE: ... 2.3 Expressions numériques Les expressions numériques peuvent être des nombres ou bien le résultat d'opérations plus ou moins complexes avec ces nombres. 2.3.1 Formats numériques En ce qui concerne les systèmes de numérations compatibles, la liste suivante donne la bonne syntaxe et quelques exemples : – DECIMAL : les nombres en base 10 se représentent normalement, comme un groupe d'un ou plusieurs chiffres. La seule restriction est qu'il ne faut pas placer de 0 à la gauche du nombre, de façon identique à lorsque l'on écrit Exemples : 0 10 25 1 255 2048 – DECIMAL NON ENTIER : représentés comme les décimaux entiers, mais avec l'emploi du point pour séparer la partie entière de la partie décimale. Il est nécessaire que ce soit le point qui soit employé, dans le cas contraire, ce serait interprété comme un entier. Exemples : 3.14 1.25 0.0 32768.0 -0.50 15.2 – OCTAL : les nombres en base 8 peuvent être représentés de 2 façons : la première est le format utilisé dans les langages C, C++ et Java pour l'indiquer, soit précéder d'un 0 toute la suite de chiffres octaux (0 à 7). La deuxième façon est celle utilisée habituellement par les langages d'assemblage, soit faire suivre le groupe de chiffres par la lettre o, en majuscules ou minuscules. L'octal a été inclus pour la uploads/S4/ asmsx-cross-assembleur-pour-msx-v0-12g-2007-03-18-tr-fr-granced.pdf

  • 16
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Dec 01, 2021
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 0.2791MB