EB_

แชร์
ฝัง

ความคิดเห็น • 139

  • @renelefebvre53
    @renelefebvre53 4 ปีที่แล้ว +2

    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 !

  • @laurentthommet8313
    @laurentthommet8313 4 ปีที่แล้ว +15

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

  • @denistauvel514
    @denistauvel514 4 ปีที่แล้ว +3

    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.

  • @eolienelec8405
    @eolienelec8405 4 ปีที่แล้ว +1

    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.

  • @jclm8049
    @jclm8049 4 ปีที่แล้ว

    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.

  • @etienneguyot9069
    @etienneguyot9069 4 ปีที่แล้ว +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...)

  • @francoisbasquin6974
    @francoisbasquin6974 4 ปีที่แล้ว +2

    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!!

  • @dominiquemoreau4270
    @dominiquemoreau4270 4 ปีที่แล้ว +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 !

  • @patricegonnin5796
    @patricegonnin5796 4 ปีที่แล้ว

    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.

  • @claudetheroux3438
    @claudetheroux3438 4 ปีที่แล้ว +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!

    •  4 ปีที่แล้ว +1

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

    • @cafebouazizi
      @cafebouazizi 4 ปีที่แล้ว

      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 (^^).

  • @petimorillo
    @petimorillo 4 ปีที่แล้ว +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.

  • @jopi7401
    @jopi7401 4 ปีที่แล้ว +3

    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.

  • @sfecardio3721
    @sfecardio3721 4 ปีที่แล้ว +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...

    •  4 ปีที่แล้ว

      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 4 ปีที่แล้ว

      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).

  • @bardoubruno498
    @bardoubruno498 4 ปีที่แล้ว

    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 !!!!!!

  • @equinoxxee
    @equinoxxee 4 ปีที่แล้ว

    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

  • @thierrysauvage562
    @thierrysauvage562 4 ปีที่แล้ว +1

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

  • @bipbip6523
    @bipbip6523 4 ปีที่แล้ว +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+

  • @jfmahe1407
    @jfmahe1407 4 ปีที่แล้ว +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.

  • @yveslesage8525
    @yveslesage8525 4 ปีที่แล้ว +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 !

    •  4 ปีที่แล้ว +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! ;-))

  • @michellagarde5762
    @michellagarde5762 4 ปีที่แล้ว

    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

  • @Frogger-ux1wl
    @Frogger-ux1wl 4 ปีที่แล้ว +4

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

  • @etmoimeme
    @etmoimeme 4 ปีที่แล้ว +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)

  • @mpm990
    @mpm990 4 ปีที่แล้ว +3

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

  • @claude60290
    @claude60290 4 ปีที่แล้ว +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 4 ปีที่แล้ว +1

      Le CBM64 en était équipé :-)

    • @jean-louisbezombes7135
      @jean-louisbezombes7135 4 ปีที่แล้ว +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 !

  • @jean-marcservat6291
    @jean-marcservat6291 4 ปีที่แล้ว +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...

  • @danielblaze4112
    @danielblaze4112 4 ปีที่แล้ว

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

  • @tootitoota
    @tootitoota 4 ปีที่แล้ว

    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é

  • @crystalgayleaddict
    @crystalgayleaddict 4 ปีที่แล้ว +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.

    •  4 ปีที่แล้ว

      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 4 ปีที่แล้ว

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

  • @hadireg
    @hadireg 4 ปีที่แล้ว +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

  • @Fred63B
    @Fred63B 4 ปีที่แล้ว

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

  • @pcdwarf4787
    @pcdwarf4787 4 ปีที่แล้ว +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 4 ปีที่แล้ว +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 4 ปีที่แล้ว +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 4 ปีที่แล้ว

      @@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 4 ปีที่แล้ว +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 4 ปีที่แล้ว +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.

  • @dofeeeeee
    @dofeeeeee 4 ปีที่แล้ว

    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.

  • @bobo8354
    @bobo8354 4 ปีที่แล้ว +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

  • @kaourantperennou8810
    @kaourantperennou8810 4 ปีที่แล้ว +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 4 ปีที่แล้ว +1

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

  • @safsouf1
    @safsouf1 3 ปีที่แล้ว

    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.

  •  4 ปีที่แล้ว +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!

    •  4 ปีที่แล้ว +1

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

    •  4 ปีที่แล้ว

      @ difficile à battre, je m'incline!

  • @jean-claudepoltro1432
    @jean-claudepoltro1432 4 ปีที่แล้ว +1

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

    •  4 ปีที่แล้ว

      Bien oui!

  • @cyrilv826
    @cyrilv826 4 ปีที่แล้ว

    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 4 ปีที่แล้ว +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 :-)

    •  4 ปีที่แล้ว +3

      Sempiternel futile débat!

    • @ggousier
      @ggousier 4 ปีที่แล้ว +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 4 ปีที่แล้ว

      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 4 ปีที่แล้ว

      Le C : un langage moyen niveau :)

  • @toughcookie128
    @toughcookie128 4 ปีที่แล้ว +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 4 ปีที่แล้ว +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 :-)

  • @jean-pierredesoza2340
    @jean-pierredesoza2340 4 ปีที่แล้ว +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. th-cam.com/video/LnzuMJLZRdU/w-d-xo.html

    •  4 ปีที่แล้ว +1

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

  • @futurizonfr3368
    @futurizonfr3368 4 ปีที่แล้ว

    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é.

  • @kouassidonaldkonan7993
    @kouassidonaldkonan7993 7 หลายเดือนก่อน

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

  • @turbolenza35
    @turbolenza35 4 ปีที่แล้ว

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

  • @patrickmaissa9075
    @patrickmaissa9075 3 ปีที่แล้ว

    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

  • @abdel-hadikaddour8400
    @abdel-hadikaddour8400 4 ปีที่แล้ว

    Excellent tutoriels, bravo , chapeau

  • @marccremon6295
    @marccremon6295 4 ปีที่แล้ว +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 4 ปีที่แล้ว

      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 4 ปีที่แล้ว

      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 4 ปีที่แล้ว

      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.

  • @patricegonnin5796
    @patricegonnin5796 4 ปีที่แล้ว

    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?

    •  4 ปีที่แล้ว +2

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

  • @aronmeren8558
    @aronmeren8558 ปีที่แล้ว

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

  • @marcrives279
    @marcrives279 4 ปีที่แล้ว

    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!

    •  4 ปีที่แล้ว +1

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

  • @dbenoa753
    @dbenoa753 3 ปีที่แล้ว +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 2 ปีที่แล้ว +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 !

  • @koffiflaimoiye5276
    @koffiflaimoiye5276 11 หลายเดือนก่อน

    Merci beaucoup Monsieur.

  • @المعرفةللجميع-ض5ل
    @المعرفةللجميع-ض5ل 3 ปีที่แล้ว

    Merci pour votre explication prof

  • @nailuj45
    @nailuj45 4 ปีที่แล้ว

    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.

  • @CaptainDangeax
    @CaptainDangeax 4 ปีที่แล้ว

    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.

  • @dawnaur
    @dawnaur 4 ปีที่แล้ว +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 !

  • @RealJacques
    @RealJacques 4 ปีที่แล้ว

    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.

  • @electronlibre7544
    @electronlibre7544 4 ปีที่แล้ว

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

  • @yvesmahieu794
    @yvesmahieu794 4 ปีที่แล้ว

    Super didactique. Merci de ce partage de savoir.

  • @fouadnano
    @fouadnano 4 ปีที่แล้ว

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

    •  4 ปีที่แล้ว

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

  • @fantv525
    @fantv525 2 ปีที่แล้ว

    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.

  • @Electro_Mic
    @Electro_Mic 4 ปีที่แล้ว

    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.

    •  4 ปีที่แล้ว

      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 4 ปีที่แล้ว

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

  • @robinp.9886
    @robinp.9886 4 ปีที่แล้ว

    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

  • @nfrancoe
    @nfrancoe 2 ปีที่แล้ว +1

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

  • @Friedrich13127
    @Friedrich13127 4 ปีที่แล้ว

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

  • @alastavi9630
    @alastavi9630 4 ปีที่แล้ว +1

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

  • @Photoss73
    @Photoss73 4 ปีที่แล้ว

    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.

  • @ericmez8050
    @ericmez8050 4 ปีที่แล้ว

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

  • @Sarasa34
    @Sarasa34 4 ปีที่แล้ว

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

  • @erwanmizenver8153
    @erwanmizenver8153 4 ปีที่แล้ว

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

  • @francoisp3625
    @francoisp3625 4 ปีที่แล้ว

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

  • @cedricschopfer1797
    @cedricschopfer1797 4 ปีที่แล้ว

    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 4 ปีที่แล้ว

      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 ;)

  • @ElectroLIB
    @ElectroLIB 4 ปีที่แล้ว

    Wow! excelent vidéo! merci!

  • @marcellaporey3306
    @marcellaporey3306 2 ปีที่แล้ว

    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 2 ปีที่แล้ว

      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 .

  • @HOLLYWOODlosANGELES
    @HOLLYWOODlosANGELES 4 ปีที่แล้ว

    De bons rappels. Merci.

  • @TiberioFERNANDEZ
    @TiberioFERNANDEZ หลายเดือนก่อน

    Bravo ! merci

  • @AnTon1_LeBouze
    @AnTon1_LeBouze 4 ปีที่แล้ว

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

  • @seblid
    @seblid 4 ปีที่แล้ว

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

  • @LASSAKRI-Abdelali
    @LASSAKRI-Abdelali 4 ปีที่แล้ว

    merci capitan...

  • @alhannboulai3035
    @alhannboulai3035 ปีที่แล้ว

    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

    •  ปีที่แล้ว

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

  • @MrAnelos
    @MrAnelos 4 ปีที่แล้ว

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

  • @dlaurent67
    @dlaurent67 4 ปีที่แล้ว +1

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

  • @christian0306
    @christian0306 4 ปีที่แล้ว

    merci beaucoup

  • @bsofiane8639
    @bsofiane8639 4 ปีที่แล้ว

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

  • @yesno6042
    @yesno6042 3 ปีที่แล้ว

    MERCI !!

  • @NumeroUndeuxTrois
    @NumeroUndeuxTrois 4 ปีที่แล้ว +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.

    •  4 ปีที่แล้ว

      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.

  • @musagainstnos
    @musagainstnos 4 ปีที่แล้ว

    Merci !

  • @aronmeren8558
    @aronmeren8558 ปีที่แล้ว

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

  • @samva1512
    @samva1512 4 ปีที่แล้ว

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

  • @micheljosephhoude1319
    @micheljosephhoude1319 4 ปีที่แล้ว

    Ah les bons vieux goto !

  • @Silicium0168
    @Silicium0168 4 ปีที่แล้ว

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

  • @nasmRE
    @nasmRE 4 ปีที่แล้ว

    Bah ouai c'est cool l'asm

  • @philtoa334
    @philtoa334 4 ปีที่แล้ว

    sympa.

  • @AngusBox
    @AngusBox 4 ปีที่แล้ว

    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.

  • @alilichelarbi8569
    @alilichelarbi8569 4 ปีที่แล้ว

    6502 Z80 8086

  • @fabientuizat1129
    @fabientuizat1129 4 ปีที่แล้ว

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

  • @YanickT
    @YanickT 4 ปีที่แล้ว +1

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

    • @magnetiseur77
      @magnetiseur77 4 ปีที่แล้ว

      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 4 ปีที่แล้ว

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