Sé que esta es una pregunta muy común. Pero tengo un ángulo diferente en mi mente. Trataré de articularlo aquí.
Por lo que sé, cada instrucción que ejecuta una CPU está en lenguaje de máquina y todo lo que la CPU puede hacer es realizar algunas operaciones aritméticas gracias a ALU y a sus transistores (si vamos a nivel de hardware).
Sin embargo, esto es más fácil de escribir que comprenderlo. Entonces, si todo lo que hace la CPU es sumar, restar, etc., ¿cómo se ejecuta un programa, digamos un programa JAVA que dice print Hello World, con estas operaciones aritméticas?
Quiero decir, ¿cómo se convierte este programa en algo que es solo una adición para la CPU?
PD: Si esta pregunta no es aplicable a este sitio web, me disculpo.
-----La segunda parte-----
Bueno. Gracias a todos por responder tan rápido y con tanto entusiasmo. Pensé que era mejor modificar un poco mi pregunta que ir y comentar todas las respuestas y volver a hacerlas.
Asi que aqui esta.
Primero, todos han respondido específicamente al ejemplo de Hello World. Esto es mi culpa. Debería haber mantenido esto genérico. El ejemplo de Hello World pone en cuestión los dispositivos de salida y cómo su procesamiento no se limita solo a la CPU, que legítimamente aparece en sus respuestas.
También muchos de ustedes me hicieron notar que la CPU hace más que solo agregar. Estoy de acuerdo con eso. Simplemente no escribí eso y asumí todo el camino. Por lo que entiendo, este es el proceso:
lea las instrucciones de la memoria (usando buses de datos y direcciones y cosas de contador de programas)
- almacenar datos en el registro dentro de la CPU
- Ahora ALU realiza operaciones aritméticas, por supuesto, después de decodificar la instrucción, o dar un salto si es una instrucción similar.
- Y luego comunicarse con otros recursos si es necesario, como con el dispositivo de salida, etc. Los procesos más allá de esto son triviales por ahora.
Entonces, en el paso 3, donde la CPU decodifica una instrucción y decide hacer una operación aritmética (aquí estamos asumiendo que no hay otra operación que hacer, como saltar la instrucción actual ... dado que las operaciones aritméticas se realizan principalmente ... así que nos atendremos a eso ) Aquí es donde termina mi visualización. Cómo una instrucción de mi programa es solo una operación aritmética para la CPU. Realiza esa operación aritmética y esa instrucción cumple su propósito.
Espero haberme aclarado esta vez.
PD: Supongo aquí que ALU simplemente no está restringido a la operación aritmética real que hacemos en nuestros programas, sino que ejecuta todas las instrucciones, que ahora están en forma binaria, al sumarlas o restarlas, etc. para obtener el resultado que están destinados. ceder. Si me equivoco aquí, las respuestas a continuación responden correctamente mi pregunta.