|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : février 2012 Messages : 11 ![]() |
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
|
|
|
10
|
|
|
#2 |
|
Membre confirmé
![]() Étudiant Inscription : novembre 2010 Messages : 120 ![]() |
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
|
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : février 2012 Messages : 11 ![]() |
Ok, merci
|
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Ingénieur développement logiciels temps réel Inscription : février 2012 Messages : 43 ![]() |
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 ... |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : février 2012 Messages : 11 ![]() |
Ok, merci
|
|
|
00
|
|
|
#6 |
![]() ![]() Chercheur d'emploi Inscription : septembre 2007 Messages : 4 613 ![]() |
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. |
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : février 2012 Messages : 11 ![]() |
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). |
|
|
00
|
|
|
#8 |
![]() ![]() Chercheur d'emploi Inscription : septembre 2007 Messages : 4 613 ![]() |
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… |
|
|
10
|
|
|
#9 |
|
Invité régulier
![]() Inscription : février 2012 Messages : 11 ![]() |
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é. |
|
|
00
|
|
|
#10 | |
![]() ![]() Chercheur d'emploi Inscription : septembre 2007 Messages : 4 613 ![]() |
Citation:
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 ! :-) |
|
|
|
00
|
|
|
#11 | |
|
Membre régulier
![]() Ingénieur développement logiciels temps réel Inscription : février 2012 Messages : 43 ![]() |
Citation:
- 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. |
|
|
|
00
|
|
|
#12 |
|
Invité régulier
![]() Inscription : février 2012 Messages : 11 ![]() |
Ok, eh bien, merci
|
|
|
10
|
|
|
#13 |
|
Membre confirmé
![]() Étudiant Inscription : novembre 2010 Messages : 120 ![]() |
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. |
|
|
00
|
|
|
#14 |
|
Membre habitué
![]() passe le balais et l'aspirateur Inscription : mars 2008 Messages : 111 ![]() |
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, |
|
00
|
|
|
#15 |
|
Invité régulier
![]() Inscription : février 2012 Messages : 11 ![]() |
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. |
|
|
00
|
|
|
#16 | ||
|
Expert Confirmé
![]() Développeur informatique Inscription : décembre 2011 Messages : 1 250 ![]() |
Citation:
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. Citation:
|
||
|
|
10
|
|
|
#17 |
|
Invité de passage
![]() Karim NiniÉtudiant Inscription : août 2012 Messages : 1 ![]() |
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. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com