Compilador assembly para Windows

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:
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...
 
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:
para compilador assembly uso o MARS, é muito bom e tem modulo grafico! nao sei se é isto que pretendes mas ca vai o link http://courses.missouristate.edu/KenVollmar/MARS/download.htm

cumps

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:
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.
 
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.

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:
'nasmw' is not recognized as an internal or external command,
operable program or batch file.

>(
 
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...
 
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.
 
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:
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

Obrigado por tudo.
 
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

compilador de assembly, eu utilizei o TURBO assembler da borland.
 
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
 
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?
 
Back
Topo