1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Compilador assembly para Windows

Discussão em 'Programação' iniciada por MadOnion, 23 de Novembro de 2006. (Respostas: 15; Visualizações: 9853)

  1. MadOnion

    MadOnion Folding Member

    Alguém conhece um compilador assembly da Intel(80x86), para windows? Que dê pra compilar através da consola do xp, como costumo fazer em java? Fazer linkagem de funções etc etc.
    Costumo usar o gcc do ubuntu, mas confesso que não estou pra ligar e desligar o disco de ubuntu sempre que quero programar em assembly, a hipoteses dual boot tá fora de questão.

    Cumps
     
    Última edição: 23 de Novembro de 2006
  2. Sa[n]dman

    Sa[n]dman Power Member

    Eu na cadeira de microprocessadores/Sistemas Embebidos utilizava um da avrfreaks (www.avrfreaks.net), era pra programar em micros atmel mas era em C.
    Se não tiver de ser pela linha de comando podes utilizar o AVR-Studio, (www.atmel.com). É um compilador mt bom com ambiente gráfico. Tem debugger e tudo...
     
  3. Homem Bomba

    Homem Bomba Power Member

    Podes experimentar os assemblers Nasm ou Masm para windows.Pessoalmente prefiro o nasm. Para debugger podes usar o OllyDebug.

    Podes consultar http://paginas.fe.up.pt/~jcard/ensino/LabC/

    É a página de uma ex-cadeira minha, tem instruções sobre como fazer o makefile usando o nasm, e como usar o nasm para Assembly e o gcc para C ao mesmo tempo para misturar as duas linguagens, linkando objectos produzidos pelos 2 compiladores.

    Cumps.
     
    Última edição: 23 de Novembro de 2006
  4. JavaLL

    JavaLL Power Member

  5. MadOnion

    MadOnion Folding Member

    Esse compilador não reconhece os registos da Intel, pelo menos do que testei, por exemplo %eax, %ebx, etc etc.

    Homem bomba, muito bom link, já andei a vasculhar o site, mas tenho uma dúvida.
    Como se compila um simples programa, ou seja como se faz em nasm, a mesma maneira que eu uso o gcc, isto é:
    Código:
    gcc teste2.s -o test
    
    e depois pra correr:
    Código:
    ./teste2
    
    Qual é a maneira de fazer estes procedimentos no nasm, este compilador faz aquilo que quero, mas não consigo acertar com os passos.

    Sa[n]dman com os teus links não consegui ir a lado nenhum :'(
     
    Última edição: 23 de Novembro de 2006
  6. Homem Bomba

    Homem Bomba Power Member

    nasmw -t -g -f coff foo.asm -o foo.o


    Este é um dos comandos que se usava nos makefiles. Já não me recordo ao certo do que é que cada flag quer dizer...

    Tens que ter o directório de instalação do nasm no PATH do windows.
     
  7. MadOnion

    MadOnion Folding Member

    Colocar no PATH, quer dizer ir às variáveis de ambiente e colocar lá o directorio? Coloquei lá, mas ao compilar, continua a dar erro:
    >(
     
  8. Homem Bomba

    Homem Bomba Power Member

    Sim, é isso. Certifica-te de que a executavel nasmw está no directorio que metes no path e não numa subdirectoria. Tipo meteres o path para o nasm mas o nasmw está num /bin qualquer...
     
  9. MadOnion

    MadOnion Folding Member

    O compilador já está a funcionar, mas ele não percebe a sintaxe do meu programa, tens aí algum programa feito neste compilador, para perceber a sintaxe?

    Cumps, e obrigado pela ajuda.
     
  10. Homem Bomba

    Homem Bomba Power Member

    Consulta

    http://paginas.fe.up.pt/~jcard/ensino/LabC/Aulas/Aula6/sintaxe_nasm/sintaxe_nasm.html.

    Cumps, e bom trabalho ;)


    EDIT:

    Fica com um exemplo que eu aqui tinha... era para tirar a cor de um pixel da do frame buffer da gráfica, salvo erro...

    CPU 386
    Bits 32
    %include 'macros.mac'
    section .text
    proc get_pixel_2
    %arg x:dword, y:dword, video_base:dword
    uses ecx
    xor ecx, ecx ; Inicializar os registos ECX e EAX a zero
    xor eax, eax ;
    mov ecx, [y] ; ecx <- y
    imul ecx, 1024 ; ecx <- y * 1024
    add ecx, [x] ; ecx <- y * 1024 + x
    add ecx, [video_base] ; ecx <- y * 1024 + x + video_base
    mov al, [ecx] ; al <- [y * 1024 + x + video_base]

    endproc
    end
     
    Última edição: 23 de Novembro de 2006
  11. MadOnion

    MadOnion Folding Member

    Obrigado por tudo.
     
  12. JavaLL

    JavaLL Power Member

    Qual e o assemblador que estao a usar para ler os registos da Intel?. podem por o link para sacar o programar?

    orbigado
     
  13. tasjonde2

    tasjonde2 Power Member

    compilador de assembly, eu utilizei o TURBO assembler da borland.
     
  14. MadOnion

    MadOnion Folding Member

    Já encontrei a solução, embora tivesse experimentado a solução do homem bomba.
    Como a notação que eu uso é do GAS-GNU, tive que instalar o gcc, que é o compilador que mais uso para tudo, no momento, java, assembly e c.

    Cumps
     
  15. ski3

    ski3 Power Member

    Boas pessoal,

    Na fac estou a usar o nasm para linux, mas gostava de saber se alguem sabe como colocar o nasm a funcar com o windows xp?
    Eu já consigo instalar o nasm no xp mas depois não consigo linkar os programas.
    O que é que utilizam para fazer o link no windows xp com o nasm?
     
  16. CGabry

    CGabry Power Member

    o nasm funciona no xp, para linkares os programas eu usava o alink.
     

Partilhar esta Página