| Instrução | Formato | Descrição | Opcode (Hex) | Opcode (Bin) |
|---|---|---|---|---|
| MOVI | movi Rx, imediato | Move um valor imediato de 8 bits para o registrador Rx (R0-R3). Atualiza Z. | 1 | 0001 |
| MOV | mov Rx, Ry | Move o conteúdo do registrador Ry para Rx (R0-R3). Atualiza Z. | 2 | 0010 |
| IN | in Rx | Lê valor de PIN para Rx (R0-R3). Atualiza Z. | 3 | 0011 |
| OUT | out Ry | Escreve o conteúdo de Ry (R0-R3) na porta POUT. Não afeta Z. | 4 | 0100 |
| ADD | add Rx, Ry | Rx = Rx + Ry (R0-R3). Atualiza Z. | 5 | 0101 |
| SUB | sub Rx, Ry | Rx = Rx - Ry (R0-R3). Atualiza Z. | 6 | 0110 |
| INC | inc Rx | Incrementa Rx (R0-R3). Atualiza Z. | 7 | 0111 |
| JMP | jmp label | Desvia para 'label'. Não afeta Z. | 8 | 1000 |
| JZ | jz label | Desvia para 'label' se Z_FLAG = 1. Não afeta Z. | 9 | 1001 |
Cada instrução ocupa 2 bytes (16 bits) na memória.
Flag Zero (Z): É 1 se o resultado da última operação aritmética (ADD, SUB, INC) ou de movimentação (MOVI, MOV, IN) for zero. Caso contrário, é 0.