Aprender / Lição 5

Primeiras instruções

Lição 5 de 12Iniciante8 min
Laboratório · 05 / 12

SUB: retire uma parte

Seu robô-guia

RAX começa com 9. Use uma subtração para deixar RAX com 4.

Blocos

Seu programa

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

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

SUB RAX, 5 calcula 9 − 5 = 4 e guarda o resultado no próprio RAX.

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 · Primeiras instruções
O que você vai aprender

Ler a ordem destino, origem e reconhecer MOV, ADD e SUB.

A forma de uma instrução

Na sintaxe Intel, escrevemos o nome da instrução seguido de seus operandos. Em MOV RAX, 4, RAX é o destino e 4 é a origem. Um número escrito diretamente no código é chamado valor imediato.

No NASM, um ponto e vírgula inicia um comentário. Comentários ajudam a explicar o código e não são executados. Os nomes podem aparecer em maiúsculas ou minúsculas.

Três ferramentas iniciais

MOV substitui o conteúdo do destino por uma cópia da origem. ADD soma a origem ao destino. SUB subtrai a origem do destino. Nas operações aritméticas, o resultado fica no destino.

Nem toda combinação de operandos é válida. Um número literal não pode receber um valor: MOV 5, RAX não descreve um destino gravável. Vamos trabalhar com registradores como destino para começar.

Um exemplo, passo a passo

Exemplo comentadox86-64 · Intel / NASM · Linux
; x86-64 · Intel / NASM · Linux
mov rax, 4    ; RAX = 4
add rax, 3    ; RAX = 7
sub rax, 1    ; RAX = 6

Entendendo cada passo

  1. MOV inicializa RAX com 4.
  2. ADD soma 3 ao valor anterior: 4 + 3 = 7.
  3. SUB retira 1: 7 − 1 = 6. O resultado final permanece em RAX.
Para guardar

Na sintaxe Intel, leia primeiro onde o resultado será guardado e depois qual valor será usado.

Revisão complementar

Identificação de erro

Qual linha tem um destino inválido?

Escolha uma resposta

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