Desafio final: repetir e guardar
Desafio final: repita e guarde
Faça RAX contar de 0 até 3 com uma repetição e, no fim, copie o resultado para RBX.
Blocos
Seu programa
4 instruções- 01 MOV
mov rax, 0 - 02 RÓTULO
inicio: - 03 ADD
add rax, 1 - 04 CMP
cmp rax, 3
Resultado
Aguardando suas instruções
Simulador didático · blocos equivalem a instruções Intel/NASM. Não executa Assembly nativo.
Entender melhor
Um destino, um salto para trás e uma comparação formaram a repetição. Ao parar, RBX recebeu a cópia de 3.
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 completaEntender melhor · Desafio final: repetir e guardar
Combinar repetição, comparação e cópia para resolver um problema completo.
Juntando tudo o que você aprendeu
Neste desafio, você vai usar quase tudo: guardar um valor inicial, somar a cada volta, comparar com um limite, saltar de volta enquanto o limite não for alcançado e, no fim, guardar o resultado em outro registrador.
Uma repetição nasce de um destino marcado e de um salto para trás. Cada volta executa os mesmos passos. A comparação decide quando parar; sem ela, o programa nunca terminaria. O laboratório interrompe repetições longas demais.
Pensar antes de montar
Antes de montar, descreva o plano em português: começar em zero, somar um, verificar se chegou a três, voltar se ainda não chegou e, por fim, copiar o resultado. Esse plano evita tentativas às cegas.
Depois de executar, acompanhe o passo a passo. Conte quantas vezes a soma aconteceu e confira o valor de ZF a cada comparação. Se o resultado não for o esperado, ajuste um bloco por vez e tente de novo.
Um exemplo, passo a passo
; Trecho x86-64 · Intel / NASM · Linux
mov rax, 0
inicio:
add rax, 1
cmp rax, 3
jne inicio
mov rbx, raxEntendendo cada passo
- RAX começa em 0 e o rótulo inicio marca o começo da repetição.
- A cada volta, RAX aumenta 1 e é comparado com 3. JNE volta enquanto forem diferentes.
- Quando RAX chega a 3, ZF liga, o salto não acontece e RBX recebe uma cópia de 3.
Problemas maiores são resolvidos combinando instruções simples em um plano claro.
Revisão complementar
Quantas vezes a instrução add rax, 1 é executada no exemplo?
Marcação opcional, salva apenas neste navegador. Clique novamente para desfazer.