So che questa è una domanda molto comune. Ma ho un'angolazione diversa nella mia mente. Proverò solo ad articolarlo qui.
Da quello che so, ogni istruzione eseguita da una CPU è nel linguaggio macchina e tutto ciò che la CPU può fare è eseguire alcune operazioni aritmetiche grazie a ALU e ai suoi transistor (se andiamo a livello hardware).
Tuttavia, questo è più facile da scrivere che da comprenderlo. Quindi, se tutta la CPU fa l'aggiunta, la sottrazione, ecc., Allora come sta un programma, ad esempio un programma JAVA che dice print Hello World, eseguito con queste operazioni aritmetiche?
Voglio dire, come viene convertito questo programma in qualcosa che è solo un'aggiunta per la CPU?
PS Se questa domanda non è applicabile per questo sito Web, mi scuso.
-----Seconda parte-----
Va bene. Grazie a tutti per aver risposto così velocemente e con questo entusiasmo. Ho pensato che fosse meglio modificare un po 'la mia domanda piuttosto che andare a commentare tutte le risposte e a farle di nuovo.
Quindi eccolo qui.
In primo luogo, tutti hanno risposto specificamente agli esempi di Hello World. È colpa mia. Avrei dovuto mantenere questo generico. L'esempio Hello world mette in discussione i dispositivi di output e il modo in cui la sua elaborazione non è limitata alla CPU, che è giustamente menzionata nelle tue risposte.
Inoltre, molti di voi hanno notato che la CPU fa molto di più di una semplice aggiunta. Sono d'accordo. Non l'ho scritto e l'ho assunto fino in fondo. Da quello che ho capito, questo è il processo:
leggere le istruzioni dalla memoria (utilizzando bus dati e indirizzi e roba contatore programmi)
- memorizzare i dati nel registro all'interno della CPU
- Ora ALU esegue operazioni aritmetiche, ovviamente dopo aver decodificato l'istruzione, o fa un salto se è un'istruzione if like
- E poi comunicare con altre risorse se necessario come con il dispositivo di output e così via. I processi oltre questo sono banali per ora.
Quindi nel passaggio 3 in cui la CPU decodifica un'istruzione e decide di eseguire un'operazione aritmetica (qui stiamo assumendo che non ci siano altre operazioni da fare come saltare le istruzioni correnti ... poiché le operazioni aritmetiche sono per lo più eseguite ... quindi ci atterremo a quello ) Qui finisce la mia visualizzazione. Come un'istruzione del mio programma sia solo un'operazione aritmetica per la CPU. Fa quell'operazione aritmetica e quell'istruzione serve al suo scopo.
Spero di essermi chiarito questa volta.
PS Sto assumendo qui un grande presupposto che ALU non sia limitato all'effettiva operazione aritmetica che facciamo nei nostri programmi, piuttosto esegue tutte le istruzioni, che ora sono in forma binaria, aggiungendole o sottraendole ecc. Per ottenere il risultato che sono destinate cedere. Se sbaglio qui delle risposte di seguito rispondi correttamente alla mia domanda.