Déjà, je commence par douter de l'intérêt d'un tel document. En effet, l'ASM n'étant qu'un ensemble de mnémoniques permettant la textualisation d'un code natif à la base seulement constitué de nombres, autant écrire mov eax, ebx plutôt que 421EE7 ou que sais-je.
Mais il s'agit là d'un avis personnel pouvant être discuté.
Citation
Programme en C/C++ et autres (Type Word 2007 ou Jeu vidéo) --> Haut niveau = Les instructions ne sont pas compréhensible directement par le processeur, c'est à ce niveau qu'il y a distinction entre un programme qui marche sur un système d'exploitation et pas un autre (Sur Windows mais pas Linux, par ecemple). On a ici 2 couches.
Classifier le C et le C++ dans les langages de haut niveau est une hérésie. Je veux bien que le code natif soit à un niveau significativement plus bas, mais n'enlève pas à ces langages l'un de leurs attributs principaux.
Citation
Ainsi, c'est là qu'on voit pourquoi le très bas niveau est beaucoup plus efficace que les langages de haut niveau, qui font des détours et qui perdent énormément en performance...
Si tu catégorises toujours le C dans les langages de haut niveau, sache que de nos jours, les compilateurs sont souvent capables de produire un code de bien meilleure qualité qu'un humain.
Le seul domaine dans lequel s'illustre la performance de l'ASM est celui des instructions types SIMD, les compilateurs n'étant pas en mesure d'en tirer pleinement profit dans certains scénarios.
Citation
Et le programme lui-même, le code "processeur", qui a été compilé et convertit en instructions plus simple à comprendre (pour une machine, bien sûr ), et ça ressemble à ça :
"¾6ÊG#=›‡D̃ÀܤŸÌÒFIåÁRŒJËÄØj"
Je trouve ça volontairement mystificateur et pas pertinent d'exposer du code natif sous forme ASCII.
Citation
[...] le fabricant (Intel, Athlon, Pentium...etc) [...]
Athlon et Pentium sont des gammes de microprocesseurs fabriqués respectivement par AMD et Intel, pas des fabricants
Sinon, question, dans ton TP "Hello, World !", tu comptes faire écrire un exécutable complet à partir de rien ?
PS : il y a une grosse faute de conjugaison dans ta signature, seras-tu capable de la trouver et de la corriger ?
Personnellement, (Attention : je n'engage pas mon avis de validateur en disant cela, c'est juste un avis personnel), le sujet me parait être recevable sous certaines conditions. En effet, c'est bien beau de bosser avec des mnémoniques, mais l'ASM cache des détails concernant le processeur qui seront surement vus dans ton cours. Ton tutoriel permettra sûrement d'aborder les notions d'endiannes, d'opcode, de modes d'adressages, voire nettement pire : de self-modifying code, qui ne sont pas vues dans le cours d'ASM (ou alors d'une manière différente et beaucoup plus succinte). Si tu fais cela correctement, ton tutoriel pourrait avoir une plus-value comparé au cours d'ASM.
Mais je pense que tu devrais contacter un autre validateur pour lui demander si le tutoriel pourrait être accepté, on ne sait jamais.
Je pense aussi qu'il faudrait modifier quelques informations dans ton premier chapitre, qui semble contenir pas mal de trolls et d'erreurs. Je serais carrément d'avis de le supprimer, histoire d'éviter des polémiques sur la notion de bas/haut niveau.
Déjà, je commence par douter de l'intérêt d'un tel document. En effet, l'ASM n'étant qu'un ensemble de mnémoniques permettant la textualisation d'un code natif à la base seulement constitué de nombres, autant écrire mov eax, ebx plutôt que 421EE7 ou que sais-je.
Mais il s'agit là d'un avis personnel pouvant être discuté.
Là, je ne contexte pas, le tutoriel est d'un intérêt très peu réduit... mais je l'avais écrit après une expérience personnelle, celle de démonter mes programmes à l'éditeur hexadécimal. Démonter du C ne m'aida pas beaucoup, mais en étudiant les éxécutables crachés par FASM (flat assembly, pour moi le seul par lequel commençer) j'ai petit à petit compris tout ce que les nombreux tutoriels sur l'assembleur disponibles sur l'internet : comment réfléchis un ordinateur.
Vu d'aujourd'hui, ça me semble maintenant un peu absurde, mais j'ai passé ce truc un bêta test pour répondre aux personnes qui se posaient la question : "Est-ce que je peux directement écrire un programme au clavier ?"
C'est oui, et c'est à faire en hexadécimal.
Citation : Kyron
Citation
Programme en C/C++ et autres (Type Word 2007 ou Jeu vidéo) --> Haut niveau = Les instructions ne sont pas compréhensible directement par le processeur, c'est à ce niveau qu'il y a distinction entre un programme qui marche sur un système d'exploitation et pas un autre (Sur Windows mais pas Linux, par exemple). On a ici 2 couches.
Classifier le C et le C++ dans les langages de haut niveau est une hérésie. Je veux bien que le code natif soit à un niveau significativement plus bas, mais n'enlève pas à ces langages l'un de leurs attributs principaux.
Cette notion de haut et de bas est devenue très relative... En effet, à l'époque, le C était une avancée et difficile de trouver plus haut, le fortan et l'assembleur se tapant dans les mains en bas. Mais désormais, maintenant avec des monstres d'altitude tels que le python ou même pire, le java, le C nous semble terriblement bas.
Mais le C reste tout de même assez élevé. J'ai voulu nuancer cette notion de niveau en introduisant ces "couches", ç-a-d le nombre de fonctions qui sont "traversées"... Bref, c'est à reformuler, même le validateur n'avais pas compris à l'époque.
Citation : Kyron
Citation
Ainsi, c'est là qu'on voit pourquoi le très bas niveau est beaucoup plus efficace que les langages de haut niveau, qui font des détours et qui perdent énormément en performance...
Si tu catégorises toujours le C dans les langages de haut niveau, sache que de nos jours, les compilateurs sont souvent capables de produire un code de bien meilleure qualité qu'un humain.
Le seul domaine dans lequel s'illustre la performance de l'ASM est celui des instructions types SIMD, les compilateurs n'étant pas en mesure d'en tirer pleinement profit dans certains scénarios.
Oui, un code bien plus propre car moins ficelleux, sans goto. J'ai nuançé mon point de vue, le langage en lui-même offre beaucoup plus de possibilités, mais son utilisation requiert une grande expertise qu'on remplaçe aujourd'hui par l'exactitude des compilateurs...
Citation : Kyron
Citation
Et le programme lui-même, le code "processeur", qui a été compilé et convertit en instructions plus simple à comprendre (pour une machine, bien sûr ), et ça ressemble à ça :
"¾6ÊG#=›‡D̃ÀܤŸÌÒFIåÁRŒJËÄØj"
Je trouve ça volontairement mystificateur et pas pertinent d'exposer du code natif sous forme ASCII.
Noté.
Citation : Kyron
Citation
[...] le fabricant (Intel, Athlon, Pentium...etc) [...]
Athlon et Pentium sont des gammes de microprocesseurs fabriqués respectivement par AMD et Intel, pas des fabricants
Sinon, question, dans ton TP "Hello, World !", tu comptes faire écrire un exécutable complet à partir de rien ?
Noté pour la confusion, et oui, mais pour un DOSbox. (Format .COM)
Citation : Kyron
PS : il y a une grosse faute de conjugaison dans ta signature, seras-tu capable de la trouver et de la corriger ?
Noté.
P.S. : Voici ce qu'on pourrait appeller l'héritier de ce truc sur l'hexadécimal
je m'intéresse assez aux langages bas niveau et aux désassembleurs et j'ai trouvé ce début de cours très intéressant et instructif.
tu comptes toujours écrire la suite sur les interruptions ?
sinon tu veux pas nous en toucher deux mots vite fait ?
Ah, il a fallu quelqu'un pour déterrer mon tutoriel. ^^'
Bon... En clair, je vais faire simple : Actuellement, non, je ne finirais pas ce tutoriel. J'ai effectivement un cahier des charges bien chargé pour ce tutoriel, avec des idées innovantes et un gros projet de réécriture de la partie déjà existente... toussa...
Mais je suis au beau milieu de mes études, je ne me sens pas de dégager une quantité considérable de temps pour la documentation qu'il me faut sur le sujet, plus le temps d'écriture...
Tu peux demander à chercher un repreneur pour ce tutoriel : il y a une option exprès pour ça dans l'interface du menu d'édition du tutoriel. Ça serait mieux que de jeter ton travail.
Petit soucis avec la création du fichier Testeur.com(premier du nom) sous win7 64bits :s Et je trouve pas trop bien pourquoi...
The version of this file is not compatible with the version of Windows you're running. Check your computer's system informations to see wheather you need an x86 or x64 version of the program, and then contact the software publisher.
Le publisher c'est moi et j'ai beau me contacter, je sais pas comment sortir de EditHexa 8.3 un programme x64 au lieu de x86. D'autant que normalement, windows7 64bits gère les deux...
Installez un 64bits qu'ils disaient...j'aurais mieux fait de rester en 32bits ouais...j'avais que 64 cou*** et pas 128...
Edit: en gros...je pense avoir compris que le 64bits en hexa ce sera pour bien plus tard...donc je lance sous 32b et tampis(vive virtualbox)
Et en passant, elle est tordue la question sur les doigts au bout du premier chapitre sur les registres. Le piège étant bien de compter les doigts de pieds avec et non de compter en hexa(ce qui tombe sous le sens, dans un cours sur l'hexa )
...5 jours de boulot -> 5 chapitres compréhendus...
Si quelqu'un veut reprendre ce tuto, il aura au moins un lecteur vraiment zéro pour le beta test
Pitié, que quelqu'un le continue ou me donne une addresse ou apprendre le reste...trop envie de savoir... (qui à dit mazo? )
M@t
[Bêta ON] [Hexadécimal] Programmer en (très) bas niveau, facile !
× 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.
M@t