Menu
Coddy logo textTech

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: pequenos compartimentos 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 pode simplesmente trabalhar diretamente com a 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 dela. A CPU pode acessar um registrador em um único ciclo, mas acessar a memória leva muito mais tempo.

Comparação lado a lado:

CaracterísticaRegistradoresMemória (RAM)
LocalizaçãoDentro da CPUFora da CPU
VelocidadeExtremamente rápida (1 ciclo)Mais lenta (muitos ciclos)
Número de posições de armazenamentoMuito poucas (16-32 em x86-64)Milhões ou bilhões
Tamanho de cada posição8 bytes (64 bits)1 byte
Como você as acessaPor 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:

A CPU não pode trabalhar diretamente com dados na memória. Os dados devem ser carregados primeiro nos registradores.

Isso não é opcional. É assim que a CPU foi projetada. Toda adição, toda comparação, todo movimento de dados deve passar por um registrador.

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

EtapaO que aconteceExemplo
1. LOADCopiar dados da memória para um registradormov rax, [count]
2. WORKFazer algo com o registradoradd rax, 5
3. STORECopiar 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 assembler exibirá um erro. A CPU simplesmente não consegue fazer isso. Você deve carregá-los nos registradores 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