Converter codigo java em assembly?

Olá Gujeiros,

Gostaria de saber se existe algum pluglin ou ferramenta que converte código java p/ assembly?

Abs,

confesso que fiquei curioso… que tipo de conversão… lógica algoritmica?

Tu gostaria de ver como ficaria um código Assembly com a mesma função do teu código Java? Não sei se existe, mas deve ser no mínimo divertido =D

Não necessariamente tudo, mas gostaria de ver converter um loop… Coisa pequena por exemplo este codigo:

  int cont= 0;
  int a = 3;
  int b = 4;   
  while(cont<=10){
    if(a<=b){
       cont = cont +1;
    }
    else{
       cont = cont + 2;
  }

Entenderam???

Abs, =)

Existe sim, chama-se javac. =P

Entretanto, é um assembly que roda na virtual machine. Existem alguns aplicativos que também compilam java em .exe.

Olá Viny…
Mas eu gostaria de visualizar o código acima em assembly, como que ficaria uma instrução simples java em assembly…

Abraços e desde já agradeço pela ajuda.

=)

Se serve o assembly do bytecode, existe um programa chamado javap, que vem junto com o JRE. Basta usar javap arquivo.class e a opção c

Caso contrário, compile usando algum compilador de java (difícil de encontrar) e use o debug do windows. Basta digitar debug nomedoExe e usar a opção a

Entendi garotooo … Vou fazer este procedimentooo…

Valeu pela dica,

Abs

uma vez, ainda na facul, tive que criar uma linguagem e um compilador.
desenhei os automatos da minha linguagem no papel, defini as palavras reservadas e utilizei o javacc para criar o compilador: analisador lexico, sintático e semântico, e por fim, o gerador de códigos.
Minha linguagem gerava código "assembly" conforme a instruction set da JVM, porém esse código "assembly" era em formato ascii, podendo ser aberto e visualizado por qquer editor de textos.

algo como

int a = b + c

virava algo como

ADD $1, $2, $3

depois eu pegava o código assembly, em formato texto, gerado e utilizava o JASMIN: http://jasmin.sourceforge.net/
para transformar o meu texto em um .class real
daeh os programas gerados na minha linguagem rodavam na JVM.

Dá uma olhada se o Jasmin não faz o caminho inverso tbém .class -> txt
vi que lá tem uma seção do conj de instruções

[]s

Geralmente os que compilam o código em EXE, somente criam uma chamada para o java… usando máquina virtual e tudo mais…

Então não vai adiantar pra ver o assembly de máquina…

O assembly de máquina só existe dentro da máquina virtual…

Se você quer ver um código java ser traduzido para assembly, use o gcj e um editor de hexadecimal para ver o resultado.
O gcj é um compilador de java do set gnu que é capaz de compilar para assembly nativo mesmo. Está presente no mingw.

http://www.mingw.org

ou pode usar o cygnus

http://www.cygwin.com

se tiver como trnaformar o codigo java em hexadecimal, vai ter como programar controladores PIC com java, nossa que felicidade rsrs