Bon, here we are, 48 heures plus tard, une petite procédure pour programmer facilement sous un Linux 64 bits en NASM.
Pourquoi tant de temps ? Parce que :
-
plus personne ne fait ça
-
la moitié des pages web traitant de ce sujet ne répondent plus
-
parce que quand même, si GDB était encore compatible avec NASM, ça aurait été trop simple
-
Il a d’abord fallu attendre que Visual C++ se lance, plante et s’arrête, accompagné de 2 redémarrages de Windows intrusifs :trollface:
Commençons par installer les dépendances (procédure pour Debian ici) :
# apt install nasm gdb
Maintenant je vous propose de vous baser sur ce programme exemple que j’ai adapté (de la documentation officielle qui date de 1997 quand même !).
Une fois copié dans un fichier :
$ nasm -f elf64 -g helloWorld.asm
$ ld -m elf_x86_64 -g -o helloWorld helloWorld.o
$ ./helloWorld
… et si vous désirez debugger votre code :
$ gdb ./helloWorld
Un autre moyen pour vous serez de passer par un IDE développé de façon indépendante, SASM.
Pour l’utiliser, rendez-vous sur cette page et téléchargez-y l’archive qui correspond à votre système.
Une fois installé, récupérez mon fichier de configuration ci-dessous, et copiez-le dans votre ~/.config/SASM\ Project/SASM.conf
:
Procédure de test : créez un nouveau projet et collez-y ce même programme dans l’éditeur de SASM, puis lancez une exécution et un debuggage afin de vérifier que les opérations fonctionnent !