Eu sei que esta é uma pergunta muito comum. Mas tenho um ângulo diferente em minha mente. Vou apenas tentar articulá-lo aqui.
Pelo que sei, todas as instruções que uma CPU executa, estão na linguagem da máquina e tudo que a CPU pode fazer é executar algumas operações aritméticas graças à ALU e a seus transistores (se formos ao nível do hardware).
No entanto, é mais fácil digitar do que compreendê-lo. Portanto, se toda a CPU faz adição, subtração, etc., como é um programa, digamos um programa JAVA dizendo print Hello World, executado com essas operações aritméticas?
Quero dizer, como esse programa é convertido em algo que é apenas uma adição à CPU?
PS Se esta pergunta não for aplicável a este site, peço desculpas.
-----Parte dois-----
OK. Obrigado a todos por responderem rápido e com entusiasmo. Eu pensei que era melhor modificar um pouco a minha pergunta do que ir e comentar todas as respostas e perguntar novamente.
Então aqui está.
Primeiro, todos responderam especificamente ao exemplo errado do Hello World. Isto é minha culpa. Eu deveria ter mantido esse genérico. O exemplo Hello world traz em questão os dispositivos de saída e como o processamento não se limita apenas à CPU, que é justamente apresentada em suas respostas.
Muitos de vocês também notaram que a CPU faz mais do que apenas adicionar. Eu concordo com isso. Eu simplesmente não escrevi isso e assumi tudo. Pelo que entendi, este é o processo:
leia as instruções da memória (usando barramentos de dados e endereço e itens do contador de programas)
- armazenar dados no registro dentro da CPU
- Agora, a ALU realiza operações aritméticas, é claro, após decodificar a instrução, ou dá um pulo se for uma instrução if like
- E depois se comunicar com outros recursos, se necessário, como com o dispositivo de saída e assim por diante. Processos além disso são triviais por enquanto.
Portanto, na etapa 3, em que a CPU decodifica uma instrução e decide executar uma operação aritmética (aqui estamos assumindo que não há outra operação a ser feita, como pular a instrução atual .. como as operações aritméticas são feitas principalmente .. então vamos nos ater a isso) ) É aqui que minha visualização termina. Como uma instrução do meu programa é apenas uma operação aritmética para a CPU. Faz essa operação aritmética e essa instrução serve a seu propósito.
Espero ter me esclarecido desta vez.
PS Estou assumindo aqui que a ALU não se restringe apenas à operação aritmética real que fazemos em nossos programas, mas executa todas as instruções, que agora estão em formato binário, adicionando ou subtraindo-as, etc., para produzir o resultado que elas significam ceder. Se eu estiver errado aqui, as respostas abaixo respondem corretamente à minha pergunta.