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: 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 pode 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:

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 você os 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 register.

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

EtapaO que aconteceExemplo
1. LOADCopiar dados da memory para um registermov rax, [count]
2. WORKFazer algo com o registeradd rax, 5
3. STORECopiar o result de volta para a memory (se necessário)mov [result], rax

O que acontece se você esquecer esta regra?

Se você tentar add dois números que estão ambos em memory, o assembler exibirá um erro. A CPU simplesmente não consegue fazer isso. Você deve carregá-los em register 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