Bonjour à tous,
Je me demandais ce qu'il était possible de faire avec nasm... Est-ce qu'on peut tout faire ? Même une interface graphique ?
Bonjour à tous,
Je me demandais ce qu'il était possible de faire avec nasm... Est-ce qu'on peut tout faire ? Même une interface graphique ?
Aucun de nous n'est seul, Même l'air que nous expirons est inspirés par d'autres...
Bonsoir,
NASM est un assembleur. C'est donc un compilateur qui te permet d'écrire des programmes en langage machine, c'est-à-dire en utilisant directement le jeu d'instructions du micro-processeur.
Tu peux donc — en théorie — faire absolument tout ce que tu peux faire avec les autres langages puisque ceux-ci débouchent forcément, tôt ou tard, sur une routine qui sera exécutée par le micro-processeur, soit parce qu'ils l'ont générée eux-mêmes (cas des compilateurs C, qui produisent en interne du code assembleur avec lequel on produira l'exécutable final), soit en appelant des routines déjà écrites à l'avance. En pratique, bien sûr, ça va être très compliqué puisque les systèmes d'exploitation modernes et les bibliothèques associées sont surtout étudiées pour être appelés depuis des langages de plus haut niveau et qu'à dire vrai, c'est précisément pour s'affranchir de toutes ces besognes que l'on a développé des langages de plus haut niveau.
Tu peux créer une interface graphique à partir de rien en assembleur. Ça va te demander des années à mettre en place mais ça se faisait relativement couramment sur les anciennes machines, depuis les les 8 bits jusqu'aux PC y compris en 32 bits tant que D.O.S. régnait dessus.
Si tu veux écrire un programme fenêtré, il faut initialiser l'interface tel que tu le ferais en langage C par exemple. Sous MASM, il existe la macro INVOKE qui sert à appeler facilement des fonctions en remplissant la pile comme elle doit l'être.
Salut,
Tout programme écrit dans langage haut niveau (JAVA, C++,..) doit être transformé (compilé) en un code assembleur (code cible) avant d'être assemblé et lié (édition de liens). La tâche de compilation est divisée en plusieurs phases ! Don, théoriquement vous pouvez faire tout en assembleur (INTEL ou AT&T).
Mais pratiquement ça dépend des fonctionnalités de l'outil que vous utilisez, c-à-d le programme assembleur ( qui est NASM dans votre cas).
Mais je pense qu'il est mieux d'utiliser le langage C car c'est un langage dit intermédiaire, c-à-d ni bas niveau (comme l'assembleur) ni haut niveau. De plus vous pouvez dans un code C invoquer de l'assembleur soit en faisant appel à des fonction assembleurs ou en utilisant le inline assembler. La plus part des bibliothèques et des programmes sont écrit en langage C comme le noyau Linux et la bibliothèque SDL !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager