Menu
Coddy logo textTech

Como as instruções funcionam

Parte da seção Fundamentos do Journey de Assembly da Coddy — lição 4 de 45.

Você sabe que a CPU executa instruções uma por uma. Mas como a CPU sabe qual instrução executar a seguir? Onde as instruções são armazenadas? E como é, na verdade, uma instrução?

Instruções são números.

Esta é uma verdade fundamental sobre computadores. Tudo é um número. Os dados com os quais você trabalha (como o número 42) são um número. O endereço onde os dados residem (como 1000) é um número. E as próprias instruções (como mov, add, cmp) também são números.

Quando você escreve código assembly como mov rax, 5, o assembler converte este texto legível por humanos em um número que a CPU entende. Este número é chamado de código de instrução.

Onde as instruções são armazenadas?

Instruções são armazenadas na memória, assim como os dados. Não há um lugar especial para instruções. A memória contém ambos:

  • Dados (números, caracteres, arrays)
  • Instruções (o próprio programa)

A CPU não sabe a diferença. Ela simplesmente lê o que quer que esteja no endereço de memória apontado pelo Program Counter. Você aprendeu brevemente sobre o PC na Lição 0.1. Agora é hora de entender exatamente como ele funciona.

O Contador de Programa (também chamado de Ponteiro de Instrução) é um registrador especial dentro da CPU. Sua única função é armazenar o endereço de memória da próxima instrução a ser executada.

O Ciclo de Busca-Execução:

A CPU repete estes três passos para sempre:

PassoO que acontece
1. BUSCA (FETCH)Lê a instrução no endereço no PC
2. EXECUÇÃO (EXECUTE)Realiza essa instrução
3. AVANÇO (ADVANCE)Move o PC para a próxima instrução

Exemplo simples:

Se PC = 1000, a CPU:

  • Busca a instrução no endereço 1000
  • Executa-a
  • Move o PC para o próximo endereço (1000 + tamanho da instrução)

Em seguida, ele se repete com o novo valor de PC.

Como é uma instrução:

Cada instrução tem duas partes:

ParteO que ela fazExemplo
OpcodeO que FAZERmov, add, cmp
OperandosEm que agirrax, 5, [result]

Algumas instruções têm um operando (como inc rax para adicionar 1). Algumas têm dois (como mov rax, 5). Algumas têm três (como add rax, rbx, rcx em algumas arquiteturas).

Experimente você mesmo

Esta lição não inclui um desafio de código.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos