A CPU não entende os comandos da maneira como um humano entende palavras. Em vez disso, ele entende
código da máquina , que é uma sequência de dígitos binários (0s e 1s). Essas seqüências binárias representam instruções de que o circuito da CPU foi projetado para executar. Essas instruções são muito básicas e geralmente envolvem operações como:
*
operações aritméticas e lógicas: Adicionar, subtrair, multiplicar, dividir, ear, orar, xornar, comparar valores.
*
Movimento de dados: Carregando dados da memória em registros, armazenando dados de registros na memória, movendo dados entre os registros.
*
Fluxo de controle: Ramificação (salto) para diferentes partes do programa com base em condições, looping (instruções de repetição), chamando sub -rotinas (funções).
*
entrada/saída (E/O): Comunicação com periféricos como disco rígido, teclado, exibição, etc.
Essas instruções básicas são referidas coletivamente como o
conjunto de instruções Arquitetura (ISA) da CPU. Diferentes arquiteturas da CPU (como x86, ARM, RISC-V) têm ISAs diferentes, o que significa que eles têm diferentes conjuntos de instruções do código da máquina.
É importante observar:
*
Linguagem de montagem: Os programadores raramente escrevem diretamente no código da máquina. Em vez disso, eles usam a linguagem de montagem, que é uma representação legível pelo homem do código da máquina. Um assembler traduz o código de montagem em código da máquina.
*
Idiomas de nível superior: A maioria das programas é feita em idiomas de nível superior (como C ++, Java, Python) que são abstraídos ainda mais do código da máquina. Compiladores ou intérpretes traduzem esses idiomas de alto nível em código de máquina que a CPU pode executar.
Portanto, embora a CPU apenas "entenda" as instruções binárias do código da máquina, o processo de criação e execução de programas envolve várias camadas de abstração para tornar a programação mais gerenciável para os seres humanos.