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

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

Langages de programmation Discussion :

[Questions]Le langage de programmation Binaire existe t-il ?


Sujet :

Langages de programmation

  1. #21
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 304
    Points : 253
    Points
    253
    Par défaut
    Si ca amuse le posteur, voila ce que j'ai fait hier soir.
    J'ai crée un programme simple dans le style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include <stdio.h>
    
    int main&#40;&#41;
    &#123;printf&#40;"Programmation Binaire\n"&#125;;&#125;
    Puis j'ai crée un nouveau fichier ouvrant l'executable en mode binaire et extrait chaque octet de ce dernier afin de l'afficher qu'avec des 0 et des 1. Si ca l'interesse je peux lui envoyer le fichier c'est rigolo de voir le nombre important de 0 et de 1 pour un si petit programme en C. Impossible de l'inserer dans ce post c'est pour vous dire sa taille.

    Bref. A bientot

  2. #22
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    J'ai lu tous les posts et j'ai des questions qui me viennent.
    Déjà , qqun a dit que les proco comprennaient l'hexa.
    Les processeurs travaillent en hexa directement?
    Deuxièmement, les api windows sont coompilé en asm non?
    Il existe donc des programmes de "traduction sma en binaire" non?
    Qqun m'a dit qu'ils se trouvaient dans le io.sys et msdos.sys.
    Donc si je comprends bien, les programmes apellent des apis, puis les apis apellent ces programmes traducteurs.
    Encore une quastion conne.
    Comment le pc fait la différence entre une instruction et un nombre?
    Vu que tout est numéraire?
    Sije ne me trompe pas, les traitements vars les périf, écran, clavier ... sont fait par des interruptions bios?
    Donc il doit y avoir des instructions bios et des instructions proco et des nombres, valeur à mettre en pile.
    Comment l'ordinateur fait la différence entre tout ca et oriente correctment?
    La pile au fait, c'est bien la ram?
    Ou juste une partie?
    Ou uniquement les caches des processeurs?

  3. #23
    Membre habitué Avatar de Driden
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Points : 166
    Points
    166
    Par défaut
    Si vraiment tu es interessé par le sujet je te conseille l'excelent:
    Architecture de l'ordinateur de Tanenbaum aux ed Dunod.
    http://www.dunod.com/pages/ouvrages/ficheouvrage.asp?Pro_Code_GPE=45158

  4. #24
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Je vais me le procurer merci beaucoup pour les références.

  5. #25
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 47
    Points : 52
    Points
    52
    Par défaut
    Pour Krys29, les processeurs travaillent pas spécialement en hexa, l'hexa est simplement un moyen plus pratique d'écrire du binaire. Le cpu comprends que le binaire, c'esdt la base de l'électronique, 0,1, pas courant, courant... mais attention, pour bubonik, bien que le cpu ne comprenne que le binaire, la plus petite quantité d'information sur laquelle il travaille et un octet/8 bits (dans le cas d'un x86 en tout cas)
    donc lire les 10 premiers bits d'une chaine ça veut pas dire grand chose du point de vue cpu, tu seras obligé d'en lire 16, même si les 6 derniers t'intéressent pas.
    L'ordinateur fait la différence entre tout ça grâce aux registres du processeur, ce sont des "cases" dans le processeur qui contiennent des adresses mémoires qui correspondent aux différentes structures, comme la pile, le code, les données, etc... il n'y a pas de différences entre une instruction et un nombre, une instruction est un nombre, simplement, les nombres qui se trouvent à l'adresse pointée par le registre cs (code segment) sont considéré par le cpu comme des instructions, même s'ils n'en sont pas !
    Tout ça est quelque peu simplifié, bien sûr, le fonctionnement d'un cpu est très complexe. La pile c'est bien la ram, le code aussi, les données aussi. Les caches du processeur sont juste un mécanisme qui sert à augmenter la vitesse d'execution d'un programme. Ce mécanisme consiste à mettre dans le cache les données les plus souvent utilisées, parce que cette mémoire cache est très rapidement accéder par le cpu, bcp plus rapidement, donc c'est pas si faux ce que tu dis, on peut considérer que la pile est toujours dans le cache, car cette zone mémoire est très très souvent utilisée dans un programme. le cache sert aussi pour l'execution du code, le cpu prends les données pointées par cs, le code donc, et les met dans le cache (un cache différent bien sur, il mélange pas tout) par paquet dont la taille varie suivant le type de cpu, puis il exécute les instructions une par une à partir de ce cache d'instruction. C'est ce qui a amené la nécessité de prédiction de branche. En effet, quand le cpu rencontre un saut conditionnel, il ne sait qu'au dernier moment quelle branche va être prise, il doit donc tenter de prédire ça, pour charger les instructions à l'avance. S'il se trompe, il doit vider le cache, et le charger avec la bonne branche, et c'est une grosse perte de temps. D'où l'importance de bonnes prédictions, surtout que les caches sont de plus en plus gros, et une mauvaise prédiction devient de ce fait de plus en plus pénalisante.
    Désolé de squatter le forum, il parait que c'est bon de s'exprimer, ça permet de savoir ce qu'on connait vraiment

  6. #26
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2003
    Messages : 76
    Points : 87
    Points
    87
    Par défaut
    Et savez-vous s'il existe des cours de langage machine (je ne parle pas d'assembleur), parce-que j'ai éssayé de comprendre un "hello world" en .com après édition et je n'ai pas compris grand chose aux codes hexa alors en ascii, qu'est-ce que ça donnait!
    voilà les codes Hexa
    BA, 0C, 01, B4, 09, CD, 21, B8, 00, 4C, CD, 21, 48, 65, 6C, 6C, 6F, 20, 77, 6F, 6C, 64, 24
    Sachant quand même que 48, 65, 6C, 6C, 6F, 20, 77, 6F, 6C, 64, 24 sont les hexa pour la chaîne Hello world.
    Qui sait, c'est peut-être ce que cherche NaskY.

  7. #27
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 47
    Points : 52
    Points
    52
    Par défaut
    Assembleur et codes hexa sont intimement liés :

    BA 0C 01 : mov dx,010Ch
    B4 09 : mov ah,09
    CD 21 : int 21h
    B8 00 4C : mov ax,4C00h
    CD 21 : int 21h

    10Ch c'est l'offset de la chaine en sachant que dans un .com le début du programme est à 100h. mov ah,9 int 21h c'et la fonction dos 'afficher une chaine' et mov ax,4c00 int 21' c'est la fonction dos 'terminer le programme'

  8. #28
    Membre habitué Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Points : 170
    Points
    170
    Par défaut
    Intéressant ! ... Juste quelques réflexions, meme si je reprends peut etre certaines idées déjà énoncées ...
    L'expression "programmer en binaire" a peu de sens.
    Ici, on parle ... "hyper bas niveau", bien entendu.
    Quand on programme, on ne programme pas l'ordinateur en lui meme, mais le microprocesseur. Le µP est un automate, sans plus. Il est capable de faire un certain nombre de choses ... addition,soustaration... entre les registres, avec la mémoire ... etc ! Il exécute tout ca de facon totalement séquentielle en prenant note de ce qu'on lui demande, instruction par instruction, au rythme d'un métronome, l'horloge. Chaque instruction, en mémoire, est représentée par un nombre. Le µP ne sait interpréter (pas comprendre!) que des nombres. Maintenant, peu importe comment sont représentés ces nombres. Pour le moment, on en est toujours au binaire. Pourquoi ? c'est la facon la plus facile de pouvoir représenter des nombres avec des fils électriques et du courant. Si nous avions trouvé une logique a 10 états, nos µP, pourraient interpréter le décimal. Malheureusement, entre "y'a du courant = 1" et "y'a plus d'courant = 0", on a rien trouvé d'intermédiaire et d'exploitable (certains on essayés).
    Maintenant, le µP, n'interprète pas du binaire. Il interprète des mots binaires ... de 8, 16,32 ou 64 bits élémentaires. Un seul 0 ou 1 n'a aucun sens pour lui... il ne rencontre d'ailleurs jamais de bit isolé. Un tel µP, serait un µP 1 bit et ne posséderait que 2 instructions possibles. Le premier µP était un µP 4 bits, le "4004" (1970). Un mot de 8 bits pourra ainsi etre porteur de 256 ordres différents. Le binaire n'est pas une forme de programmation (programmer "en" binaire ... hum ) c'est simplement une facon de représenter des nombres. Nombres qui ont un sens pour notre µP. On peut représenter ces nombres comme on veut, simple facilité pour notre pauvre cerveau ! bianire, octal, hexadécimal ... ou en base 3.67 .. peu importe. Ce n'est qu'une forme d'écriture, mais le µP, lui, est très limité et ne voit un sens que dans le binaire, car son seul sens de perception est la "présence ou non de courant électrique". Le jour ou nous inventerons une technologie basée, non plus sur le courant électrique, mais sur les ondes lumineuses ... nos programmes seront faits de nuances de couleurs....

    ps: l'expression "cours de language machine" a peu de sens également.
    Il n'existe pas de "cours" sur les lettres de l'alphabet. On les connait ou on ne les connait pas. Ensuite, quand on les connait, on peu suivre des cours de Francais. C'est pareil en informatique. Les lettres de l'alphabet, ce sont les différentes instructions possibles. Si tu veux pouvoir faire des "phrases" avec ... il s'agit de cours de programmation, algorithmique ... Un cours de C++ ou de Delphi n'est jamais qu'un cours de sémantique. Connaitre simplement toutes les possibilités de c++ n'a jamais permis a personne de faire un programme. Par contre, si tu as acquis cette faculté de structurer ta pensée en schémas ordonnés ... alors, avec ton doigt dans le sable, tu peux faire de belles choses.

    [edit] Merci a Narmataru (ci-dessous).

  9. #29
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    alors chapeau c'est du claire du chez clair et je trouve que ça résume bien...

  10. #30
    Membre régulier
    Homme Profil pro
    Futur développeur, étudiant
    Inscrit en
    Juillet 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Futur développeur, étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 67
    Points : 73
    Points
    73
    Par défaut
    Bonjour.
    Vous considèrerez peut-être ça comme une autre question mais, pour débuter, n'auriez-vous pas un petit code d'exemple (seriez-vous assez fous pour en avoir déjà fait ) ?
    Juste un petit code (juste quelques centaines de lignes ) pour faire, par exemple, un pixel rouge . (ici, environ 4 px) ?
    @++
    paulolol

  11. #31
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 129
    Points
    28 129
    Par défaut
    Un deterrage de sujet de presque 9 ans, pas mal.

    Sinon, tu peux programmer comme ca si tu veux : http://www.iquilezles.org/blog/?p=1426

Discussions similaires

  1. question sur les langages de programmation de demain
    Par faabian dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 05/01/2010, 14h52
  2. [Archive] Quel est votre langage de programmation préféré ? (2004..2008)
    Par Idelways dans le forum Débats sur le développement - Le Best Of
    Réponses: 403
    Dernier message: 04/02/2009, 00h56
  3. Qui a inventé le concept de "langage de programmation?
    Par Biane dans le forum Langages de programmation
    Réponses: 10
    Dernier message: 11/02/2004, 10h11
  4. Création d'un langage de programmation
    Par liquid_stone dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 09/11/2003, 16h44
  5. Nombre de langage de programmation total
    Par Adrael dans le forum Langages de programmation
    Réponses: 16
    Dernier message: 22/07/2003, 00h06

Partager

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