Показать сообщение отдельно
Старый 23.06.2009, 01:40   #168
Serg153
Нуждающийся
 
Регистрация: 03.01.2009
Сообщений: 93
Написано 8 полезных сообщений
(для 15 пользователей)
Ответ: создание MIDletPascal compiler'a

чтобы например AsemblerJavaByte (AJ понимал и делалл Class из такого файла...
 ; в заголовке указываем имя основного класса (например, Hello)
 ; Объявляем класс Hello наследуемый от MIDlet
.class public Hello
.super javax/microedition/midlet/MIDlet

 ; объявляем поля: 
 ; Display display - менеджер дисплея
.field display Ljavax/microedition/lcdui/Display;
 ; Form form - форма отображаемая на экране
.field form Ljavax/microedition/lcdui/Form;

 ; конструктор класса
.method public <init>()V
   .limit stack 1
   .limit locals 1
   aload_0               
   invokespecial javax/microedition/midlet/MIDlet/<init>()V
   return                
.end method              

 ; точка входа в программу - метод startApp
.method public startApp()V
   .limit stack 4
   .limit locals 1
 ; display = Display.getDisplay(this) - получаем ссылку на менеджер дисплея
   aload_0               
   aload_0               
   invokestatic javax/microedition/lcdui/Display/getDisplay(Ljavax/microedition/midlet/MIDlet;)Ljavax/microedition/lcdui/Display;
   putfield Hello/display Ljavax/microedition/lcdui/Display;
 ; form = new Form("Hello") - создаем новую форму
   aload_0               
   new javax/microedition/lcdui/Form
   dup                   
   ldc "Hello"
   invokespecial javax/microedition/lcdui/Form/<init>(Ljava/lang/String;)V
   putfield Hello/form Ljavax/microedition/lcdui/Form;
 ; form.append("Hello, World!") - добавляем в форму текст "Hello, World!"
   aload_0               
   getfield Hello/form Ljavax/microedition/lcdui/Form;
   ldc "Hello, World!"
   invokevirtual javax/microedition/lcdui/Form/append(Ljava/lang/String;)I
   pop 
 ; display.setCurrent(form) - выводим форму на экран                  
   aload_0               
   getfield Hello/display Ljavax/microedition/lcdui/Display;
   aload_0               
   getfield Hello/form Ljavax/microedition/lcdui/Form;
   invokevirtual javax/microedition/lcdui/Display/setCurrent(Ljavax/microedition/lcdui/Displayable;)V
 ; возвращаемся из метода
   return                
.end method              

 ; метод pauseApp
.method public pauseApp()V
   .limit stack 0
   .limit locals 1
   return                
.end method              

 ; метод destroyApp
.method  public destroyApp(Z)V
   .limit stack 0
   .limit locals 2
   return                
.end method
(Offline)
 
Ответить с цитированием