Partage
  • Partager sur Facebook
  • Partager sur Twitter

langage binaire du CPU

    21 septembre 2021 à 15:59:53

    Bonjour,

    Je voudrais savoir comment connaitre le langage machine d'un CPU spécifique ?

    Puis si il était possible d'écrire directement un code en binaire, sans passé par un langage de plus au niveau, même pas l'ASM.

    • Partager sur Facebook
    • Partager sur Twitter
      21 septembre 2021 à 16:48:47

      En regardant la doc dudit  CPU (et encore, si celle-ci fournit l'opcode correspondant à l'instruction assembleur)

      Ecrire en binaire oui c'est possible mais fastidieux (surtout pour le débogage ensuite ou pour l'ajout de fonction parce qu'il faut retrouver ces petits et recalculer les adresses (des variables, des fonctions, des branchements, ...))

      Sachant que pour charger ce binaire, il faut le mettre dans fichier selon un certain format qui dépend du programmateur (format HEX (intel) https://fr.wikipedia.org/wiki/HEX_(Intel)  ou S-code (Motorola) https://fr.wikipedia.org/wiki/S-Record  par exemple)

      • Partager sur Facebook
      • Partager sur Twitter
        21 septembre 2021 à 18:44:49

        On n'est pas obligé d'utiliser HEX ou S-code.
        On peut tout simplement écrire du code dans un éditeur hexadécimal.

        Après c'est un peu faux de dire qu'on ne fait pas d'asm , on n'en fait toujours , sauf que tu vas assembler le code à la main.
        • Partager sur Facebook
        • Partager sur Twitter
          21 septembre 2021 à 21:19:39

          Merci pour vos réponses.

          Vous n'auriez pas un tutoriel sur le sujet à me conseillé ?

          • Partager sur Facebook
          • Partager sur Twitter
            22 septembre 2021 à 6:54:42

            Tu veux qu'on te conseille de coder directement en binaire? On n'est pas si sadique que ça!
            Le premier ordinateur sur lequel j'ai travaillé avait un panneau d'interupteurs.
            12 lignes et 12 colonnes, pour 12 instructions de 12 bits.
            C'était censé charger en mémoire le premier bloc d'une bande magnétique.
            Tu veux retourner à cette époque?

            edit: Voici un petit texte sur le Zylog Z80 sur lequel j'ai travaillé en assembleur:
            http://jgmalcolm.com/z80/opcodes/opcodes

            -
            Edité par PierrotLeFou 22 septembre 2021 à 7:02:33

            • Partager sur Facebook
            • Partager sur Twitter

            Le Tout est souvent plus grand que la somme de ses parties.

              22 septembre 2021 à 8:29:27

              Bernard lagoutte a écrit:

              Merci pour vos réponses.

              Vous n'auriez pas un tutoriel sur le sujet à me conseillé ?


              Je trouve ça complètement idiot ,non tu n'aura aucun tutoriel sur comment codé en binaire parce qu'il n'y aurais aucun intérêt d'en faire un.

              Mais ça demande aucun tuto si tu sais comment ça fonctionne ,donc je te conseille de coder en assembleur ,quand tu saura comment ça fonctionne , ben passer en langage binaire sera un jeu d'enfant.

              -
              Edité par HelbaSama 22 septembre 2021 à 8:31:31

              • Partager sur Facebook
              • Partager sur Twitter
                22 septembre 2021 à 11:10:35

                au pire, prend la doc de programmation assembleur du CPU que tu veux utiliser. Comme dit par les autres, tu passeras forcément par l'assembleur avant de traduire en binaire
                • Partager sur Facebook
                • Partager sur Twitter
                  23 septembre 2021 à 1:54:08

                  Ça existe encore des PROM programmer?
                  Tu as un circuit logique où tu inscrit l'adresse en binaire avec des switch, et un autre pour la valeur.
                  Tu fais un survoltage et ça s'écrit. Facile, non?
                  Ça te prend 32 switch pour 4 Go et 8 switch pour la donnée d'un octet.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Le Tout est souvent plus grand que la somme de ses parties.

                    23 septembre 2021 à 7:41:18

                    PierrotLeFou a écrit:

                    Ça existe encore des PROM programmer?
                    Tu as un circuit logique où tu inscrit l'adresse en binaire avec des switch, et un autre pour la valeur.
                    Tu fais un survoltage et ça s'écrit. Facile, non?
                    Ça te prend 32 switch pour 4 Go et 8 switch pour la donnée d'un octet.


                    c'est un peu s'emmerder pour rien  ,un éditeur hexa , c'est gratuit et super léger.

                    -
                    Edité par HelbaSama 23 septembre 2021 à 7:43:17

                    • Partager sur Facebook
                    • Partager sur Twitter
                      23 septembre 2021 à 15:50:26

                      Salut , je pense qu'il inutile de se prendre la tête avec le binaire qui veut dire 0 : éteint 1: allumé ,  ça concerne l'état du courent électrique au sein d'un circuit électrique numérique ou normal (sache que ton processeur fonctionne avec des millions ou milliards de transistors dont la passe du courent est contrôlé ) .

                      L'humain doit se focaliser sur l'assembleur et un langage humain de bas niveau de préférence.

                      Voila ^^

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Alexandre S.

                      Depuis Lyon 3eme et/ou 7eme

                        23 septembre 2021 à 17:21:21

                        L'utilisation d'un PROM programmer était une satire ...
                        Si ça existe encore, c'est contrôlé par un ordinateur. On ne fait plus ça à la main.
                        Pour sa culture personnelle, ce n'est pas mauvais d'apprendre l'assembleur.
                        Mais on ne peut pas vraiment penser à faire des projets importants en assembleur.
                        Pour en avoir largement "abusé" dans le passé, je ne le recommande pas.
                        Ça donne quoi d'avoir du code super efficace .... mais qui ne marche pas.
                        Et tu prends deux ans pour mettre ton projet au point, alors que tu aurais pu le faire en deux semaines dans un langage évolué.
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Le Tout est souvent plus grand que la somme de ses parties.

                          23 septembre 2021 à 18:04:58

                          AlexandreSylvestre69 a écrit:

                          Salut , je pense qu'il inutile de se prendre la tête avec le binaire qui veut dire 0 : éteint 1: allumé ,  ça concerne l'état du courent électrique au sein d'un circuit électrique numérique ou normal (sache que ton processeur fonctionne avec des millions ou milliards de transistors dont la passe du courent est contrôlé ) .

                          L'humain doit se focaliser sur l'assembleur et un langage humain de bas niveau de préférence.

                          Non mais , tout le monde est d'accord là dessus , mais c'est le PO qu'il faut convaincre ;)

                          Après si tu fais du bas niveau , tu vas devoir sur certain CPU te concentrer sur la micro architecture sous adjacente ,si tu veux tirer de meilleurs perfs.

                          • Partager sur Facebook
                          • Partager sur Twitter
                            24 septembre 2021 à 5:37:57

                            Bonjour,

                            Je suis d'accord avec toi , avec le bas niveau , tu dois compiler pour chaque OS et différente architectures (Intel, AMD , ARM, Puce M1 Silicon et oui ^^ , les dev ont du pain sur la planche avec Apple^^) .

                            De plus , il est inutile de comprendre comment se passe le passage d'assembleur a binaire , car les fabricants de processeur ont "un secret de fabrication" sinon tout le monde se ferait un petit labo dans son garage et feront leur puce CPU ^^

                            @HelbaSama


                            Bonne journée à vous .



                            • Partager sur Facebook
                            • Partager sur Twitter

                            Alexandre S.

                            Depuis Lyon 3eme et/ou 7eme

                              24 septembre 2021 à 7:08:08

                              > De plus , il est inutile de comprendre comment se passe le passage d'assembleur a binaire , car les fabricants de processeur ont "un secret de fabrication"
                              Entre comprendre le passage entre l'assembleur et le binaire, et la fabrication d'une puce, il y a tout un univers ...
                              Si mon instruction pour additionner est ADD, si mon assembleur peut le reconnaître, il peut écrire le code binaire correspondant dans le fichier objet.
                              Bien sûr, je simplifie pas mal ...
                              Il faut tenir compte des codes, des registres, de la relocalisation, des adresses des données, etc.
                              Mais écrire un assembleur, ça n'est pas si sorcier que ça.
                              On pourrait l'écrire en C, C++, Python, etc.
                              Dès que tu peux écrire du binaire dans un fichier, tu pourras coder ton assembleur.
                              Un assembleur nécessite généralement de passer deux fois à travers le code à convertir, avec ou sans macro generator.
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Le Tout est souvent plus grand que la somme de ses parties.

                                24 septembre 2021 à 7:20:30

                                AlexandreSylvestre69 a écrit:

                                De plus , il est inutile de comprendre comment se passe le passage d'assembleur a binaire , car les fabricants de processeur ont "un secret de fabrication" sinon tout le monde se ferait un petit labo dans son garage et feront leur puce CPU ^^

                                Alors passé de l'assembleur au code binaire ne demande aucun "secret de fabrication" , vu que ça demande juste de lire la doc !

                                Si tu parle d'un point de vue d'une puce réel , le décodage n'est pas une partie ultra complexe (sauf pour le x86 ),  et comparé a ceux que tu peux croire oui , y'a des gens qui font leur propre puce (souvent en RISC-V) surtout depuis la démocratisation des FPGA.
                                Il y'a des secret de fabrications  mais elle tourne surtout autour de l’implémentation et d'optimisations en général.

                                -
                                Edité par HelbaSama 24 septembre 2021 à 7:20:50

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  24 septembre 2021 à 7:30:18

                                  Il ne s'agit pas ici de construire son propre Intel I7 8086K. Là il y a des secrets de fabrication.
                                  Le plus drôle est que c'est plus compliqué d'écrire un "désassembleur" qu'un assembleur.
                                  On peut même écrire un émulateur qui "fait semblant" d'être le processeur où est censé s'exécuter le programme.
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Le Tout est souvent plus grand que la somme de ses parties.

                                    25 septembre 2021 à 18:32:11

                                    Merci à tous pour vos réponses.

                                    Je voulais juste coder un petit programme comme affiché 'Hello world' par curiosité en binaire sur plusieurs machine(prcocesseur) comme sur pc (windows et linux 32-64 bits), téléphone android et même sur ps4 et ainsi voir en détaille comment tous ça fonctionne.

                                    Si vous avez des tuto/ conseille pour le langage assembleur qui pourrais me permettre de faire cela n'hésitez pas. 

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      25 septembre 2021 à 18:36:35

                                      Tu sera alors relativement déçu , vu que dans quasiment tous ces cas de figures ,tu vas devoir faire appel à des fonctions écrites en C (sauf sur Linux ou tu vas devoir utilisé un syscall  ).

                                      -
                                      Edité par HelbaSama 25 septembre 2021 à 18:38:04

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        26 septembre 2021 à 8:41:30

                                        Et puis il n'y a pas que le binaire du code, il va falloir l'emballer dans un fichier exécutable au format attendu par le système qui va lancer le programme.

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          26 septembre 2021 à 13:08:23

                                          Exact ,je voulais le préciser , mais bon ,je pense que c'est assez inutile vu les bases que semble le PO dans le domaine , surtout qu'il est à mon sens plus complexe de faire un format PE ou ELF en binaire que d'afficher un hello wolrd ^^'
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            26 septembre 2021 à 18:50:41

                                            Salut,

                                            En fait le binaire c'est une abstraction du domaine électronique numérique .

                                            C'est l’état d'un courent d'un circuit .

                                            Par exemple , l'interrupteur de ta chambre de repos à la maison  = 0 donc éteint : pas de lumière

                                            Si 1 : lumière allumé .

                                            Avec les 0 et les 1 , on gère des courants au sein des millions de transistors de ton processeur .

                                            Il faut un microscope chronique qui peuvent voir au niveau "micron" pour voir les transistors microscopiques du CPU . 

                                            Merci. Et le binaire est en base 2 donc 2 valeurs son possibles .

                                            La base 10 = [0-9]

                                            La base octale = 8 valeurs

                                            La base 16 = hexadécimale

                                            • Partager sur Facebook
                                            • Partager sur Twitter

                                            Alexandre S.

                                            Depuis Lyon 3eme et/ou 7eme

                                              26 septembre 2021 à 18:58:31

                                              Bon on peut dire que tu es complètement hors sujet , sa question initiale est simple , comment codé en binaire ?
                                              Et la réponse est avec un éditeur hexadécimal.

                                              Je pense que tout le monde à compris ici que 0 et 1 n'est qu'une représentation du courant electrique , de même que tout le monde sait (je pense) qu'on a des millions de transistor sur nos CPU (même si plus des milliards maintenant mais bref).
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                26 septembre 2021 à 19:11:00

                                                1,$s/courant/tension/g 

                                                :-)

                                                -
                                                Edité par michelbillaud 26 septembre 2021 à 19:11:18

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  27 septembre 2021 à 5:44:13

                                                  Donc pour conclure en revenant dans le sujet  ça sert à rien de "psychoter" de vouloir coder en binaire . C'est un langage humain de bas niveau de préférence qu'il faut utiliser .

                                                  Écrire un programme entier en binaire , c'est inestimable le temps que tu passeras dessus .

                                                  Merci , j'aimerais que ce sujet soit clôturé , on tourne autour du "vase".

                                                  Et ton éditeur hexadécimal , il va juste convertir la base 16 en base 2 , donc je suis pas si hors sujet que ça .

                                                  et les lettres de l'hexadécimal représente des chiffres .

                                                  Je viens de regarder , des images d’éditeurs hexadécimal , je t'en confère que ça reste encore très incompréhensible pour un être humain .

                                                  Quand j'étais en seconde Systèmes électroniques numériques . On apprenais a convertir du binaire en hexadécimal avec une calculette scientifique uniquement . Pour moi ça change pas grand chose , tu switches d'une base à l'autre en fait en ayant des lettres en plus pour la base 16 .

                                                  -
                                                  Edité par AlexandreSylvestre69 27 septembre 2021 à 6:02:13

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter

                                                  Alexandre S.

                                                  Depuis Lyon 3eme et/ou 7eme

                                                    27 septembre 2021 à 7:14:27

                                                    La conversion hexa /  binaire ça se fait de tête dès qu'on a compris qu'un chiffre hexa code 4 bits.

                                                    Mais c'est pas la question. Pour résumer, Programmer en binaire, c'est possible, mais c'est beaucoup de travail et ça n'a aucun intérêt.

                                                    Ai fait ça il y a très longtemps dans mes études avec des kits de développement sc/mp et 8085 où on entrait en hexa le code qu'on ecrivait et assemblait avec papier et crayon (et gomme).

                                                    Ps on n'est plus à l'échelle du micron pour les circuits. La dizaine de nanos, 100 fois plus petit.

                                                    -
                                                    Edité par michelbillaud 27 septembre 2021 à 7:54:59

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      27 septembre 2021 à 8:54:43

                                                      Pour l'hexa , je l'utilise quasiment tout les jours ,et donc oui tu peux faire une conversion relativement facilement de tête (l'astuce comme dit est juste un chiffre hexa = 4 bits ).
                                                      C'est un peu étrange comme réflexion , parce que dans la programmation bas niveau , et même dans la conception de processeur , ben on utilise très souvent  de l'hexa , c'est assez rare d'utiliser la notation binaire (mais ça arrive ).

                                                      Sinon oui , je suis d'accord que cela n'a aucun intérêt de programmer comme cela , je l'ai dit plus haut :
                                                      "Je trouve ça complètement idiot ,non tu n'aura aucun tutoriel sur comment codé en binaire parce qu'il n'y aurais aucun intérêt d'en faire un."

                                                      Mais avec le temps j'ai appris que cela sert à rien de convaincre les gens de ne pas faire ce qu'ils veulent ,donc je lui donne tout les outils pour , quand il se cassera les dents ,ben il comprendra l'absurdité d'une telle démarche :)


                                                      -
                                                      Edité par HelbaSama 27 septembre 2021 à 8:58:14

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        27 septembre 2021 à 9:41:20

                                                        Sinon, il peut s'amuser à écrire un assembleur pour une machine fictive de son choix, dont il fera aussi le simulateur.

                                                        J'avais utilisé ce thème pour motiver les jeunes générations à apprendre C (et à comprendre ce que fait un processeur), il y a quelques années

                                                        https://www.mbillaud.fr/SITE-PERSO-LABRI/travaux/BasNiveau2013/cours-asm.pdf

                                                        https://www.mbillaud.fr/SITE-PERSO-LABRI/travaux/BasNiveau2013/ecrire-simulateur-v2.pdf

                                                        Assembleur et simulateur dans https://www.mbillaud.fr/SITE-PERSO-LABRI/Resources/resources/ASR2-systeme-1213/Sim16/

                                                        -
                                                        Edité par michelbillaud 27 septembre 2021 à 9:42:04

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          27 septembre 2021 à 10:50:24

                                                          Effectivement ça peut être assez pédagogique pour comprendre comment ça marche , mais ça demande d'avoir déjà de bonne base (bref je vois mal le demandé à 1 er ou 2eme année ).
                                                          Et surtout bien souligner que c'est principalement comment fonctionne un processeurs des années 80 ,parce que je vois souvent des personnes tenter de re-transposé ces connaissances sur un proc moderne , en pensant que ça marche à peu prés pareil , alors oui et non , mais pas mal de choses sont différente quand même.

                                                          Pour apprendre l'asm , je conseille le 6502 , c'est un des procs les plus facile et puis il y'a un assembleur en ligne, donc pas de soucis pour écrire/executer son code :
                                                          http://www.6502asm.com/

                                                          -
                                                          Edité par HelbaSama 27 septembre 2021 à 10:54:56

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter

                                                          langage binaire du CPU

                                                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                          • Editeur
                                                          • Markdown