IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Assembleur Discussion :

Etudes pour l'assembleur


Sujet :

Assembleur

  1. #1
    Invité
    Invité(e)
    Par défaut Etudes pour l'assembleur
    Bonjour,

    Je suis en Terminale STI.

    J'aimerai savoir s'il y a des études qui permettent d'apprendre l'assembleur, le fonctionnement d'ordinateur,
    enfin tout ce qui touche la .. "source" de l'informatique (cad tout ce qui est de "bas niveau" dont beaucoup de programmeurs programment sans réellement comprendre).
    J'aime surtout le développement.

    Merci

  2. #2
    Membre actif Avatar de golden boy
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 120
    Points : 230
    Points
    230
    Par défaut
    Bonjour.

    Les gens en STI électronique de mon lycée touchent déjà un peu à l'assembleur pour les µC PIC. Ainsi, je pense qu'une orientation vers l'électronique (ce qui serait en adéquation avec un bac STI) te permettrait d'apprendre un peu le langage des circuits : l'assembleur. En étude d'informatique j'ai un peu plus de doutes, mais je peux me tromper. Ça me semblerait bizarre qu'en 2012 on enseigne de l'assembleur aux futurs programmeurs, mais ça doit bien-sûr dépendre de l'établissement. Ou alors il faudrait des cours d'info orientés sur l'architecture des machines. Ouais, l'étude de l'architecture des machines semble bien approprié je dirais.

    Mais sinon la voie de l'autodidacte est bien aussi

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ok, merci

  4. #4
    Membre régulier Avatar de aslo92
    Homme Profil pro
    Ingénieur développement logiciels temps réel
    Inscrit en
    Février 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels temps réel
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 43
    Points : 71
    Points
    71
    Par défaut
    Bonjour CydGy,

    personnellement, j'ai appris l'assembleur tout seul en lisant des livres.
    Tu peux également trouver facilement des cours d'initiation sur Internet.

    Après si ça de plait, je pense que le mieux c'est d'écrire un petit programme en C puis de le désassembler et étudier le code généré par le compilateur. C'est très instructif.

    Tu peux aussi exécuter ton programme C avec un débugger en mode code assembleur. Ca te permettra de voir la valeur prise par les registres et le contenu de la mémoire en mode pas à pas.

    L'assembleur n'est pas un langage très facile, mais c'est le seul qui permet de tout faire et de comprendre comment marche un processeur.

    De plus il n'y a pas plus rapide.
    A toi de jouer ...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ok, merci

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 369
    Points : 23 623
    Points
    23 623
    Par défaut
    Hello,

    À l'époque où j'ai suivi cette voie (autour de 1994) on enseignait encore le 6809, qui était déjà vieux mais très didactique. Il a équipé de nombreux systèmes industriels mais également la série des Thomson 8 bits ce qui fait qu'à l'époque, on pouvait directement manipuler ce processeur sur un ordinateur personnel et pas sur une simple platine de simulation dans le cadre d'un TP.

    Bon nombre de gens pourront légitimement se demander où se trouve l'intérêt d'explorer aujourd'hui un processeur si ancien mais tout ceux qui ont travaillé avec, moi le premier, te diront qu'il est « ni trop simple ni trop compliqué ». Son jeu d'instruction est très orthogonal, avec une bonne séparation des instructions proprement dites et des modes d'adressage de l'autre et la syntaxe des mnémoniques associés a été travaillée de façon à structurer tout cela. Elle fait bien ressortir les opérations de lecture et d'écriture par LDx ou STx, là où Intel, par exemple, assimile le tout à une seule instruction MOV qui se déclinent pourtant en une centaine de variétés.

    Si tu as l'occasion d'y toucher, n'hésite pas.

  7. #7
    Invité
    Invité(e)
    Par défaut
    OK, merci pour vos réponse,

    Je pense que je ne vais pas me lancer dans "full" assembleur.
    Car un développeur assembleur, c'est pas trop "vendeur"..
    Rectifiez-moi si je me trompe. Et si ça l'est, où?

    je pense donc continuer les langages de haut niveau, et parallèlement faire de l'assembleur, car.. je ne peut m'en empêcher. (mais disons que j'en ferai juste un peu tous les jours si possible).

  8. #8
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 369
    Points : 23 623
    Points
    23 623
    Par défaut
    Je pense que tu as la « fibre » !

    Un développeur 100 % assembleur aura effectivement du mal à se vendre parce que plus personne ne développe des projets 100 % assembleur aujourd'hui. Par contre, un ou plusieurs assembleurs sur un CV accompagnant des technologies phares permet de faire le distingo entre un programmeur purement académique et quelqu'un qui, effectivement, est allé au fond des choses.

    Tout recruteur ayant un peu de bouteille reconnaîtra cela. C'est malheureusement loin d'être le cas de toutes les personnes recrutant des programmeurs…

  9. #9
    Invité
    Invité(e)
    Par défaut
    Ok, et bien, résolu.
    Merci encore.


    PS: ça fait quand même rêver de maîtriser à fond l'asm... Mais on va dire que .. c'est risqué.

  10. #10
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 369
    Points : 23 623
    Points
    23 623
    Par défaut
    Citation Envoyé par CydGy Voir le message
    ça fait quand même rêver de maîtriser à fond l'asm... Mais on va dire que .. c'est risqué.
    Pas tellement, en fait.

    Paradoxalement, comme l'assembleur se situe au plus près de la machine, c'est une couche qui est encore relativement restreinte et dont on peut humainement faire le tour. J'entends par cette dernière phrase qu'il est possible de passer en revue les différents modes de fonctionnement, les mnémoniques et les modes d'adressages de façon exhaustive et dans un temps raisonnable.

    Après, pour en exploiter pleinement le potentiel, il faut pratiquer un peu, comme pour tout. L'ennui est que les machines d'aujourd'hui ne sont pas conçues pour travailler en permanence à ce niveau et qu'il est beaucoup plus difficile d'accéder au matériel, par exemple, et donc de faire des choses intéressantes avec.

    Si tu as l'occasion de récupérer une vraie machine 8 bits ou 16 bits pour quelques euros dans une brocante, saute dessus. Tu trouveras toute la documentation nécessaire en ligne, tu seras sûr que toutes les machines de ce modèle sont identiques entre elles (contrairement à un PC moderne qui peut contenir n'importe quel type de matériel) et tu pourras t'amuser à faire des POKE dans tous les sens sans risquer le crash.

    Amuse-toi bien ! :-)

  11. #11
    Membre régulier Avatar de aslo92
    Homme Profil pro
    Ingénieur développement logiciels temps réel
    Inscrit en
    Février 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels temps réel
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 43
    Points : 71
    Points
    71
    Par défaut
    Car un développeur assembleur, c'est pas trop "vendeur"..
    Rectifiez-moi si je me trompe. Et si ça l'est, où?
    L'assembleur est encore utilisé:
    - Dans les systèmes d'exploitation (une partie du noyau linux est écrite en assembleur)
    - Dans les drivers (en particulier dans les routines d'interuption matérielles)
    - Dans certaines fonctions pour des applications temps réel strictes
    - ...

    Je suis d'accord avec obsidian, ça fait bien dans un CV. Ca veut dire que tu sais programmer à bas niveau également.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Ok, eh bien, merci

  13. #13
    Membre actif Avatar de golden boy
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 120
    Points : 230
    Points
    230
    Par défaut
    Connaître l'assembleur et l'avoir déjà utilisé pas mal de fois change complètement ta façon de programmer en C ; tu as plus de recul, tu as une meilleure idée de la représentation en mémoire des variables, des constantes ou même des structures plus complexes. Par ailleurs, regarder des codes générés par gcc -S peut être en effet formateur pour cette raison.
    Du moins, tel fut mon sentiment personnel.

    Et si un embaucheur connaît bien le domaine, il saura tout ça quand il lira ton CV et ça peut éventuellement faire la différence avec d'autres programmeurs C qui n'ont jamais touché à l'assembleur.

  14. #14
    Membre confirmé Avatar de bifur
    passe le balais et l'aspirateur
    Inscrit en
    Mars 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : passe le balais et l'aspirateur

    Informations forums :
    Inscription : Mars 2008
    Messages : 314
    Points : 550
    Points
    550
    Par défaut
    au départ je programmait en basic sur le bon vieux logiciel qbasic puis j'ai été déçu par la lenteur du logiciel. j'ai demandé a un pote (qui lui est vraiment informaticien) quel est le langage le plus rapide et il m'as répondu l'assembleur
    donc voila...

    j'ai plusieurs vielles machines chez moi ou je teste des minis pilotes pour les différents organes de ceux-ci. a mon avis pas la peine de prendre une machine 8 bit pour ça, le 32 bit c'est tellement plus interessant

    par contre j'ai jamais réussis a me mettre au C,

  15. #15
    Invité
    Invité(e)
    Par défaut
    ouais, merci,

    Ba, je vais finir un gros projet web, et puis je me lancerai à l'assembleur, et je ne ferai pas d'autres langages.
    Et niveau étude, je vais sûrement arrêter après le bac.
    C'est risqué, mais non. C'est comme ça.

  16. #16
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    1 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 255
    Points : 2 627
    Points
    2 627
    Par défaut
    Citation Envoyé par CydGy Voir le message
    Et niveau étude, je vais sûrement arrêter après le bac.
    C'est risqué, mais non. C'est comme ça.
    Risqué, je ne dirais pas ça !! Je dirais plutôt suicidaire. Essaie le BTS, si tu peux.

    Faire de l'assembleur pour Intel ne sera pas la même que pour ARM ou Texas Instrument (DSP). Donc, maîtriser l'assembleur veut dire que tu maîtrises toutes les architectures.

    Le C est un bon complément, j'ai déjà vu des programme bas niveau qui mixaient l'ASM et le C. Mais malheureusement, c'était hors de portée pour moi : traitement du signal (chose que tu vois post BAC), donc grosse algorithmie.

    Et si un embaucheur connaît bien le domaine, il saura tout ça quand il lira ton CV et ça peut éventuellement faire la différence avec d'autres programmeurs C qui n'ont jamais touché à l'assembleur.
    Tout à fait !! Pour une double compétences, un recruteur prendra de préférence celui qui connait la couche la plus baisse. Mon cas, j'étais accepté pour un poste C# (à 80% et 20% en C ) alors que je fais du C.

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2012
    Messages : 3
    Points : 8
    Points
    8
    Par défaut Asm -> C -> C++ -> Java/C# -> {Lua, Python, Ruby}
    Bonjour,
    Il n'y a pas mieux que de suivre l'évolution de l'histoire pour mieux appréhender la situation. Au début on a commencé à programmer en binaire (0 et 1 pour les calculs seulement). Fatigué, on a trouvé une solution : l'Hexadécimal (opcode) qui a beaucoup soulagé. Puis on est passé à l'assembleur qui a une relation bijective avec l'opcode (on ne rate rien de ce que peut exécuter la machine). Les programmes commencent à se compliquer et deviennent de plus en plus gros, on crée alors le premier langage haut niveau, on gagne en abstraction mais on perd en pénétration : on ne peut plus commander à la machine de faire des opérations dont elle est nativement capable de faire. Solution, on incruste du code assembleur dans du code HLL là où il est difficile, fastidieux voire même impossible d'utiliser le code HLL (High Level Language) pour avoir la fonction souhaitée.
    Je crois qu'un programmeur doit être polyglotte capable de programmer en plusieurs langages et d'utiliser le langage le mieux adapté ou mixer plusieurs en fonction des besoins de son projet.

Discussions similaires

  1. Quel compilateur choisir pour l'assembleur ?
    Par forthx dans le forum Assembleur
    Réponses: 97
    Dernier message: 09/10/2018, 14h55
  2. Les meilleurs livres pour l'Assembleur
    Par gtr dans le forum Livres
    Réponses: 52
    Dernier message: 25/09/2010, 10h25
  3. Niveau d'étude pour ingénieur J2EE ?
    Par caroen dans le forum Etudes
    Réponses: 6
    Dernier message: 06/12/2006, 18h13
  4. Quel IDE Utiliser pour l'assembleur ?
    Par dimmu dans le forum Assembleur
    Réponses: 3
    Dernier message: 02/05/2006, 13h06
  5. Réponses: 4
    Dernier message: 11/04/2006, 00h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo