Asm8086
Asm8086 vous permet d'assembler et d'exécuter simplement des programmes écrits en assembleur 8086. De plus, asm8086 définit quelques routines d'affichage et de lecture.
Installation
Windows
Pour pouvoir exécuter les codes, asm8086 nécessite l'installation de MinGW.
Pour cela, suivez ce lien, téléchargez le fichier mingw-get-setup.exe
et exécutez le.
Il vous faudra aussi ajouter les répertoires <dossier-d'installation>\bin\
et <dossier-d'installation>\msys\1.0\bin\
à la variable d'environnement PATH
.
Si l'installation de MinGW c'est bien passée, vous devriez être capable de lancer un terminal comme ceci :
- Appuyez sur
touche Windows
+R
- Entrez
sh <Enter>
Asm8086 utilise The Netwide Assembler (NASM) pour assembler les codes.
Vous pouvez trouver ici le fichier d'installation nasm-2.12.01-installer-x64.exe
.
Il vous faudra aussi ajouter le répertoire d'installation à la variable d'environnement PATH
.
Si l'installation de NASM c'est bien passée, ceci ne devrait pas afficher de message d'erreur :
- Appuyez sur
touche Windows
+R
- Entrez
nasm <Enter>
Lorsque MinGW et NASM sont correctement installés, téléchargez asm8086 ici. Unzippez le fichier téléchargé. Vous pouvez maintenant utiliser asm8086 comme décrit dans la section Utilisation.
Linux
Asm8086 utilise The Netwide Assembler (NASM) pour assembler les codes.
Un package nasm
est disponible dans la plupart des distributions.
Installez NASM et vérifiez que l'exécutable nasm
est dans votre PATH
.
- Téléchargez le code source :
git clone https://github.com/LDelhez/asm8086.git
- Compilez :
make
Vous pouvez maintenant utiliser asm8086 comme décrit dans la section Utilisation.
Mac OS
Asm8086 utilise The Netwide Assembler (NASM) pour assembler les codes.
Les fichiers d'installation sont disponibles ici.
Installez NASM et vérifiez que l'exécutable nasm
est dans votre PATH
.
Pour utiliser asm8086 sur un Mac, vous devez compiler le code sur votre machine.
Pour cela, téléchargez le code source ici.
Décompressez l'archive, lancez un terminal et pacez vous dans le répertoire asm8086/
.
Utilisez ensuite la commande make
pour compiler.
Vous pouvez maintenant utiliser asm8086 comme décrit dans la section Utilisation.
Utilisation
Pour assembler et exécuter, placez votre fichier assembleur dans le dossier workspace/
.
Ce code doit contenir un label main
qui détermine le point d'entrée.
Lancez ensuite un terminal, placez vous dans le répertoire workspace
(cd <chemin-vers-asm8086>/workspace/
) et utilisez la commande suivante :
./run <fichier-assembleur.asm>
Exemple
Par exemple, pour faire un programme qui calule la somme de 0x29 et de 0x19 :
- Créez un fichier
somme.asm
dans le dossierworkspace/
- Copiez le code disponible ici dans
somme.asm
. - Lancez un terminal
- Placez vous dans le répertoire
workspace/
(aveccd
etls
) - Exécutez
./run somme.asm
(rien ne se passe car le programme n'affiche rien à l'écran)
I/O
Asm8086 défit un ensemble de routines d'entrée/sortie pour rendre les programmes interactifs.
Voici la liste des routines disponibles (exemples dans le dossier workspace/test/
) :
call print_bl_hex
: affiche le contenu debl
sous forme hexadécimale.call print_al_hex
: affiche le contenu deal
sous forme hexadécimale.call print_bx_hex
: affiche le contenu debx
sous forme hexadécimale.call print_ax_hex
: affiche le contenu deax
sous forme hexadécimale.call print_bl_char
: affiche le contenu debl
comme caractère ASCII.call print_al_char
: affiche le contenu deal
comme caractère ASCII.call print_bl_uint
: affiche le contenu debl
sous forme décimale comme nombre entier non signé.call print_bx_uint
: affiche le contenu debx
sous forme décimale comme nombre entier non signé.call print_bx_str
: affiche la chaine de caractères (terminée par0x00
) à l'adressebx
.call read_al_hex
: place dansal
le nombre entré sous forme hexadécimale par l'utilisateur.call read_bl_hex
: place dansbl
le nombre entré sous forme hexadécimale par l'utilisateur.call read_ax_hex
: place dansax
le nombre entré sous forme hexadécimale par l'utilisateur.call read_bx_hex
: place dansbx
le nombre entré sous forme hexadécimale par l'utilisateur.