Menu
CoddyTech

Registradores vs Memória

Parte da seção Fundamentos do Journey de Assembly da Coddy. Lição 3 de 45.

Agora você aprendeu sobre dois lugares onde os dados podem ficar dentro de um computador:

  • Registradores: pequenas caixas de armazenamento dentro da CPU
  • Memória (RAM): uma enorme grade de posições numeradas fora da CPU

Mas por que existem dois lugares? Por que a CPU não mantém tudo na memória?

A resposta é velocidade. Os registradores são extremamente rápidos porque ficam dentro da CPU. A memória é mais lenta porque fica fora. A CPU pode acessar um registrador em um único ciclo, mas acessar a memória leva muito mais tempo.

Comparação lado a lado:

RecursoRegistradoresMemória (RAM)
LocalizaçãoDentro da CPUFora da CPU
VelocidadeExtremamente rápida (1 ciclo)Mais lenta (muitos ciclos)
Número de espaços de armazenamentoMuito poucos (16-32 em x86-64)Milhões ou bilhões
Tamanho de cada espaço8 bytes (64 bits)1 byte
Como acessá-losPor nome (rax, rbx, rcx...)Por endereço (1000, msg, buffer)
Volátil?Sim (desaparece quando a energia é desligada)Sim (desaparece quando a energia é desligada)

A regra mais importante em assembly:

Uma instrução pode usar no máximo um operando de memória. Para combinar dois valores que estão na memória, carregue primeiro um deles em um registrador.

Os registradores também são onde você mantém os valores com os quais trabalha, porque cada acesso à memória é lento.

O padrão de três etapas que você usará constantemente:

EtapaO que aconteceExemplo
1. LOADCopie dados da memória para um registradormov rax, [count]
2. WORKFaça algo com o registradoradd rax, 5
3. STORECopie o resultado de volta para a memória (se necessário)mov [result], rax

O que acontece se você esquecer esta regra?

Se você tentar somar dois números que estão ambos na memória, o montador apresentará um erro. A CPU não consegue fazer isso. Você precisa carregar um deles em um registrador primeiro.

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

Pratique por conta própria: Playground de Assembly