Aprender / Lição 3

Primeiros registradores

Lição 3 de 12Iniciante8 min
Laboratório · 03 / 12

MOV: copie sem apagar

Seu robô-guia

RAX já guarda 8. Faça RBX ficar com o mesmo valor, sem digitar o número 8.

Blocos

Seu programa

1 instrução
  1. 01 MOV
    mov rax, 8

Resultado

PROCESSADORx86-64
RAX64 bits—
RBX64 bits—
RCX64 bits—

Aguardando suas instruções

ZF · indicador de zero—

Simulador didático · blocos equivalem a instruções Intel/NASM. Não executa Assembly nativo.

Entender melhor

MOV RBX, RAX copia o valor. A origem não fica vazia: RAX e RBX valem 8.

Este laboratório modela MOV, ADD, SUB, CMP, saltos de igualdade e pilha. Os registradores começam sem valor; a aritmética usa 64 bits sem sinal. Só ZF é representada, e cada execução recomeça do início. Repetições param após 200 passos. Não simula memória, outras flags, chamadas ao Linux ou um processador completo.

Consultar a lição completa
Entender melhor · Primeiros registradores
O que você vai aprender

Acompanhar valores em RAX e RBX após instruções de cópia.

Pequenos espaços com nome

Em x86-64, RAX e RBX são dois registradores de uso geral. Cada um pode guardar 64 bits. Eles não são variáveis criadas por nós: seus nomes fazem parte da arquitetura.

Um registrador pode participar de várias tarefas, mas certas instruções e convenções de chamada dão papéis específicos a alguns deles. Nos trechos iniciais, vamos usá-los apenas para acompanhar pequenos números.

Copiar não é retirar

MOV copia o valor da origem para o destino. A origem não fica vazia. Quando copiamos RAX para RBX, os dois ficam com o mesmo valor naquele instante.

Uma mudança posterior em RAX não altera automaticamente RBX. Além disso, não devemos assumir que um registrador começa em zero. Dê um valor a ele antes de depender do seu conteúdo.

Um exemplo, passo a passo

Exemplo comentadox86-64 · Intel / NASM · Linux
; x86-64 · Intel / NASM · Linux
mov rax, 7     ; RAX recebe 7
mov rbx, rax   ; RBX recebe uma cópia de 7
mov rax, 2     ; apenas RAX muda para 2

Entendendo cada passo

  1. Após a primeira linha, RAX vale 7.
  2. Após a segunda, RAX e RBX valem 7.
  3. Após a terceira, RAX vale 2 e RBX continua valendo 7.
Para guardar

MOV faz uma cópia do valor. Não cria uma ligação permanente entre registradores.

Revisão complementar

Previsão de resultado

Depois do exemplo, qual é o valor de RBX?

Escolha uma resposta

Marcação opcional, salva apenas neste navegador. Clique novamente para desfazer.