Précédent   Forum du club des développeurs et IT Pro > Général Développement > Langages de programmation
Langages de programmation Forum général sur les langages de programmation, sur la POO, opinions, choix, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 16/09/2003, 08h58   #21
KORTA
Membre confirmé
 
Inscription : juillet 2003
Messages : 304
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 304
Points : 205
Points : 205
Si ca amuse le posteur, voila ce que j'ai fait hier soir.
J'ai crée un programme simple dans le style
Code :
1
2
3
4
5
#include <stdio.h>

int main()
{printf("Programmation Binaire\n"};}
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
__________________
TOUT CE QUI EST VRAISEMBLABLE N'EST PAS FORCEMENT VRAI . MEFIEZ VOUS
KORTA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2003, 22h33   #22
Krys29
Invité régulier
 
Inscription : juin 2002
Messages : 9
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 9
Points : 8
Points : 8
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?
Krys29 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 28/10/2003, 23h35   #23
Driden
Membre habitué
 
Avatar de Driden
 
Inscription : mai 2003
Messages : 146
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 146
Points : 147
Points : 147
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
__________________
Driden

Portail Bioinformatique
Driden est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/10/2003, 08h17   #24
Krys29
Invité régulier
 
Inscription : juin 2002
Messages : 9
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 9
Points : 8
Points : 8
Je vais me le procurer merci beaucoup pour les références.
Krys29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2003, 07h46   #25
Chris_hks
Membre du Club
 
Inscription : août 2003
Messages : 47
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 47
Points : 46
Points : 46
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
Chris_hks est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/12/2003, 16h30   #26
Bubonik software
Membre à l'essai
 
Inscription : août 2003
Messages : 55
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 55
Points : 23
Points : 23
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.
Bubonik software est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2003, 08h58   #27
Chris_hks
Membre du Club
 
Inscription : août 2003
Messages : 47
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 47
Points : 46
Points : 46
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'
Chris_hks est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2003, 09h37   #28
- Robby -
Membre habitué
 
Avatar de - Robby -
 
Inscription : juillet 2003
Messages : 266
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 266
Points : 115
Points : 115
Envoyer un message via MSN à - Robby -
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).
- Robby - est déconnecté   Envoyer un message privé Réponse avec citation 30
Vieux 18/12/2003, 13h30   #29
narmataru
Membre Expert
 
Avatar de narmataru
 
Inscription : décembre 2002
Messages : 1 525
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : décembre 2002
Messages : 1 525
Points : 1 577
Points : 1 577
alors chapeau c'est du claire du chez clair et je trouve que ça résume bien...
__________________
Reportage d'Arte sur Linux
narmataru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2012, 19h01   #30
paulolol
Invité de passage
 
Homme Paul Olol
Futur développeur, étudiant
Inscription : juillet 2012
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme Paul Olol
Âge : 14
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 : 6
Points : 2
Points : 2
Envoyer un message via Skype™ à paulolol
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
paulolol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2012, 09h09   #31
gangsoleil
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 7 191
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 7 191
Points : 18 088
Points : 18 088
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
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h00.


 
 
 
 
Partenaires

Hébergement Web