A linguagem de montagem fornece uma representação simbólica, um-para-um, das instruções de máquina de um processador. Ela permite controle direto do hardware, desempenho máximo e mínima sobrecarga de tempo de execução.
| Conceito | Descrição |
|---|---|
| Arquitetura de Conjunto de Instruções (ISA) | Define operações, registradores, modos de endereçamento (ex., x86-64, ARMv8, RISC-V, MIPS). |
| Registradores | Armazenamento rápido na CPU: de propósito geral (RAX, RBX…), especiais (RIP, RSP, RFLAGS), vetoriais (XMM/YMM/ZMM). |
| Endereçamento de Memória | Direto, indireto, base+índice+escala+deslocamento; segmentação (legado) vs. paginação plana. |
| Tipos de Instrução | Movimentação de dados (MOV), aritmética (ADD, SUB, MUL, DIV), lógica (AND, OR, XOR, NOT), fluxo de controle (JMP, Jcc, CALL, RET), SIMD (AVX, NEON), sistema (SYSCALL, CPUID). |
| Montador e Vinculador | Traduzem mnemônicos → código de máquina; resolvem símbolos, relocações; produzem binários ELF / Mach-O / PE. |
| Convenções de Chamada | System V AMD64 (Linux/macOS), Microsoft x64 (Windows) – uso de registradores, alinhamento de pilha, shadow space. |
A linguagem de montagem não é uma única linguagem — cada ISA tem sua própria sintaxe e semântica. O domínio requer entender arquitetura de computador, não apenas mnemônicos.