INC, DEC e operações lógicas
INC e DEC: um passo de cada vez
RAX começa com 5. Use só INC e DEC para fazer RAX chegar a 7.
Blocos
Seu programa
1 instrução- 01 MOV
mov rax, 5
Resultado
Aguardando suas instruções
Simulador didático · blocos equivalem a instruções Intel/NASM. Não executa Assembly nativo.
Entender melhor
INC RAX soma 1 e DEC RAX subtrai 1, sem precisar de origem. Duas vezes INC levam 5 a 7.
Este laboratório modela MOV, ADD, SUB, INC, DEC, AND, OR, XOR, CMP, saltos de igualdade e pilha. Os registradores começam sem valor; a aritmética usa 64 bits sem sinal (subtrair abaixo de zero dá a volta para um valor enorme). Só ZF é representada, e cada execução recomeça do início. Repetições param após 200 passos. A pilha aparece como uma lista simples. Não simula memória por endereço, outras flags, chamadas ao Linux ou um processador completo.
Consultar a lição completaEntender melhor · INC, DEC e operações lógicas
Somar e subtrair 1 com INC e DEC e usar AND, OR e XOR para trabalhar com bits.
Rascunho: um passo de cada vez
INC soma 1 a um registrador e DEC subtrai 1. Elas não precisam de origem: o próprio registrador é o destino. Assim como as outras contas, o resultado usa 64 bits sem sinal e atualiza ZF. Usar INC RAX é o mesmo que ADD RAX, 1, mas mais curto e direto. DEC RAX abaixo de zero dá a volta para o maior valor de 64 bits, como no SUB.
Rascunho: trabalhando com bits
AND, OR e XOR comparam dois valores bit a bit. AND mantém um bit ligado só quando ele está ligado nos dois; OR liga o bit se estiver ligado em qualquer um; XOR liga o bit quando eles são diferentes. Todas atualizam ZF: 1 se o resultado for zero. Um truque comum é XOR RAX, RAX: como cada bit é igual a ele mesmo, o resultado é sempre 0. Use o seletor BIN do laboratório para ver os bits mudando.
Um exemplo, passo a passo
; Trecho x86-64 · Intel / NASM · Linux mov rax, 13 ; 1101 em binário inc rax ; 14 and rax, 3 ; mantém os dois bits mais baixos xor rbx, rbx ; zera RBX
Entendendo cada passo
- RAX recebe 13, que em binário é 1101.
- INC soma 1: RAX passa a valer 14 (1110).
- AND com 3 (0011) mantém só os dois bits mais baixos: 1110 AND 0011 = 0010, ou seja, 2.
- XOR RBX, RBX zera RBX, e ZF liga.
Exercícios curtos
Depois de mov rax, 6 e and rax, 3, quanto vale RAX?
Pratique no laboratório
O laboratório no topo desta página traz o desafio desta lição. Desafios que usam este conteúdo: INC e DEC: um passo de cada vez, AND: mantenha só alguns bits, XOR: zere sem digitar 0.
INC e DEC mudam um registrador em 1; AND, OR e XOR trabalham bit a bit, e todas atualizam ZF.
Marcação opcional, salva apenas neste navegador. Clique novamente para desfazer.
Para se aprofundar
Esta lição é uma explicação didática e simplificada. Para conferir os detalhes e ir além, consulte as fontes oficiais:
- Manual do NASM (sintaxe Intel/NASM): https://www.nasm.us/docs.html
- Intel® 64 and IA-32 Architectures Software Developer's Manuals (arquitetura e conjunto de instruções): https://www.intel.com/content/www/us/en/support/articles/000006715/processors.html