EB_

Sdílet
Vložit
  • čas přidán 29. 08. 2024

Komentáře • 139

  • @laurentthommet8313
    @laurentthommet8313 Před 4 lety +15

    Pour moi clairement l'assembleur est la mère de tous les languages. Merci pour ce flash back. Cordialement Laurent

  • @renelefebvre53
    @renelefebvre53 Před 4 lety +1

    J'ai écrit , il y a 15 ans, du code ASM pour lire les informations de télécommandes IR exotiques. Indispensable, quand on a besoin de maîtriser le timing à la micro-seconde près.
    Maintenant pour gérer une liste doublement chaînée de pointeurs sur fonctions ou le parcours récursif d'un arbre, l'assembleur est difficilement envisageable. Je garde une grande admiration pour les génies qui ont programmer le module d’atterrissage du LEM, avec très peu de mémoire ! Chapeau bas, comme on dit !

  • @denistauvel514
    @denistauvel514 Před 4 lety +2

    C'est appréciable de voir enfin quelqu'un qui parle de langage machine. Personnellement je suis un espèce de dinosaure, pour programmer les Pics, je préfère nettement l'assembleur au C. En revanche, j'ai essayé de me mettre à l'assembleur sur l'AtMega, mais il faut reconnaître que c'est beaucoup plus compliqué, d'autant que ceux-ci ont beaucoup de registres de travail et pas d'accès direct des instructions aux emplacements mémoire.

  • @dominiquemoreau4270
    @dominiquemoreau4270 Před 4 lety +3

    Super présentation! :-)
    Merci. Tu m'as bien rappelé ma jeunesse quand je travaillais comme "technicien-bricoleur en électronique" (sans prétentions). Sitôt rentré chez moi après le travail, je courrais vers mon ordi et je ne lâchais plus ni le 8088 ni MASM de toute la soirée, sauf éventuellement pour l'apéro ou le souper avec madame ;-)
    La belle époque !

  • @sfecardio3721
    @sfecardio3721 Před 4 lety +2

    J'y retrouve des astuces que j'utilisais pour programmer du code temps réel. Par exemple la multiplication par 10. Et bien, avec un compilateur C bien optimisé, il utilisait ces astuces (pour autant que l'on mettait les bonnes options de compilation: optimiser la taille code source, ou la vitesse d'exécution).
    Tu aurais dû parler de la puissance des calculs via les registres (les opérations directes sur mémoire RAM étant 2 à 4 fois plus lente que la même opération travaillant directement sur les registres) . Le nombre de cycles utilisés étant bien plus réduit en travaillant directement dans les registres. Bien qu'en C, il y a aussi la directive register. Et je pense que seuls les personnes ayant pratiqué l'ASM comprennent bien le langage C (qui pour moi est le plus proche de l'ASM. J'en veux pour preuve les pointeurs).
    Qui peux comprendre la stack sans avoir programmé en ASM ? Un des processeurs les plus épatants à programmer était le 68000, bien plus riche que le 80x86, qui exigeait l'utilisation de registres spécifiques, alors que le 68000 acceptait tous les registres. Bon, en fait, je ne programme plus du tout en ASM, la puissance des processeurs ayant été multiplié par au moins 100 depuis mon début de carrière. Je ne rencontre plus de problème pour réaliser des logiciels temps réel en C. Mais encore une fois, je soutiens que lorsque l'on connaît le langage machine, on optimise mieux ses logiciels, quels que soient les langages utilisés. Je suis dégouté quand je vois que les langages modernes utilisent 4 bytes pour une déclaration de variable booléenne ! Ou des programmeurs qui déclarent inutilement toutes leurs variables en int. Parfois, je me dit que je pourrais faire du code plus rapide avec un vieux processeur, qu'avec un jeune codeur utilisant un processeur beaucoup plus puissant...

    •  Před 4 lety

      Tout à fait d'accord. Je n'ai pas couvert la pile (stack) dans la vidéo, puisque ça tombe plus dans l'architecture que dans l'assembleur proprement dit.Et il aurait alors aussi fallu couvrir les interruptions.

    • @cafebouazizi
      @cafebouazizi Před 4 lety

      Je rajoute que la pile (stack) est incontournable pour le passage de paramètres aux sous-programmes, la compréhension de son fonctionnement est incontournable pour maîtriser l'appel de routines écrites dans un autre langage surtout si l'ordre d'empilement n'est pas le même. quoi de mieux que de jouer un peu avec les push/pop.
      ici c'est exemple où la connaissance de l'assembleur permet de facilité la compréhension de mécanismes utilisés dans des langages dit de haut niveau (y compris le langage C).

  • @etienneguyot9069
    @etienneguyot9069 Před 4 lety +1

    Merci, merci, merci !
    Vieux souvenirs de mes débuts sur un 2650 Signetics. Mais mon préféré fut le 6809, j'adorais (et j'adore toujours) ce microprocesseur qui m'a embarqué, depuis le premier composant acheté, dans le monde informatique. J'ai toujours cette machine qui tourne maintenant sous Flex 09. Plus tard, professionnellement, j'ai dû mélanger de l'assembleur (FFT rapide), du Pascal et du C sur ce même 6809... Pas facile de coder une fonction Atan en virgule flottante en assembleur !... D'où le recourt aux bibliothèques en Pascal. Mais pour une multiplication Sin/Cos des échantillons, l'assembleur est redoutable d'efficacité (il n'y avait qu'environ 700µs entre deux interruptions du convertisseur ADC, avec un temps de cycle d'une micro-seconde, fallait pas chômer...)

  • @eolienelec8405
    @eolienelec8405 Před 4 lety

    Merci de m'avoir rajeuni de 40 ans avec cette très très bonne vidéo qui devrais être vue par le plus grand nombre.

  • @jfmahe1407
    @jfmahe1407 Před 4 lety +2

    Merci Bertrand. Moi aussi ça me rappelle mes codages en 6502, Z80, 80x86 et enfin celui que j'ai le plus apprécié: le 68000.

  • @jopi7401
    @jopi7401 Před 4 lety +2

    Bonjour et merci pour cette excellente vidéo.
    J'ai effectivement commencé par le langage d'assemblage sur les fameux pic 16f84 et j'avoue avoir eu beaucoup de difficultés au début. Mais c'est très formateur et très proche de la puce.. Le problème, c'est qu'à chaque fois que l'on change de microcontrôleur, il faut tout réapprendre et les datasheets sont ... très longues.
    Alors je suis passé à autre chose : Raspberry pi et Arduino. Le python est une solution de facilité ainsi que le pseudo-langage arduino (C et C++). La datasheet de l'ATméga 328 est très longue... Toutefois, je reconnais que la maîtrise d'un langage "assembleur" permet de mieux comprendre ce que fait un programme de plus haut niveau.
    Encore merci.

  • @jclm8049
    @jclm8049 Před 4 lety

    Bjr à tous de Fr, EXCELLENT !!! J'ai commencé aussi par le 6502 et le Z80 (carte MPF-1P , format livre), merci Bertrand pour cette VDO qui manquera pas d'éveiller la curiosité des programmeurs amateurs.

  • @francoisbasquin6974
    @francoisbasquin6974 Před 4 lety +1

    Ah, les cours d’assembleur 68000 à l’université sur un vieux serveur Ampex. C’est comme ça que j’ai découvert UNIX; on éditait en mode ligne avec “ed”, on assemblait avec “as” et on faisait un “od” (octal dump) pour voir le résultat. Inutile de dire que ça décourageait beaucoup de monde!!

  • @petimorillo
    @petimorillo Před 4 lety +1

    Merci de reparler de l’assembleur! Pour ma part j’ai pratiqué sur pic16f84. Programmer avec les instructions mêmes du processeur est vraiment très intéressant.

  • @patricegonnin5796
    @patricegonnin5796 Před 4 lety

    Toute ma jeunesse sur 8085 d'Intel, Z80 de Zilog avec le ZX81 auquel j'avais ajouté le son avec un AY3-8912 j'avais même écrit un programme affichant les accords de guitare et les jouant. J'ai également étudié le 68000 de Motorola. C'était la belle époque. Encore merci pour cette super vidéo nostalgique.

  • @yveslesage8525
    @yveslesage8525 Před 4 lety +2

    Pour multiplier par 10 en ASM, mieux vaut faire x2, x2, +1, x2 = (2*2+1)*2 que x2, x2, x2, +1, +1 =(2*2*2+1+1).... on y gagne une addition...! = réduction taille du code et vitesse d'exécution augmentée. (Juste un souvenir de mes années Z80).
    Bravo pour cette vidéo, en particulier pour l'inclusion de l'ASM dans du C et l'analyse du code ASM généré par le compilateur C.
    ASM et C ne sont pas effectivement concurrents, à chacun son job !

    •  Před 4 lety +1

      C'est bon ça! Pourquoi ne pas y avoir pensé avant! Toutes ces années à avoir gaspillé une cycle d'horloge... Je ne dormirai plus maintenant! ;-))

  • @bipbip6523
    @bipbip6523 Před 4 lety +1

    Bonjour
    Déjà un grand merci pour cette vidéo, qui est très bien expliqué, on aurais pu citer
    Monsieur Bigonoff
    Qui a fait un superbe boulot sur l’apprentissage des Pics16Fxxxx et Pic18Fxxxx en ASM
    L'assembleur qui est un langage de bas niveau, et le sommet de tous les langages de haut niveau
    Et ne peut être égalé. (désolé pour les adeptes des langages de haut niveaux.)
    Je pratique que de l'assembleur pour mes microcontrôleurs, ce qui m'a permit de construire mes bibliothèques, et d'en comprendre leurs fonctionnement.
    Un désassembleur sert à trouver une erreur, ou modifier un code source qui n'existe plus.
    Certain l'utilise à des fins malhonnête pour cassé des clé ou numéro de série,... bref ... chose à pas faire.
    A+

  • @bardoubruno498
    @bardoubruno498 Před 4 lety

    Coucou, on va pas se mentir, je n'ai même pas eu dans l'idée une milliseconde dans une absence de réalisme, de tenter le langage assembleur.
    Cela dit, quelle claque que cette introduction au langage assembleur ! A la fois ça démystifie, mais en même temps montre toute la complexité de l'informatique. J'apprécie beaucoup cette vidéo, parce qu'elle raconte quelquechose auquel je n'aurais pas eu accés (comprendre le langage assembleur).
    Donc si elle ne me donne pas envie de pratiquer, elle me donne au moins le goût de comprendre et appréhender le langage assembleur. MERCI !!!!!!

  • @Frogger-ux1wl
    @Frogger-ux1wl Před 4 lety +4

    ça me rappel l'époque ou je programmait en assembleur sur le 6502 :-) merci encore pour cette vidéo :-)

  • @thierrysauvage562
    @thierrysauvage562 Před 4 lety +1

    Bonjour Bertrand
    Un grand merci pour cette excellente vidéo, qui m'a permit de comprendre beaucoup de choses.
    Thierry

  • @equinoxxee
    @equinoxxee Před 4 lety

    Bonjour Bertrand et merci pour ta vidéo.
    J'ai commencé à programmer il y a 25 ans en assembleur sur les PIC et depuis je programme toujours en assembleur pour les choses pas trop compliqué sur les PIC.
    Je trouve que c'est un langage précis et prévisible.
    Sinon pour le projets plus ambitieux je programme en C

  • @claude60290
    @claude60290 Před 4 lety +3

    merci pour cette tres bonne video...que de souvenirs .....j ai fait un peu de langage assembleur sur 6502 il y a plusieurs dizaine d annees merci encore

    • @dominiquemoreau4270
      @dominiquemoreau4270 Před 4 lety +1

      Le CBM64 en était équipé :-)

    • @jean-louisbezombes7135
      @jean-louisbezombes7135 Před 4 lety +3

      Moi aussi j'ai programmé en l'assembleur sur 6502 .... en 1978 pour mon projet de fin détudes en BTS sur KIM1. En fait il n'y avait même pas d'assembleur, on programmait directement en Hexadécimal !

  • @claudetheroux3438
    @claudetheroux3438 Před 4 lety +1

    Bonjour! Merci tout ce contenu. Pour multiplier par 10, j'utilise la séquence suivante:
    MOV A,B ; B dans A
    RL A ; rotate A a gauche
    RL A ; rotate A a gauche
    ADD A,B ; ajouter B a A
    RL A ; rotate A => A = b * 10
    A la prochaine!

    •  Před 4 lety +1

      Oui, c'est bien, ça sauve une instruction. Comme quoi il y a souvent amélioration possible!

    • @cafebouazizi
      @cafebouazizi Před 4 lety

      mm, ceci me pousse à réfléchir "qu'aurait produit un compilateur " pour l'instruction haut niveau "resultat = A*B;" pour un processeur qui ne possède pas d'instructions de multiplication ?
      Aurait-il généré un code optimisé dont l'optimisation est basé sur une remarque comme vous le faite (sachant que ceci nécessite des testes supplémentaires), ou tout simplement il aurait généré bêtement une boucle d'addition successive de l'un des opérandes avec comme compteur de boule l'autre opérande.
      Merci Claude pour ta remarque, et merci Bertrand pour cette vidéo instructive et nostalgique (^^).

  • @mpm990
    @mpm990 Před 4 lety +3

    Et ben ! , enfin une vidéo qui m'explique clairement ce que c'est que l’assembleur . merci

  • @michellagarde5762
    @michellagarde5762 Před 4 lety

    Bravo, bravo et encore bravo pour cette vidéo. je me suis amusé à désassembler des EEPROM dans le but de les reprogrammer. C'est un excellent exercice pour comprendre comment le MCU ou le microprocesseur travaille et, se servir de certaines instructions pour rédiger des routines soi-même. j'espère que tu feras d'autres vidéos sur l'assembleur, notamment pour des routines qui se répètent dans des programmes différents les uns des autres. BRAVO

  • @pcdwarf4787
    @pcdwarf4787 Před 4 lety +5

    Je l'assembleur, j'en ai fait à l'école. (sur motorola 6811 et intel 251). Mais depuis j'ai toujours trouvé que gcc produisait de l'assembleur de qualité, très optimisé (bravo si vous faites mieux et sans bug/effets de bords) L’intérêt pour moi est essentiellement d'imaginer ce que fait le le compilateur pour avoir une idée du nombre de cycles correspondant à ce que j'écris.
    Bref, l'assembleur c'est intéressant de savoir que ça existe, d'en faire un peu à l'école et d'y jeter un oeil de temps à autre. Mais je n'ai jamais trouvé que ça convienne mieux à de la production que du code C
    Concernant la "propreté" l'argument n'est valable que tant qu'il s'agit d'une simple procédure.
    Pour la doc du atmega328, je la connais presque par coeur. (bien obligé) mais par contre, j'ai jamais fait une ligne d'assembleur sur ce micro.
    (a noter que je n'emploie pas les librairies arduino mais uniquement avr-gcc + make)

    • @dawnaur
      @dawnaur Před 4 lety +1

      Pourtant Bertrand à donné une des raisons: maîtriser des timings précis, ce qui est souvent nécessaire pour pas mal d'applications, et que l'on ne peut généralement pas obtenir en C.
      Biensûr, en réalité on n'utilise généralement qu'une section ASM dans du code en C. Et encore... j'ai encore vu sur des projets actuels des fichiers asm entiers, qui avaient une bonne raison d'être là.

    • @pcdwarf4787
      @pcdwarf4787 Před 4 lety +1

      @@dawnaur Et bien hors situation très spécifique, je pense qu'en général c'est le contraire. Que quasiment tout est faisable sans écrire une ligne d'assembleur. Autant c'est important de produire du code rapide, autant, il est extrêmement rare que j'ai besoin d'un timing si précis que le nombre exact de cycles d'horloge en devienne réellement important. Je n'ai encore jamais rencontré de cas où je soit réellement obligé de faire ça. Et quand j'ai cru l'être, j'ai toujours trouvé une astuce pour l'éviter.

    • @dawnaur
      @dawnaur Před 4 lety

      @@pcdwarf4787 Le contraire de quoi ? Je pense que vous avez mal compris mon commentaire.
      Ensuite oui, quasiment tout est faisable sans écrire une ligne d'assembleur. Personne n'a dit le contraire, mais ce qui importe ici, c'est le "quasiment".
      L'"astuce" n'est possible que quand ce n'est pas un vrai besoin, ou quand on a assez de marge en puissance de calcul pour se permettre de faire autrement, en gâchant des ressources.
      En dehors de ça, dans un milieu plus industriel, ça peut aussi être une façon de s'assurer d'une constance dans certains traitements, ce qui peut devenir important pour l'assurance qualité, ou même nécessaire en fonction du matériel autour du microcontrôleur.

    • @Frogger-ux1wl
      @Frogger-ux1wl Před 4 lety +4

      pour ma part l'assembleur c'etait fin années 80 debut 90. et sur les processeurs de l'époque tu etait bien obligé d'optimiser ton code. 😊 et puis comme dit dans la vidéo tu es tellement content lorsque tu trouve des astuces de programmation. comme détourner des zones mémoire ou des instruction et obtenir autre chose grace a ta créativité. et a l'epoque tu était dans ton coin avec des revues. pas de net. pas de tuto aussi accessible qu'aujourd'hui. une autre epoque. ARG chui vieux

    • @pcdwarf4787
      @pcdwarf4787 Před 4 lety +1

      @@dawnaur Le contraire de "souvent nécessaire pour pas mal d'applications, et que l'on ne peut généralement pas obtenir en C". Mais visiblement vous être d'accord sur le coté spécifique et surtout "limite de capacité".
      Disons qu'il n'y a pas tellement de marge entre pas faisable en C et pas faisable du tout.
      Sinon par "astuce" j'entendais un détournement de périphériques qui travaillent toujours parfaitement synchrones, comme par exemple le registre à décalage du SPI pour générer des signaux rapides.

  • @jean-marcservat6291
    @jean-marcservat6291 Před 4 lety +1

    Merci pour cette vidéo. Vieux souvenir du 6502... L’assembleur est très formateur... programmer à bas niveau nécessite du temps, mais le code résultant est court et très rapide... donc utile si on manque de ressources, c’est utile. Mais la loi de Moore fait que la ressource hardware coûte moins cher que le salaire du programmeur...

  • @bobo8354
    @bobo8354 Před 4 lety +1

    salut Bertrand, tu viens de me plonger dans de vieux souvenirs ou , a l’époque , je m’étais amusé a faire en "langage machine" pas en assembleur ( sur Z80) le même petit programme que je faisais en basic .
    Resultat : pour l’exécution de la même fonction :
    15 min en basic
    2 sec en langage machine.....
    je penses que ça se passe de tout comme,taire ^^
    Bonne continuation
    F1RIP

  • @crystalgayleaddict
    @crystalgayleaddict Před 4 lety +1

    Bonjour, ah oui l'assembleur ca rappele le bon vieux temps, et en effet c'est toujours de rigueur pour les micro-controleurs. Ca réveil ma passion pour la collection des vieux micros. Peut-être, probablement, connais tu la chaine " the 8 Bits Guy", je viens de découvrir par hasard ce projet (abouti) très enthousiasmant, the Gigatron TTL computer ! Un ordinateur 8 bits sans microprocesseur, tout en logique TTL! C'est CPU de type RISC, peut d'inscructions, mais ca semble assez rapide! J'ai écrit pour en commander un, ca vient des pays bas.

    •  Před 4 lety

      Je connais en effet 8-bit Guy et j'ai vu le Gigatron TTL. Il n'y a pas de CPU proprement dit, mais il y a tout de même un EPROM qui ajoute de l'intelligence et simplifie grandement le circuit.

    • @dawnaur
      @dawnaur Před 4 lety

      ça fait des années que je veux en commander un !

  • @etmoimeme
    @etmoimeme Před 4 lety +2

    Même si je suis content d'avoir appris à programmer en assembleur, et avoir fait quelques projets pro avec, je ne souhaite plus l'utiliser qu'en dernier recours : ce n'est pas portable, quasi impossible de travailler en équipe, super dur à maintenir et surtout (le plus gros point faible à mon avis) : peu réutilisable (car pas portable d'un micro à l'autre). Je tiens absolument à réutiliser le plus possible de code car un code réutilisé est un code déjà debuggué (ou en tout cas qui a moins de bugs qu'un code neuf)

  • @kaourantperennou8810
    @kaourantperennou8810 Před 4 lety +3

    Très enrichissant, merci. Comptez-vous faire une autre vidéo de ce type, si oui j'ai déjà hâte?

  • @benhur9624
    @benhur9624 Před 4 lety +1

    Passionnant ! J'aurais aimé voir quelques exemples d'instructions assembleur dans du C. 👍👍👍

  • @danielblaze4112
    @danielblaze4112 Před 4 lety

    Eh bien moi je n'ai jamais programmé en assembleur, je ne connais pas le langage machine mais j'apprécie votre vidéo !!

  • @Fred63B
    @Fred63B Před 4 lety

    Cela nous ramène quelques années en arrière, merci Bertrand

  • @dawnaur
    @dawnaur Před 4 lety +4

    Vidéo bien intéressante, que ce soit niveau explication comme illustration.
    D'ailleurs, un des autres exemples était cette fichue librairie TVout, qui était partiellement codée en assembleur justement pour maintenir des timings précis.
    Cependant, je ne suis pas vraiment d'accord sur le fait d'appeler le C un langage de haut niveau.
    S'il est plus haut niveau que l'assembleur (forcément), ça reste tout de même un des langages de plus bas niveau !

  • @koffiflaimoiye5276
    @koffiflaimoiye5276 Před 7 měsíci

    Merci beaucoup Monsieur.

  • @hadireg
    @hadireg Před 4 lety +1

    j'étais bon en assembleurs intel & motorola 8bit, qd j'ai fait du C ensuite c'était un jeu d'enfant surtout niveau pointeurs qui effrayaient bcp d'étudiants en Informatique. la belle époque... j'ai bcp amélioré ma compréhension en faisant du reverse engineering pour faire des générateurs de clés des sharewares qui m'intéressaient sans en faire de profits, pur plaisir de cracker la logique. pas nombreux de victimes de Java ont connu ça :p
    ah oui pour la maquette motorola, on devait entrer les instructions mnémo en leur code hexa, on retient mieux ainsi les instructions simple ou à plusieurs opérandes attendus

  • @cyrilv826
    @cyrilv826 Před 4 lety

    Salut très bonne vidéo et pou les personnes encore sceptique Bigonoff à fait un très beau cours gratuit sur la programmation des microcontrôleurs PIC en assembleur ;)

  • @thierryfournier3014
    @thierryfournier3014 Před 4 lety +16

    Il n'y a qu'un électronicien pour se rendre compte que le C est un langage de haut niveau ! Mes collègues amateur de Python et autre PHP ne sont pas d'accord :-)

    •  Před 4 lety +3

      Sempiternel futile débat!

    • @ggousier
      @ggousier Před 4 lety +3

      C'est l'approche aujourd'hui qui a changé. Et cela se comprend avec l'évolution du matériel. Avec les nouvelles architectures tu n'as plus vraiment besoin d'optimisation aux petits oignons. Tu ne travailles plus avec quelques ko ou Mo de mémoire mais avec des Go. Les problématiques ont également changé et se sont diversifiées. PHP c'est un langage serveur web et Python un couteau suisse. Un dev web par exemple aujourd'hui n'a plus besoin de connaître toutes les entrailles de sa machine. Les connaître et les comprendre sera toujours un plus mais pas une finalité pour lui.

    • @sebastienghangha3024
      @sebastienghangha3024 Před 4 lety

      sans même être électronicien (je consulte des datasheets pour comprendre le sens anode/cathode d'une led smd donc je suis une quille) ayant grandi avec un amiga 500 (68x POWAAAAAA ^^) je comprend que l'asm est le langage le plus proche de la machine (quoique le C était déjà répandu dans le monde Amiga), C rajoute une couche d'abstraction VS l'asm, python est bien largement plus haut niveau .. mais ... question de néophyte .... le cobol se situe ou ? de mon point de vue ayant travaillé jeune dans l'info j'ai croisé des "barbus" surtout dans le domaine bancaire .. c'est un langage "de bas niveau" mais sur une architecture particulière... je me trompe ? dans tous les cas merci à Électro-Bidouilleur de vulgariser l'électro/info

    • @jean-claudepoltro1432
      @jean-claudepoltro1432 Před 4 lety

      Le C : un langage moyen niveau :)

  • @toughcookie128
    @toughcookie128 Před 4 lety +1

    Ça me rappelle de bons souvenirs quand je programmais en assembleur 6502 avec mon apple II+ 48k de Ram. Pour économiser la mémoire il etait possible de cacher une nstruction à l'intérieur d'une autre instruction. Les premiers pas de l'optimisation! Aujourd'hui je programme en C#, la Cadillac des langages à mon humble avis. Pourquoi desassembler un programme? Aujourd'hui c'est totalement inutile jadis pour cracker des jeux 😉

  • @_hackwell
    @_hackwell Před 4 lety +1

    L'assembleur est aussi indispensable au bidouilleur qui fait un peu de reverse engineering et ça continuera encore longtemps :-) bon le code généré par le désassembleur est souvent assez compliqué à interpreter car il n'a pas été écrit par un humain mais généré par un compilateur C ou autre donc très fouillis. Mais on peut faire des choses assez bluffantes et en apprendre beaucoup.
    J'ai beaucoup plus souvent pris mon pied avec l'asm qu'avec d'autres langages :-)

  • @tootitoota
    @tootitoota Před 4 lety

    Pour ce qui est de l'assembleur, cela me rappelle mes études où j'obtimaisai du code source en prenant compte le temps de réponse des mémoires (registre, cachés, mémoires, mémoires virtuelles, ....) , les prédictions de branchement, et les réorganisations des instructions lorsque le microprocesseur était un superscalaire, à oui j'avais oublié le pipeline. Je précise que c'était sur des processeurs puissant du style Alpha, UltraSparc, Mips, ....
    Il est vrai que l'on gagné 30 à 40 % de temps de calcul.
    Mais le problème, est que dans ma branche actuel : le logiciel embarqué critiques, nous utilisons pas l'assembleur pour plusieurs choses :
    - le langage est trop lié au processeur et donc souvent la plateforme est choisi en même temps que l'écriture du code donc il nous faut un langage de haut pour que l'on puisse éxecuter les tests sur un PC.
    -Un autre grief aux langages d'assembleur est que l'on est toujours obligé d'utiliser des sauts et des branchements conditionnel ou pas. Or ceci rende le code illisible et on casse le flux de données. On appelle cela dans le jargon un code spaghetti. Et cela est interdit par les normes de développement des autorités. Donc on utilise pas le goto dans les langages de haut niveaux.
    - en dernier les optimisations des compilateurs actuel produise quand même un code machine assez bien optimisé

  •  Před 4 lety +1

    Pour être un peu original, je n'ai pas fait mes premiers pas en assembleur sur 6502, mais sur le Saturn 4 bits à 1MHz qui équipait la série de calculatrices HP48.
    J'avais développé un jeu de voitures à 2 joueurs et scrolling vertical, le tout en 4 niveaux de gris. L'efficacité du langage était telle qu'il était possible de faire clignoter l'écran assez vite pour simuler cela sur un simple écran noir et blanc.
    En ce temps-là, on savait rire!

    •  Před 4 lety +1

      Ma première programmation en ASM fut sur un microprocesseur de 1 bit! J'aurais dû mentionner cela dans la vidéo...

    •  Před 4 lety

      @ difficile à battre, je m'incline!

  • @user-yc1cu3ev5r
    @user-yc1cu3ev5r Před 3 lety

    Merci pour votre explication prof

  • @turbolenza35
    @turbolenza35 Před 4 lety

    Super vidéo !! J'ai toujours voulu voir une video comme ça sur l'assembleur

  • @jean-pierredesoza2340
    @jean-pierredesoza2340 Před 4 lety +1

    Pour ceux mis en appétit par cette belle présentation, mais qui ont plutôt un "background" 6502, je recommande la chaîne de Ben Eater. Il commence son exposé, avec une plaquette de connexion vide, avec le 6502 planté dessus, puis complète le circuit jusqu'a afficher, sur un afficheur LCD, le fameux "Hello, world!" au bout de 6 videos. Mais son astuce de génie, c'est de commencer par cabler en dur l'opcode du NOP sur le bus de données puis de suivre pas à pas la séquence de reset, le démarrage de la CPU. czcams.com/video/LnzuMJLZRdU/video.html

    •  Před 4 lety +1

      Oui, l'astuce du NOP câblé, c'est une excellente idée, aussi pour tester le bus d'adresse.

  • @aronmeren8558
    @aronmeren8558 Před rokem

    Splendide. Bonjour de Belgique. PS: A quand une intro/un cours de FORTH?

  • @dofeeeeee
    @dofeeeeee Před 4 lety

    Merci pour la vidéo, j'avais justement envie de programmer en ASM pour comprendre le fonctionnement des CPU, et pour répondre à 25:55, ce serait pour passer d'un jeu d'instruction à un autre pour avoir une compatibilité, meme si pas optimisé, comme pour faire tournée Linux sûr un processeur Risc-V, étant à ce que j'ai vus fait en partie d'assembleur, une optimisation peut être faite plus tard.

  • @abdel-hadikaddour8400
    @abdel-hadikaddour8400 Před 4 lety

    Excellent tutoriels, bravo , chapeau

  • @marccremon6295
    @marccremon6295 Před 4 lety +2

    très bonne présentation de l'assembleur , pour ma part j'ai débuté en programmant pour 8080 et 6800 en assembleur dans les années 70/80 , à l'époque j'avais l'habitude de programmer en basic, la différence de vitesse d'exécution était flagrante .
    Il est vrai que la programmation en assembleur est plus contraignante et longue mais lorsque on a contraintes de temps d'exécution , il faut se jeter dans le bain.Je ne sais pas si les rudiments de la programmation en assembleur sont enseignés aux étudiants.
    merci.

    • @laurentthommet8313
      @laurentthommet8313 Před 4 lety

      Pour répondre à votre question... Mes deux fils ont fait des études en informatique ( en France) et ils ont à peine effleuré le sujet... A priori par manque de temps... c'est dommage à mon avis.... Cordialement

    • @marccremon6295
      @marccremon6295 Před 4 lety

      merci pour votre réponse ,effectivement, c'est bien dommage car c'est la base du fonctionnement . Mais c'est devenu une règle , ne vous occupez pas de savoir comment ça fonctionne ......

    • @nasmRE
      @nasmRE Před 4 lety

      C'est en effet très triste on nous apprend un pseudo arm au lycée et en DUT, perso' j'essaye d'enseigner l'assembleur sur ma chaîne dans le but de l'orienter vers les domaines où elle est encore très utile : l'exploitation de binaires et le reverse engineering.

  • @streamCatcher007
    @streamCatcher007 Před 3 lety +1

    Merci pour votre vidéo !

  • @jean-claudepoltro1432
    @jean-claudepoltro1432 Před 4 lety +1

    Comment des langages comme C peut faire du code source pour pleins de type d'assembleur ? Ils ont appris chacune ? (Pour les PC)

    •  Před 4 lety

      Bien oui!

  • @patrickmaissa9075
    @patrickmaissa9075 Před 2 lety

    Excellent pour ma culture générale !
    mais ça dépasse très largement mes compétences... Je bidouille l'électronique sans utilisation des microcontrôleurs sans Arduino.... etc
    Peut-être un jour...
    pas pour l'instant, il me reste beaucoup à apprendre sur les bases des composants actifs et passifs et des possibilités qu'ils m'offrent.
    Merci pour la vidéo
    Cordialement
    Patrick

  • @electronlibre7544
    @electronlibre7544 Před 4 lety

    Salut Bertrand. Très bonne vidéo. Quand je commence à patauger dans un projet, quelques lignes ASM me sauvent.

  • @Electro_Mic
    @Electro_Mic Před 4 lety

    Bonsoir ou bonjour Électro-Bidouilleur.
    Si vous deviez reprendre tout à zéro, quel langage d'assembleur apprendriez-vous en premier ?
    Sur le même registre, connaissez-vous un livre pour débuter avec ce langage ?
    Avec plus de 37 000 abonnés, je me doute bien que vous ne pouvez pas répondre à tout le monde, mais je tente ma chance quand même.
    Vos vidéos me sont bien utiles, ceci dit je n'ai pas encore le niveau pour tout comprendre, j'en suis même très loin, c'est pour cette raison que d'apprendre un peu la programmation
    serait bien je pense, alors autant demander conseil à un professionnel.
    Merci pour votre chaine.
    Bonne continuation.

    •  Před 4 lety

      Pourquoi ne pas poser vos questions sur le forum Électro-Bidouilleur? 1100 inscrits qui peuvent répondre. En effet, je n'ai pas le temps pour répondre en longueur. Merci.

    • @Electro_Mic
      @Electro_Mic Před 4 lety

      @ : Bonsoir Électro-Bidouilleur, je viens de m'inscrire à l'instant.
      Mon inscription est en attente.
      Merci pour votre réponse.

  • @RealJacques
    @RealJacques Před 3 lety

    J’ai fait beaucoup de basic au début des années 80, le assembleur est toujours resté assez ésotérique pour moi. Merci pour tes explications.

  • @safsouf1
    @safsouf1 Před 3 lety

    De nos jours avec les micros un peu complexe par exemple à base de ARM. L'assembleur est intéressant pas pour le développement d'application, mais dans des cas pointus de débogages pour connaitre l'origine d'un Fault. Il peut aussi être utilisé pour des benchmarks pour optimiser des accès en vue de voir le comportement du cœur et des bus telle que AHB, AXI etc ..
    Dans mon cas, dans mon boulot, j'utilise l'assembleur pour les cas cités précédemment.

  • @kouassidonaldkonan7993
    @kouassidonaldkonan7993 Před 4 měsíci

    Bonjour monsieur . Peut-on avoir l'interface ide de programmation ?

  • @yvesmahieu794
    @yvesmahieu794 Před 4 lety

    Super didactique. Merci de ce partage de savoir.

  • @futurizonfr3368
    @futurizonfr3368 Před 4 lety

    L'assembleur est le langage le plus proche du langage machine et donc le plus puissant et le plus rapide par contre, même si il est très simple, il impose de réaliser des programmes très long. Perso j'ai commencé la programmation par l'assembleur sur Amiga 500+ et j'ai adoré.

  • @nailuj45
    @nailuj45 Před 4 lety

    pourquoi désassemblé du code assembleur ? car il son a la base de tout les driver sous windows et pas que, pour faire simple, pour chercher des faille dans des programme ou des protocole.

  • @patricegonnin5796
    @patricegonnin5796 Před 4 lety

    Bonjour,
    Après cette belle présentation du langage assembleur, pourquoi ne pas réaliser une petite bidouille avec un AY3-8912, histoire d'ajouter le son sur une carte microprocesseur?

    •  Před 4 lety +2

      Je fais déjà beaucoup de rétro.... Vous verrez d'ailleurs une vidéo sur le SP0256-AL2 bientôt.

  • @dbenoa753
    @dbenoa753 Před 2 lety +1

    J' ai écris un program (Pic16F) en assembleur qui à l'aide d'un comparateur devais lire a l'intérieur d'une ligne vidéo (ntsc) à un endroit précis. Un interupt étais géneré une ligne à l'avance.. Sur la ligne suivante à 4 endroit précis et selon le comparateur compter ou le signal vidéo était blanc (plus que .97 volt) la section de code qui comptait les positifs devaient le faire en 6 instructions avant de passer à la section suivante. Possible seulement en assembleur. Aujourd'hui on prendrait un micro plus rapide.

    • @etienneguyot9069
      @etienneguyot9069 Před 2 lety +1

      J'ai fait un truc du même genre sur un signal Secam, avec un 6802 histoire de recaler un retard pseudo aléatoire... D'autre utilisait un 68705P3... Motorola a frisé la rupture de stock à cette époque !

  • @ElectroLIB
    @ElectroLIB Před 4 lety

    Wow! excelent vidéo! merci!

  • @HOLLYWOODlosANGELES
    @HOLLYWOODlosANGELES Před 4 lety

    De bons rappels. Merci.

  • @marcrives279
    @marcrives279 Před 4 lety

    Si je retenais une chose, c’est la possibilité de faire des sous parties critiques d’un programme de haut niveau en assembleur.
    On a ainsi le meilleur des deux mondes, la maîtrise totale quand c’est indispensable, une programmation plus simple ailleurs.
    Une remarque toutefois, le C permet très bien de manipuler directement les registres du processeur, sans passer en assembleur.
    Conséquemment, j’ai utilisé la doc technique de l’ATMega328P à plusieurs reprises, sans jamais avoir écrit de langage machine.
    Enfin, Il ne faut pas négliger les progrès faits par les compilateurs (optimisation de la performance, taille du code).
    Sur Arduino, j’ai dû reprendre du code ancien, inchangé de quelques années (RFlink, pour ne pas le citer) ... parce qu’il bouclait 20% trop vite à présent!

    •  Před 4 lety +1

      Lorsque vous faites du C pour ne changer que les valeurs des registres, c'est de l'assembleur que vous faites! ;-)

  • @CaptainDangeax
    @CaptainDangeax Před 4 lety

    Je bricole un projet d'ordinateur 8 bits. Dessus, un PIC16F876 qui s'occupe des E/S : clavier et souris PS/2, port joystick et paddle. Je le programmerai en C parce que l'ASM microchip j'aime pas. Par contre, le processeur central c'est une Atmel AT89LP51 et lui je le programmerai en assembleur parce que c'est plus rapide et l'assembleur de ce microcontrôlleur est vraiment sympa et facile.

  • @nfrancoe
    @nfrancoe Před 2 lety +1

    Moi, la programmation assembleur, je préfère de beaucoup à la programmation haut niveau.... Quand le temps le permet...

  • @LASSAKRI-Abdelali
    @LASSAKRI-Abdelali Před 4 lety

    merci capitan...

  • @ericmez8050
    @ericmez8050 Před 4 lety

    salut, chapeau , belle présentation , simple complet :) merci

  • @fantv525
    @fantv525 Před rokem

    C'est crai que le code assembleur est très beau. Et puis certaines très grandes entreprises paieraient une fortune pour trouver une personne sachant coder en Assembleur pour modifier le driver d'un peripherique qu'ils utilisent depuis des dizaines d'années.

  • @alastavi9630
    @alastavi9630 Před 4 lety +1

    C'est beaucoup utilisé aussi en analyse de malware/virus.

  • @robinp.9886
    @robinp.9886 Před 4 lety

    Tout ça me rappelle les cours de bigonoff et la programmation des pics 16F84 pour les petits projets et les 16F877 pour ceux plus importants

  • @yesno6042
    @yesno6042 Před 3 lety

    MERCI !!

  • @christian0306
    @christian0306 Před 4 lety

    merci beaucoup

  • @erwanmizenver8153
    @erwanmizenver8153 Před 4 lety

    Ca me rappelle les années 80 où j'ai fait un peu d'assembleur sur DSP320C25.

  • @Friedrich13127
    @Friedrich13127 Před 3 lety

    Je l'ai appris gamin sur ZX81. Pas evident a saisir (en code Hexa sur cette machine), mais intéressant.

  • @kadirihalima1397
    @kadirihalima1397 Před 3 lety

    Ecrire un programme permettant d’effectuer l’addition de deux nombres de 16 bits :
    (0x0CDE, 0x3B85)?!?!!

  • @Photoss73
    @Photoss73 Před 4 lety

    Sur PC à 8MHz (vers 1990) on avait une carte convertisseur A/D (bus ISA) mais remplacer en (Borland) C sous (MS)DOS les accès I/O (inp out) par l'équivalent en assembleur n'avait rien apporté en gain de vitesse d'éxécution, ça devait être codé de façon optimale une fois compilé, rien à gagner, trop direct comme accès.

  • @alhannboulai3035
    @alhannboulai3035 Před 11 měsíci

    Bertrand ton programme assembler pour la variation d'intensité de ta led de manière cyclique est fausse, je l'ai recopier sur MPLABX je n'obtient que des erreur de syntaxe et des symbole non définie par le compilateur

    •  Před 11 měsíci

      Vous l'avez vu dans ma vidéo, il fonctionne. Tâchez de comprendre pourquoi il y a des erreurs de votre côté.

  • @fouadnano
    @fouadnano Před 4 lety

    esq peut convertire de langage machine a l'assembleur avec un logiciel

    •  Před 4 lety

      Oui, et comme mentionné dans la vidéo, cela s'appelle un désassembleur.

  • @NumeroUndeuxTrois
    @NumeroUndeuxTrois Před 4 lety +1

    Il faut arrêter cette légende urbaine qui dit que l'asm est difficile à apprendre. J'ai écrit mon premier programme asm en moins d'une semaine (un base 64). Je trouve l'asm beaucoup plus simple à apprendre que le c++ par exemple.

    •  Před 4 lety

      La perception de difficulté d'apprentissage vient du fait que le nombre d'instruction est limité, et donc que c'est plus pénible de produire des actions complexes.

  • @marcellaporey3306
    @marcellaporey3306 Před 2 lety

    Il y a quelque décennies, j'ai désassembler dans un but de cracker des clés de sécurité et autre...

    • @marcellaporey3306
      @marcellaporey3306 Před 2 lety

      Sur PC les interruptions pour Contrôler les accès aux périph I/O.
      Et même la gestion des commerciaux cher AXA Assurance France sur de gros IBM, Que de souvenir avec ce langage de légende .

  • @cedricschopfer1797
    @cedricschopfer1797 Před 4 lety

    Je programme essentiellement en c, mais l’assembleur c’est la base. C’est juste une obligation pour faire de l’optimisation de code.
    Et aussi pour bien comprendre comment fonctionne le processeur

    • @Kannagichan
      @Kannagichan Před 4 lety

      Bah un compilo C pourra aussi bien optimisé que de l'asm ;)
      (surtout qu'un optimisation sur certain processeur est difficile à évaluer).
      Sinon c'est un peu faux de dire "pour bien comprendre comment fonctionne le processeur" , si par exemple on prend le x86 , la façon de comment tu le programme et de comment il fonctionne est totalement différent.
      Le x86 se programme comme beau papa en 1980 , alors qu'un proc actuelle n'a plus rien à voir , en gros les proc actuelle ont une pipeline , sont superscalaire , font du renommage de registre , mémoire cache etc etc , bref plein de truc "invisible " pour le programmeur ,pour ça que meltdown et spectre sont apparu que 20 ans plus tard de leur apparition des premier sPentium , parce qu'un programmeur assembleur ne sait pas comment fonctionne son proc , il pense naturellement que le x86 fonctionne comme avant ,combien de fois j'ai lu "combien fait de cycle tel instruction" , n'ayant aucun sens sur un proc moderne cette question :)
      Les seul proco qui ne cache pas le fonctionnement interne du processeur , il y'en a deux principalement Itanium et le CELL , si tu programme sur ces deux processeurs , là oui tu pourra dire que l'asm t'apprend à comment fonctionne un processeur moderne , sinon non ;)

  • @seblid
    @seblid Před 4 lety

    c'est se plonger dans les entrailles des processeurs et comprendre comment sa marche vraiment

  • @francoisp3625
    @francoisp3625 Před 4 lety

    9:18 ligne 216 - fail d indentation :) bons et mauvais souvenir sur 6502 et 6509

  • @MrAnelos
    @MrAnelos Před 4 lety

    dès le début j'ai tiqué sur l'assembleur un langage non optimisé

  • @dlaurent67
    @dlaurent67 Před 4 lety +1

    Et oui les premiers avec Z80, Intel 8086...

  • @philtoa334
    @philtoa334 Před 4 lety

    sympa.

  • @AnTon1_LeBouze
    @AnTon1_LeBouze Před 4 lety

    Que de Souvenirs, sur le Z80, 6809, 8051,....

  • @micheljosephhoude1319
    @micheljosephhoude1319 Před 4 lety

    Ah les bons vieux goto !

  • @bsofiane8639
    @bsofiane8639 Před 4 lety

    FIiiiRRrrsst!!!!!...j'ai tjs rêvé de faire ça...😅...pouce 👎👎 évidemment (inutile de me remercier)🙃😵😁

  • @AngusBox
    @AngusBox Před 4 lety

    L'assembleur "pas optimisé" et "pas efficace"??? 😂 C'est sûr que pour faire une interface graphique haut niveau ce n'est pas efficace en terme de ratio temps/fonction.

  • @nasmRE
    @nasmRE Před 4 lety

    Bah ouai c'est cool l'asm

  • @samva1512
    @samva1512 Před 4 lety

    C'est là que se trouve la limite entre un électronicien et un informaticien...

  • @aronmeren8558
    @aronmeren8558 Před rokem

    Voyez MENUET OS: un OS écrit ENTIEREMENT en assembleur !!!

  • @Silicium0168
    @Silicium0168 Před 4 lety

    je m'en rappel encore et cela me serre de passerelle...

  • @alilichelarbi8569
    @alilichelarbi8569 Před 4 lety

    6502 Z80 8086

  • @fabientuizat1129
    @fabientuizat1129 Před 4 lety

    le nop perd le temps pour etre a l heure poete que oui

  • @YanickT
    @YanickT Před 4 lety +1

    www.instructables.com/id/GPSDO-YT-10-Mhz-Lcd-2x16-With-LED/ Fait par moi même le tout en assembler :)

    • @magnetiseur77
      @magnetiseur77 Před 4 lety

      Beau travail yannick ! Mon collègue a fait à peu près la même chose pour un fréquencemètre, avec une précision, après divisions de 8Hz max @ 450MHz On en a vendu des centaines, mais c'était en 2006...

    • @YanickT
      @YanickT Před 4 lety

      LeChat hervé c’est ça mon problème à moi. J’ai du talent pour inventer mais pas pour rentabiliser mes trucs ;) Bravo a vous.

  • @musagainstnos
    @musagainstnos Před 4 lety

    Merci !