2011-05-03 5 views
0

나는 표준 자바 code.Like이JVM의 어셈블리 언어를 표준 고수준 Java 코드에 통합 할 수 있습니까?

public class SomeClass{ 

    public void testPrinting(){ 

      System.out.println("Hello World"); 

    } 

    .method public myMethod()V 

    //Some work 

    .end method 

} 

로이게 가능 (재스민 자바 (어셈블러 인터페이스)를 사용하여) 자바 어셈블리 코드를 병합하려고?

+0

C/C++ 어셈블리를 사용하면 성능이 향상됩니다. 그러나 Java의 경우 바이트 코드는 가상 시스템을위한 것이며 JVM은 컴파일러가 생성하는 일종의 구조에 대해 매우 민감하게 조정됩니다. 손으로 쓴 바이트 코드가 느려지더라도 나는 놀라지 않을 것이다. ;) –

+0

@Peter Lawrey 만약 매개 변수 목록과 일부 메서드 이름을 받아들이는 루틴 (재스민을 따르는)을 작성하려고 시도한 다음 스택에 푸시 한 다음 실행합니다 (메서드가 일부에 속한다는 것을 기억하십시오). standered java로 작성된 클래스 파일) 이것이 가능합니까? – zaree

+0

Java에서 한 줄로 할 수 있습니다. 당신이 자바로 할 수없는 일의 예를 들어 줄 수 있습니까? –

답변

2

자스민을 사용하여 클래스를 만들고 모든 자바 프로젝트에서 사용할 수 있습니다. 같은 클래스의 java와 "assembly"코드를 혼합하는 것은 쉬운 일이 아니지만 표준 Java 클래스의 "assembly-source"클래스에서 일부 코드를 호출 할 수 있습니다.

class StandardJava { 

    public void myMethod() { 
     Assembly.someMethod(); 
    } 

} 
+0

답을 뒷받침하는 몇 가지 예를 들려 줄 수 있습니까? – zaree

+0

일부 코드를 추가하려면 내 대답 편집 – ymajoros

0

자신 만의 전처리기를 작성해야합니다. 이는 Jasmin 코드가 Java로 정의 된 멤버를 참조하고 Java 코드가 Jasmin 코드로 정의 된 멤버를 참조하는 경우 특히 어려울 수 있습니다. 나는 당신이 자바를 쓰고, 분해하고, 재스민 코드와 병합하는 것이 가장 좋다고 생각한다.