Skip to content

0joseDark/NASM-gcc-to-compile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

NASM-to-compile

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 Linux
    • win32 para Windows (32 bits)
    • win64 para Windows (64 bits)
    • coff para outros sistemas
    • macho para macOS

Exemplo:

nasm -f elf arquivo.asm -o arquivo.o

2. Montagem e Linkagem

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.

Para Linux:

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

Para Windows:

Use o gcc para vincular: GCC

gcc -o executavel.exe arquivo.o

Exemplo:

gcc -o meu_programa.exe arquivo.o

3. Compilação e Linkagem em Um Só Comando

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.

Para Linux:

nasm -f elf arquivo.asm && ld -m elf_i386 -s -o executavel arquivo.o

Para Windows:

nasm -f win32 arquivo.asm && gcc -o executavel.exe arquivo.o

Flags Úteis

-g

Inclui informações de depuração no arquivo objeto.

nasm -f elf -g arquivo.asm -o arquivo.o

-l

Gera um arquivo de listagem, que é útil para depuração.

nasm -f elf arquivo.asm -l arquivo.lst -o arquivo.o

-I

Especifica um diretório para incluir arquivos.

nasm -I /caminho/para/includes arquivo.asm

Exemplo Completo

Aqui está um exemplo completo de um processo de compilação:

  1. 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
  2. Compile e vincule o programa:

    nasm -f elf programa.asm -o programa.o
    ld -m elf_i386 -s -o programa programa.o
  3. Execute o programa:

    ./programa

Conclusão

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.

About

NASM to compile

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published