Le tuto n'a malheureusement aucune chance de sortir, il n'entre pas dans les tutos acceptés sur le sdz.
Qu'est-ce qui te fait dire ça ?
Il y a bien des problèmes dans le traitement que j'ai soulevé en page 1 il y a quelques mois, mais s'ils sont résolus le sujet me semble tout à fait acceptable.
Maintenant en l'état le tutoriel est mort, et pour ce qu'on avait fait dessus... xD
Qu'est ce qui te fait dire que mon tuto est mort j'attends juste l'outil de rédaction de tuto pour continuer à rédiger la suite bien que j'ai quand même avancé en hors ligne
azertyfun a écrit:
Si y'a des motivés dans la salle on leur interdit pas de s'en occuper
au fait c'est ces mêmes motivés que je recherche et dont je recueille les avis pour poster mes avancés et mon plan actuel
- Edité par cotoporto 8 mai 2013 à 20:41:10
tu aimerais apprendre l'assembleur avec NASM depuis zéro ? clique ici suis le fil de discussions ici
Je suis ravi de savoir que tu n'as pas abandonné ton projet de tuto, et j'ai hâte de lire la suite, en effet tu dis avoir avancé hors ligne et c'est une excellente nouvelle!
Vivement que l'outil de rédaction des tutos soit opérationnel, apparemment c'est prévu pour ce mois ci, donc je croise les doigts...
C'est un sacré défi qu'un tutoriel sur la programmation en assembleur et cela manque sur le sdz, je suis sur qu'il y a de la demande pour ça, et vu que ton tuto n'est plus en ligne, je pense que beaucoup de visiteurs/membres du sdz ignorent qu'un tel tuto est en cours de rédaction.
Je pense qu'il y a des centaines de cours en rédaction à ce sujet qui ne seront jamais acceptés. M'enfin, je ne peux pas voir celui-ci car on a pas accès aux bêta-on. D'ailleurs, le mien non plus, je ne peux pas le continuer.
Je pense qu'il y a des centaines de cours en rédaction à ce sujet qui ne seront jamais acceptés
Je suis presque sûrs que la majorité ne sont pas acceptés car jamais fini ou sufisament avancé pour ça surtout. D'autant plus que si ils sont refusés, c'est que le tuto etait "mauvais". La validation c'est ce qui permet que le site ai globalement de "bons" tutos.
Pour ce qui est du module de redaction, un peu de patience, ça va revenir d'ici peu !
Je suis presque sûrs que la majorité ne sont pas acceptés car jamais fini ou sufisament avancé pour ça surtout. D'autant plus que si ils sont refusés, c'est que le tuto etait "mauvais". La validation c'est ce qui permet que le site ai globalement de "bons" tutos.
C'est exactement ce que je disais, et c'est effectivement ce qui se passe dans la majorité des cas.
Alors bien que je n'ai pas encore atteint le nombre de personnes souhaité, je vais vous présenter une partie de mon plan histoire de pouvoir avoir un sujet de discussion avant le retour de l'outil de rédaction de tuto.
Voici le plan (ou une partie ) tel qu'il est présentement :
Partie 1 : [Théorie] : Les bases du langage d'assemblage
1) Généralités
Un programme c'est quoi ?
L'assembleur un monstre à plusieurs têtes
Pourquoi apprendre l'ASM ?
2) Organisation de l'ordinateur
Architecture des ordinateurs
Le microprocesseur
Remontons le temps
3) Les mémoires
Apprenons à retenir des informations
Les registres, notre microprocesseur a de la mémoire
Instructions de transfert de données
4) Les variables
Qu'est ce qu'une variable ?
Déclarer et utiliser une variable
5) Les interruptions
C'est quoi une interruption ?
Les interruptions du Dos et du BIOS
Apprenez à lire votre liste d'interruptions
Partie 2 : [Pratique] : Un premier programme
1) Maîtrisez votre environnement de travail !
Téléchargez et installez les outils
Le manuel du débutant
RTFM !
2) Votre premier programme
Console ou fenêtre ?
Hello World ! premier baptême du feu
Quelques conventions
3) Traquez les erreurs avec votre débugger
Un bug c'est quoi ?
Téléchargez installez et apprenez a utiliser un débugger
Un exemple de débogage
Partie 3 : [Théorie] : Un peu de maths
1) Nombres et binaires
Sais-tu vraiment compter ?
Le binaire, démystifions la bête noire
L’hexadécimale, la solution optimale
Autre base numérique
Conversions inter-bases
Représentation des nombres négatifs
2) Opérations arithmétiques et logiques
Les opérateurs basiques
Les opérateurs bit à bit
Les décalages binaires
Utilité des opérateurs bit à bit
Partie 4 : [Théorie] : Structures de contrôle : boucles et conditions
1) Le registre (E)FLAGS
Les Flags panneaux de signalisation
Le registre (E)FLAGS en détails
2) Les conditions
Le registre (E)FLAGS et les conditions
Branchements conditionnels et inconditionnels
Les instructions conditionnelles (titre à modifier)
3) Les boucles
À quoi ça sert ?
Branchements conditionnels et inconditionnels (titre à modifier)
l'instruction LOOP
Bien sur ce plan n'est pas définitif et sera mise à jour à chaque fois que je jugerai bon de le modifier ou par rapport à vos remarques et suggestions les plus pertinentes. En attendant vos suggestions et remarques, à bientôt.
édit : merci à korn2kx pour ses encouragements... Et oui c'est un sacré défi d'écrire un tuto sur l'asm mais je compte bien le relever
- Edité par cotoporto 14 mai 2013 à 22:53:23
tu aimerais apprendre l'assembleur avec NASM depuis zéro ? clique ici suis le fil de discussions ici
J'ai regardé ton tutoriel, il me semble très sérieux et non une grosse blague comme on a l'habitude d'en voir.
Mais par contre, il n'est pas du tout aussi orienté débutant que par exemple ceux de M@teo21. Mais ce n'est pas un mal, il conviendra certainement à de nombreux gens.
Le mien est plus à la mode M@teo21 et on y commence plus rapidement à coder, c'est une autre forme possible.
Mais par contre, il n'est pas du tout aussi orienté débutant que par exemple ceux de M@teo21. Mais ce n'est pas un mal, il conviendra certainement à de nombreux gens.
Le mien est plus à la mode M@teo21 et on y commence plus rapidement à coder, c'est une autre forme possible.
Au fait le sujet que j'ai choisi en lui-même requiert une certaine connaissance théorique de plus c'est mon découpage qui donne l'impression qu'on ingurgite beaucoup de théorie avant de coder sinon dès le chapitre sur les variables, on voit de près le code et la partie 2 permet de coder un premier programme
édit : si vous voulez j'ajoute une brève description de chaque partie et sous partie ainsi chacun sera renseigné sur le niveau de difficulté du tuto et on pourra tous discuter tout autour.
- Edité par cotoporto 15 mai 2013 à 8:28:08
tu aimerais apprendre l'assembleur avec NASM depuis zéro ? clique ici suis le fil de discussions ici
Alors bien que je n'ai pas encore atteint le nombre de personnes souhaité
En fait il ne faut pas que tu raisone ainsi. Un (bon) tuto à la base c'est quelque chose qui est rédigé par quelqu'un de competent et motivé à la base. Ne t'attend pas à ce que les gens viennent te supplier. D'autant plus qu'une grande partie des lecteurs du SdZ viennent déjà pas tous sur le forum, encore moins sur celui ci.
Si tu es vraiment motivé, vas y fonce. D'experience sur le SdZ je peux te dire que ce sujet est l'un de ceux les plus demandé et ce de manière récurente depuis tres longtemps. En clair, meme si il n'y a pas beaucoup de gens qui viennent dire "Ho oui vas y fait le", tu en aura des lecteurs une fois en ligne. Donc lance toi, ne perd pas de temps à attendre la venu de gens ici. Comme je te l'ai dis, cette partie du forum n'est pas tres fréquenté mais les demandes de tuto ASM sont régulères.
Apres il y a une raison pour laquelle c'est l'un des rare sujet tres demandé qui n'a pas de vrai grand tuto sur le SdZ. L'ASM est un sujet assez complexe (et vaste vu qu'il y en a autant que de famille de processeur, voir plusieurs syntaxe par famille) qui s'adapte difficilement au SdZ qui vise les debutants. Il y a beaucoup de théorie a ingurgiter avant d'arriver à quelque chose et d'avoir un peu de pratique. C'est un gros defit pedagogique d'arriver a etre complet, precis mais sans perdre les debutants dès le deuxième chapitre.
Bref lance toi. Je pense que le plus interessant à discuter est de comment accrocher le lecteur rapidement et réussir a avancer.
Je vois que tu as beaucoup avancé ! Je trouve ton découpage assez logique, on avance pas à pas, on apprend de nouvelle chose à chaque chapitre, c'est très intéressant. Et puis c'est normal de passer par un peu de théorie avant de se jeter dans l'eau, il n'y a aucun problème si c'est bien écrit et bien gérer.
Petite suggestion, maintenant que j'y pense : ton chapitre sur le débuggeur, tu ne pourrais pas le mettre ailleurs ? Je le verrais bien en annexe, dans une sous-partie tout à la fin du tutoriel. Ce qui n’empêche pas que tu y fasse référence dans tes chapitres, évidemment.
Dans le même genre, le chapitre d'introduction sur les outils gagnerait peut-être à être placé en second chapitre.
Parce que là, ça fait un peu comme une cassure entre d'un coté ce qui a trait aux interruptions, et le hello world (qui utilise celles-ci).
Des améliorations dans le genre, on en zappe beaucoup lors de la rédaction d'un tutoriel. Dur dur de créer une bonne progression...
Pour le moment, c'est tout ce que je peux donner comme conseil. Il faudra que je voie le contenu du tutoriel pour te donner d'autres conseils.
Moi je me demande si on ne peut pas trouver un moyen pour arriver beaucoup plus vite au code. Je comprend la necessité d'ingurgiter beaucoup de ces choses, mais ça risque d'en décourager plus d'un.
Dans un soucis pedagogique, il faudrait peut etre essayer de leurs mettre rapidement la main dans le code. Dès que tu leur a expliqué rapidement ce qu'est un registre, perso je ferait faire une premiere app ou tu leur fait faire quelque calcul avant. Attendre jusqu'aux interruptions, je trouve ça vraiment lmong pour un debutant (ie pour moi ton ton "premier programme" arrive trop tard, tu as surement déjà perdu la moitié des debutants quand tu arrive là).
Je me demande si on ne pourrais pas simplifier le cours en fournisant une base pré-codé. Une sorte de mini-lib/app pour pouvoir commencer a coder tôt, et voir son résultat direct, même avec peu de connaissance. Vous voyez ce que je veux dire ?
Moi je me demande si on ne peut pas trouver un moyen pour arriver beaucoup plus vite au code. Je comprend la necessité d'ingurgiter beaucoup de ces choses, mais ça risque d'en décourager plus d'un.
Dans un soucis pedagogique, il faudrait peut etre essayer de leurs mettre rapidement la main dans le code. Dès que tu leur a expliqué rapidement ce qu'est un registre, perso je ferait faire une premiere app ou tu leur fait faire quelque calcul avant. Attendre jusqu'aux interruptions, je trouve ça vraiment lmong pour un debutant (ie pour moi ton ton "premier programme" arrive trop tard, tu as surement déjà perdu la moitié des debutants quand tu arrive là).
Je me demande si on ne pourrais pas simplifier le cours en fournisant une base pré-codé. Une sorte de mini-lib/app pour pouvoir commencer a coder tôt, et voir son résultat direct, même avec peu de connaissance. Vous voyez ce que je veux dire ?
Personnellement, c'est exactement ce que je me suis efforcé de faire. Le premier chapitre évite d'être un pavé d'informations, on y touche un peu d'électronique et on voit ce que sont le langage machine et l'assembleur, mais bien sûr, on fait un passage obligé par le décimal et l'hexadécimal. On y commence à coder dès le deuxième chapitre. Une fois le programme réalisé, la procédure est détaillée pour comment l'assembler et l'exécuter pour Windows et autres OS.
Par contre, je n'utilise pas de librairie, c'est frustrant à utiliser surtout en faisant de l'asm.
Mon tutoriel est également mis en parallèle avec une vision simplifiée de l'électronique : quand on fait de l'asm, c'est qu'on a envie aussi de comprendre comment tout ça marche !
Vu que j'ai déjà rédigé un tutoriel sur l'asm z80 (une partie est validée, et la version bêta-on en est une amélioration et avec 10 chapitres supplémentaires, en cours de réorganisation pour passer à la validation), j'arrive mieux à agencer les choses.
Mais cotoporto, j'ai lu en diagonal ton tutoriel, il est plus complet que le mien, et avec tout ce que tu as rédigé, cela serait un massacre si t'essayais de changer tout cela. Je pense qu'avoir les deux types de tutoriel sur le site serait parfait : l'un pour les débutants qui veulent commencer tout de suite, et l'autre pour ceux qui veulent avoir plus d'informations dès le début. Et éventuellement, les lecteurs du tutoriel pour débutants pourrait ensuite passer au tien pour se perfectionner.
Exemple : Lorsque tu abordes les interruptions, tu expliques directement plein de choses alors que mon tuto va à l'essentiel.
Ne modifie pas ton tutoriel qui est excellent dans son genre et continue comme ça !
Bah pour etre honnete, moi je prefere un tuto un peu moins pedagogique mais plus complet, plus technique, comme celui de prevu, voir encore plus trash (là je lis un livre sur l'archi MIPS pour te dire). Mais je ne suis pas la cible du SdZ et quand je vois certaines questions sur le forum, j'ai peur pour un tuto tel que ça...
Probablement que les deux styles serait l'ideal oui, histoire de contenter tout le monde.
Je disais lib mais en soit ça peut etre juste un autre fichier source que tu leur fournit et que tu leur fait compiler avec leur source. En gros au debut tu leur fait faire des petites fonctions, tres basique, dont le seul contrat est de mettre le resultat d'un calcul dans un registre. Tant qu'ils ne sont pas capable de tout comprendre, ton code se charge de demarrer l'appli, appeler leur code, recuperer le resultat et l'afficher. C'est plutot à ça que je pensais. Et c'est pas specialement compliqué a faire. Ça leur permet de toucher dès le debut le code vu que tu t'occupe d'absorber ce qu'ils ne sont pas encore capable de faire.
Par curiosité mdr1, quand tu parle de ton tuto, tu parle duquel ?
Je disais lib mais en soit ça peut etre juste un autre fichier source que tu leur fournit et que tu leur fait compiler avec leur source. En gros au debut tu leur fait faire des petites fonctions, tres basique, dont le seul contrat est de mettre le resultat d'un calcul dans un registre. Tant qu'ils ne sont pas capable de tout comprendre, ton code se charge de demarrer l'appli, appeler leur code, recuperer le resultat et l'afficher. C'est plutot à ça que je pensais. Et c'est pas specialement compliqué a faire. Ça leur permet de toucher dès le debut le code vu que tu t'occupe d'absorber ce qu'ils ne sont pas encore capable de faire.
Par curiosité mdr1, quand tu parle de ton tuto, tu parle duquel ?
Grâce aux interruptions, nul besoin d'avoir recours à inclure du code tout fait, on peut aisément toucher dès le début du code et afficher du texte.
Quand je parle de mon tutoriel, je parle de celui sur l'assembleur x86 bien sûr.
Le début est toujours la partie la plus délicate dans la réalisation d'un cours sur l'ASM, le rédacteur se retrouve devant plein de chose à expliquer difficilement compréhensible par des débutants. L'idée de kristofjé est très intéressante, on se sent mieux lorsque on touche à du code, même très simple. Et puis il faut dire que l'ASM n'est pas un langage simple à apprendre et à enseigner, il faut vraiment être motivé.
Quand je parle de mon tutoriel, je parle de celui sur l'assembleur x86 bien sûr.
Tu as un lien ? je ne le trouve pas...
Apres je ne dis pas que ma proposition doit etre utilisé, je propose simplement. Quand on connait comment ça marche, il y a beaucoup de notions qu'on se dit indispensable. Mais pour un debutant ?
Grâce aux interruptions, nul besoin d'avoir recours à inclure du code tout fait, on peut aisément toucher dès le début du code et afficher du texte.
Ouais mais déjà là c'est ce que je dis, tu as déjà besoin de certaines notions comme les interuptions, limite le codage ASCII en plus des principes de bases de l'ASM, des registres, etc...
Pour moi, si tu veux vraiment y aller pas-à-pas, son premier programe c'est 3 lignes, charger 2 constantes dans des registres et faire l'addition dans un 3eme. Et tu te debrouille pour qu'il puisse le compiler et qu'il voit le resulat.
Apres c'etait surtout une piste, moi je m'en fout un peu
Je ne risque pas d'avoir un lien vu qu'il n'a pas été validé.
kristofjé a écrit:
Ouais mais déjà là c'est ce que je dis, tu as déjà besoin de certaines notions comme les interuptions, limite le codage ASCII en plus des principes de bases de l'ASM, des registres, etc...
Pour moi, si tu veux vraiment y aller pas-à-pas, son premier programe c'est 3 lignes, charger 2 constantes dans des registres et faire l'addition dans un 3eme. Et tu te debrouille pour qu'il puisse le compiler et qu'il voit le resulat.
Le premier programme (Hello World) fait 11 lignes, dont 5 lignes d'espacement et de commentaires. Il n'y a pas besoin d'avoir toute une théorie sur les interruptions pour pouvoir les utiliser pour afficher du texte. Je parle bien sûr de l'ASCII, mais ça ne change rien que l'on utilise les interruptions ou non.
PS : trois lignes, ce serait un peu court quand même vu qu'il y a déjà au minimum le "org" et le "ret".
salut par ici alors je vais commencer par répondre aux suggestions :
Mewtow a écrit:
Petite suggestion, maintenant que j'y pense : ton chapitre sur le débuggeur, tu ne pourrais pas le mettre ailleurs ? Je le verrais bien en annexe, dans une sous-partie tout à la fin du tutoriel. Ce qui n’empêche pas que tu y fasse référence dans tes chapitres, évidemment.
Dans le même genre, le chapitre d'introduction sur les outils gagnerait peut-être à être placé en second chapitre.
Parce que là, ça fait un peu comme une cassure entre d'un coté ce qui a trait aux interruptions, et le hello world (qui utilise celles-ci).
Des améliorations dans le genre, on en zappe beaucoup lors de la rédaction d'un tutoriel. Dur dur de créer une bonne progression...
Pour le moment, c'est tout ce que je peux donner comme conseil. Il faudra que je voie le contenu du tutoriel pour te donner d'autres conseils.
-
Tout d'abord merci pour tes suggestions et pour ce qui est de la partie sur le débuggeur j'ai décider de le mettre là car quand on code en asm on est souvent confronté a des erreurs d'exécution d'un programme qu pourtant n'avait apparemment aucun problème algorithmique et aussi parce que cela permet quelque fois de vraiment voir comment s'exécute son programme de façon interne...Mais bon c'est vrai que ce n'est pas indispensable en soi et que je peux le déplacer.
Pour ce qui est du chapitre sur les outils, je vais également voir comment le mettre plus tot sans pour autant donner l'impression qu'on présente l'outils plusieurs chapitres avant le code... Bref d'ici 24 heures je vais présenter un nouveau plan
Nockas a écrit:
Je vois que tu as beaucoup avancé ! Je trouve ton découpage assez logique, on avance pas à pas, on apprend de nouvelle chose à chaque chapitre, c'est très intéressant.
Au fait j'ai pas trop avancé parce que mon tuto ne bénéficiait plus de critique et de suggestions sinon un rythme normal aurait pu m’amener beaucoup plus loin que le résultat actuel
Nockas a écrit:
Et puis c'est normal de passer par un peu de théorie avant de se jeter dans l'eau, il n'y a aucun problème si c'est bien écrit et bien gérer.
c'est ce que je pense aussi mais je vais quand même voir si je ne peux pas faire passer un peu de pratique avant la partie II
mdr1 a écrit:
Personnellement, c'est exactement ce que je me suis efforcé de faire. Le premier chapitre évite d'être un pavé d'informations, on y touche un peu d'électronique et on voit ce que sont le langage machine et l'assembleur, mais bien sûr, on fait un passage obligé par le décimal et l'hexadécimal. On y commence à coder dès le deuxième chapitre. Une fois le programme réalisé, la procédure est détaillée pour comment l'assembler et l'exécuter pour Windows et autres OS.
Au fait j'avais déjà tenter cette approche tout a début et c'est même l'un des lecteurs que je cite ci-dessous qui me reprochait l'utilisation d'instructions non expliquées bien que c'était expliqué (pas en profondeur ) lors du décorticage du code.
tibounise a écrit:
Bonne idée de tutoriel, mais avant de commencer à écrire des programmes, faudrait songer à expliquer une à une les instructions asm
c'est vrai que l'idée de les expliquer une à une est exagérée mais je trouve qu'l n'a pas tout à fait tort et qu'on devrait faire quand même faire passer quelques bases avant de coder et c'est que je pense avoir fait à travers ce plan mais bon je vais encore améliorer le travail fourni
tu aimerais apprendre l'assembleur avec NASM depuis zéro ? clique ici suis le fil de discussions ici
je n'ai pas compris comment fonctionne le système de bêta-testeur. Où je peux trouver des inrformations là dessus. Ayant réalisé un micro-noyau multi-tâche en ASM, j'ai quelques compétences à offrir et j'aurai bien aimé avoir accès au tuto pour participer
Oui l'auteur(c'est à dire moi) continue de rédiger ce cours en fait toute la faute revient au site qui depuis ma proposition de validation ne m'a envoyé aucune réponse sinon peut être que finalement je vais devoir trouver une alternative pour la publication du cours
tu aimerais apprendre l'assembleur avec NASM depuis zéro ? clique ici suis le fil de discussions ici
Tuto intéressant mais très limité car il n'utilise en majorité que des instructions sur 16 bits, cela permet cependant d'apprendre les bases du langage assembleur. (on pourrait utiliser une instruction 32 bits avec db mais c'est un peu lourd). Il faudrait prévoir une suite à ce tuto en abandonnant l'émulateur DOS. L'idéal est de créer un noyau ou d'utiliser un noyau qui existe déjà. Personnellement j'utilise GRUB. J'ai alors un assembleur sans limite et ultra rapide.
Pour voir mon tuto sur l'assembleur cliquer ici. (en travaux et pour un certain temps !)
[Bêta ON] Premiers pas vers l'assembleur Intel x86 avec NASM
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.