Aqui está uma lista de comandos NASM para compilar:
# Comandos NASM para Compilação
## Introdução
O NASM (Netwide Assembler) é um montador de código de baixo nível que converte código assembly em código de máquina. Este guia fornece os comandos básicos para compilar e vincular programas escritos em assembly usando o NASM.
## Comandos Básicos
### 1. Compilação
Para compilar um arquivo assembly (`.asm`) em um arquivo objeto (`.o` ou `.obj`), use o comando:
```bash
nasm -f formato arquivo.asm -o arquivo.o
-f formato
: Especifica o formato do arquivo de saída. Formatos comuns incluem:elf
para Linuxwin32
para Windows (32 bits)win64
para Windows (64 bits)coff
para outros sistemasmacho
para macOS
Exemplo:
nasm -f elf arquivo.asm -o arquivo.o
Após compilar o código, o próximo passo é linkar o arquivo objeto para gerar um executável. Dependendo do sistema operacional, o comando de linkagem varia.
Utilize o ld
(linker):
ld -m elf_i386 -s -o executavel arquivo.o
-m elf_i386
: Especifica o formato do arquivo de saída (32 bits).-s
: Remove símbolos não utilizados.
Exemplo:
ld -m elf_i386 -s -o meu_programa arquivo.o
Use o gcc
para vincular:
GCC
gcc -o executavel.exe arquivo.o
Exemplo:
gcc -o meu_programa.exe arquivo.o
Em muitos casos, você pode querer compilar e vincular em um único comando. Para isso, o NASM pode ser combinado com o gcc
ou ld
.
nasm -f elf arquivo.asm && ld -m elf_i386 -s -o executavel arquivo.o
nasm -f win32 arquivo.asm && gcc -o executavel.exe arquivo.o
Inclui informações de depuração no arquivo objeto.
nasm -f elf -g arquivo.asm -o arquivo.o
Gera um arquivo de listagem, que é útil para depuração.
nasm -f elf arquivo.asm -l arquivo.lst -o arquivo.o
Especifica um diretório para incluir arquivos.
nasm -I /caminho/para/includes arquivo.asm
Aqui está um exemplo completo de um processo de compilação:
-
Crie um arquivo
programa.asm
com o seguinte conteúdo:section .data msg db 'Hello, World!', 0 section .text global _start _start: ; escrever a mensagem mov eax, 4 ; syscall: sys_write mov ebx, 1 ; file descriptor: stdout mov ecx, msg ; pointer to message mov edx, 13 ; message length int 0x80 ; call kernel ; sair do programa mov eax, 1 ; syscall: sys_exit xor ebx, ebx ; return 0 int 0x80 ; call kernel
-
Compile e vincule o programa:
nasm -f elf programa.asm -o programa.o ld -m elf_i386 -s -o programa programa.o
-
Execute o programa:
./programa
O NASM é uma ferramenta poderosa para desenvolvimento em assembly. Com os comandos acima, você pode compilar e vincular programas de forma eficaz. Para mais informações, consulte a documentação do NASM.
Sinta-se à vontade para copiar e usar este conteúdo para seus projetos.