Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Bêta OFF] Apprenez à Programmer en Assembleur !

Dans la catégorie "Cours" par Ictus

3 février 2012 à 16:45:03

Je suppose que tu écris ton programme en assembleur en utilisant un éditeur de textes, ensuite tu tapes dans une console une commande pour compiler le fichier texte et fabriquer un exécutable windows. Quelle est cette commande ? Est-ce que tu fais directement des mov dans la mémoire écran pour afficher les résultats ? Comment gères-tu le clavier ? Avec un in al, 60 par exemple ? On peut aussi utiliser les interruptions dos.
  • Partager sur Facebook
  • Partager sur Twitter
Pour voir mon tuto sur l'assembleur cliquer ici. (en travaux et pour un certain temps !)
3 février 2012 à 20:37:20

Oui, je tape dans un editeur style n++ ou ultra edit. (et je ne compile pas à la main ;) )
Les interruptions dos ont l'avantage de pouvoir par exemple affiche une ligne, alors que les interruptions buis ne permettent qu'afficher une lettre à la fois (ce qui implique l'utilisation d'une pseudo boucle).

Mais l'avantage des interruptions bois, c'est qu'elles sont portables sur tous les os du moment que le pc a une architecture semblable.

Pour le clavier, plusieurs solutions existent, je t'invite à lire cet article de Wikipédia assez pertinent (Ctrl + F pour chercher "clavier"):
http://fr.m.wikipedia.org/wiki/Assembleur

Pour la compilation, ça dépend de si tu utilises un makefile etc...
Je te propose de lire la documentation de nasm pour plus d'infos:
www.nasm.us/xdoc/2.10rc8/html/nasmdoc0.html
  • Partager sur Facebook
  • Partager sur Twitter
4 février 2012 à 11:10:23

Merci mais je connaissais déjà ces 2 liens. Je n'ai pas réussi à compiler sous windows parce que je n'ai pas réussi à installer DJGPP. Le compilateur C utilisé par CodeBlocks ne semble pas compatible avec NASM, en tous les cas les tests que j'ai fait ont tous échoué pour l'instant.
  • Partager sur Facebook
  • Partager sur Twitter
Pour voir mon tuto sur l'assembleur cliquer ici. (en travaux et pour un certain temps !)
4 février 2012 à 21:54:33

Ton tuto, tu veux qu'on apprenne l'asm ? Non ?
Dan ce cas, le couple n++/ultraedit et nasm en ligne de commande me semble très bien !
  • Partager sur Facebook
  • Partager sur Twitter
6 février 2012 à 0:10:29

Tu peux m'ajouter à la rédaction, si tu veux, dans ce cas, je t'aide à rédiger le tutoriel et je fais la partie sur la compilation sur Windows.
  • Partager sur Facebook
  • Partager sur Twitter
6 février 2012 à 11:15:33

Citation : Le solutionneur

Dan ce cas, le couple n++/ultraedit et nasm en ligne de commande me semble très bien !


Ce n'est pas la méthode que j'ai choisi d'utiliser car cela revient à refaire la fonction printf qui est très puissante. Avec NASM je crée un fichier objet ensuite j'utilise le compilateur C qui va savoir intégrer les fonctions que j'utilise. C'est d'ailleurs cette méthode qui est utilisée dans la doc de NASM.
Cependant j'ai l'intention de parler de cette méthode dans la 3e partie au moment où je donnerai quelques explications sur l'instruction "int" mais cela ne représentera qu'un tout petit paragraphe.
  • Partager sur Facebook
  • Partager sur Twitter
Pour voir mon tuto sur l'assembleur cliquer ici. (en travaux et pour un certain temps !)
17 février 2012 à 21:41:50

Le jaune utilise pour ecrire "INTRODUCTION" fait fuir les visiteurs.
Et ce qui conscerme la taille des textes faudrait y aller mollo, c est pas une encyclopedie que tu ecrit, vas plutot a l essentiel et explique simplement.
  • Partager sur Facebook
  • Partager sur Twitter
25 février 2012 à 15:30:49

Bonjour lctus,

J'ai lu quelques chapitres et survolé quelques autres de ton tutoriel et j'ai les mêmes remarques que ceux qui t’ont écrit jusqu'alors:

- Manque d'ergonomie
- Pas assez d'images et de schémas pour compléter tes explications
- Certaines explications sont maladroites à mon sens.

Cependant, je trouve que le programme d’étude que tu as choisi est très intéressant notamment l’étude d’un noyau linux et la création d’un mini noyau. Je pense que ton tutoriel pourra en effet intéresser de nombreuses personnes ayant déjà une expérience en programmation et souhaitant aller plus loin dans la compréhension de leur machine.

Personnellement, je cherchais depuis plusieurs mois à étudier le projet « Minix » mais vu le peu de documentation que j’ai trouvée (tout en anglais en plus), je préfère attendre que ton tutoriel soit moins dur à « avaler » avant de m’initier à l’assembleur.
Nous comptons sur toi.
Bon courage.
  • Partager sur Facebook
  • Partager sur Twitter
1 mars 2012 à 15:34:04

Citation : zouzou059

J'ai lu quelques chapitres et survolé quelques autres


Si je peux me permettre : Lire ne suffit pas ! Un tuto est fait pour être testé. J'ai eu d'autres réactions que celles qui sont écrites ici et les personnes qui ont fait les tests ont vraiment été aidés dans la compréhension de l'assembleur. On ne peut pas se faire une idée correcte d'un tuto si on n'expérimente pas. Je suis d'accord avec vous sur le défaut de présentation mais pour l'instant je continue mes recherches et je corrige ce que l'on m'indique de corriger quand c'est facile et rapide.

Citation : zouzou059

Cependant, je trouve que le programme d’étude que tu as choisi est très intéressant notamment l’étude d’un noyau linux et la création d’un mini noyau.


Je crains que vous ne soyez déçu, c'est étrange de donner un avis sur ce qui n'existe pas encore. Le but de ce tuto n'est pas de faire un mini noyau mais c'est le seul moyen d'expérimenter les instructions protégées du langage assembleur.

Citation : zouzou059

je préfère attendre que ton tutoriel soit moins dur à « avaler » avant de m’initier à l’assembleur.
Nous comptons sur toi.
Bon courage.


Merci. Cela fait plus d'un an que je travaille sur ce tuto et j'ai fait des erreurs sur le dernier chapitre de la 2e partie, je dois le refaire, j'y travaille actuellement.
Je ne pense pas pouvoir donner quelque chose d'intéressant sur la 3e partie avant le mois de septembre 2012. J'ai déjà réussi à compiler et à démarrer un noyau linux et à fabriquer un mini noyau dos qui tient sur une disquette et j'ai pu tester les instructions protégées. Je voudrais maintenant faire un mini noyau en utilisant Grub.
  • Partager sur Facebook
  • Partager sur Twitter
Pour voir mon tuto sur l'assembleur cliquer ici. (en travaux et pour un certain temps !)
Anonyme
2 mars 2012 à 2:16:14

Quite à faire un OS, essaye de faire ton propre bootloader. C'est pas dur, et ça te fais manier l'assembleur.
  • Partager sur Facebook
  • Partager sur Twitter
3 mars 2012 à 14:15:21

je dit que ce tutoriel est bien fait vivement la partie noyau que je dégusterais avec un bon café
  • Partager sur Facebook
  • Partager sur Twitter
3 mars 2012 à 21:19:25

Je pige pas le truc. C'est un tutoriel sur l'assembleur ou sur les systèmes d'exploitation ? Parce que ça n'a rien à voir.
  • Partager sur Facebook
  • Partager sur Twitter
7 mars 2012 à 14:51:23

Citation : Kyron

Je pige pas le truc. C'est un tutoriel sur l'assembleur ou sur les systèmes d'exploitation ? Parce que ça n'a rien à voir.


C'est un tutoriel sur l'assembleur ! Mais je dis que l'objectif principal c'est que ça reste un tuto donc il fallait que je trouve une solution pour que les lecteurs puissent tester les instructions protégées que seul le noyau peut exécuter. En fait une disquette de boot windows 98 modifiée ferait l'affaire mais comme le dit informaticienzero je préfèrerai faire un bootloader.
Pour l'instant j'essaye de terminer la 2e partie. J'ai fait un TP sur le coprocesseur arithmétique, j'espère bientôt pouvoir le mettre en ligne.
Merci à pause-attn mais je crains que son café ne refroidisse un peu ! J'avance très lentement.
  • Partager sur Facebook
  • Partager sur Twitter
Pour voir mon tuto sur l'assembleur cliquer ici. (en travaux et pour un certain temps !)
22 septembre 2020 à 7:38:57

bjr. je voudrais apprendre l assembleur que faire.
  • Partager sur Facebook
  • Partager sur Twitter
22 septembre 2020 à 16:05:18

Bonjour,

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter