Je sais que c'est une question très courante. Mais j'ai un angle différent dans mon esprit. Je vais juste essayer de l'articuler ici.
D'après ce que je sais, chaque instruction qu'un CPU exécute est en langage machine et tout ce que le CPU peut faire est de faire des opérations arithmétiques grâce à ALU et à ses transistors (si nous allons au niveau matériel).
Cependant, c'est plus facile à taper qu'à le comprendre. Donc, si tout le CPU ajoute, soustrait, etc., comment un programme, par exemple un programme JAVA disant print Hello World, est-il exécuté avec ces opérations arithmétiques?
Je veux dire comment ce programme est-il converti en quelque chose qui n'est qu'un ajout pour le CPU?
PS Si cette question ne s'applique pas à ce site Web, je m'excuse.
-----Deuxième partie-----
D'accord. Merci à tous d'avoir répondu aussi vite et avec cet enthousiasme. J'ai pensé qu'il valait mieux modifier un peu ma question que d'aller commenter toutes les réponses et les poser à nouveau.
Alors voilà.
Tout d'abord, tous ont répondu spécifiquement à l'exemple de Hello World. C'est ma faute. J'aurais dû garder ce générique. L'exemple de Hello World remet en question les périphériques de sortie et comment son traitement ne se limite pas au processeur, ce qui est évoqué à juste titre dans vos réponses.
Beaucoup d'entre vous ont également remarqué que le CPU fait plus qu'un simple ajout. Je suis d'accord avec ça. Je n'ai tout simplement pas écrit cela et je l'ai supposé jusqu'au bout. D'après ce que je comprends, c'est le processus:
lire l'instruction à partir de la mémoire (en utilisant des bus de données et d'adresses et des trucs de compteur de programmes)
- stocker les données dans un registre à l'intérieur du CPU
- Maintenant, ALU effectue des opérations arithmétiques, bien sûr après le décodage de l'instruction, ou fait un saut si c'est une instruction if like
- Et puis communiquer avec d'autres ressources si nécessaire, comme avec le périphérique de sortie, etc. Les processus au-delà sont triviaux pour l'instant.
Donc à l'étape 3 où le CPU décode une instruction et décide de faire une opération arithmétique (ici, nous supposons qu'il n'y a aucune autre opération à faire comme sauter l'instruction actuelle .. puisque les opérations arithmétiques sont pour la plupart effectuées .. donc nous nous en tiendrons à cela ) C'est là que ma visualisation se termine. Comment une instruction de mon programme n'est qu'une opération arithmétique pour le CPU. Il fait cette opération arithmétique et cette instruction remplit sa fonction.
J'espère que je me suis bien fait comprendre cette fois.
PS Je suppose ici que l'ALU n'est tout simplement pas limité au fonctionnement arithmétique réel que nous faisons dans nos programmes, il exécute plutôt toutes les instructions, qui sont maintenant sous forme binaire, en ajoutant ou en soustrayant etc. pour donner le résultat qu'elles sont destinées produire. Si je me trompe ici, les réponses ci-dessous répondent correctement à ma question.