Jump to content

Compiladores dúvida no back-end!


Recommended Posts

Ola me chamo Edinho!

Bom a alguns messes venho estudando por conta própria "teoria dos compiladores". E venho fazendo alguns projetos de teste, mas ai surgiu uma duvida: como faço para gerar o codigo executável?(arquivos .exe), pois ate agora uso uma "maquina virtual" ou o compilador gera um codigo assembly onde uso o nasm para gerar o executável. Então queria saber como criar tais arquivos sem precisar do nasm, porque se enviar o projeto para meu amigo e ele nao tiver o nasm em seu computador nao poderar compilar o programa.

Essa é minha dúvida alguém pode me ajudar com link, videos ou livros sobre.

  • l33t 1
Link to post
Share on other sites

Oi Edinho, tudo bem?

Não tenho nenhuma referência específica, mas acho que consigo citar alguns termos para ajudar na sua busca.

Acontece que os compiladores geram diferentes formatos de executável. Para Windows, normalmente é PE. Para Linux, normalmente é ELF. Mas existem vários outros. O nasm suporta uma longa lista (na opção -f). Você vai ter que escolher qual formato seu compilador vai gerar primeiro. Mesmo que queira gerar vários, vai ter que começar por um. Como via de regra, você vai escrever um arquivo em disco contendo:

  1. Cabeçalho do formato específico.
  2. Seção de código.
  3. Seção de dados.

Mas este é um resumo beeeem de longe. Dependendo do formato, você vai ter que lidar com muita coisa, principalmente na linkedição.

Alguns links

Abraço e boa sorte!

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...