Показать сообщение отдельно
Старый 14.10.2009, 16:45   #61
Tronix
Знающий
 
Регистрация: 26.07.2009
Адрес: Россия, Москва
Сообщений: 318
Написано 103 полезных сообщений
(для 331 пользователей)
Ответ: Исходники MP получены!

Пояснения:
сборка описана в readmerus.txt
----
поправил индексацию массивов, т.е. в паскале стартовый индекс массива может быть любым, за счет того что после вычисления индекса элемента из него вычитается стартовый индекс.
Если начальный индекс = 0, то его можно исключить, что я и сделал, тем более что всегда стараюсь чтоб массив начинался с нуля
-------
синтаксис inline:
__
1-я модификация: inline(b : byte); - прямая запись байта в конструируемый код.
__
2-я модификация: inline(type_str, param1_str, param2_str, param3_str : string); - конструктор указателя на метод или поле в константном пуле, все параметры должны быть строками текста, (строковые переменные не допускаются).
где type_str:
"getstatic" получение статического поля класса
"putstatic" установка статического поля в классе
"getfield" перенос поля из объекта
"putfield" установка поля в объекте
"invokevirtual" вызывает метод экземпляра, основываясь на типе времени выполнения
"invokenonvirtual" вызывает метод экземпляра, основываясь на не виртуальном типе
"invokestatic" вызов метода класса (статического метода)
____
var
  
myint integer;
begin

  
//myint:=10;
  
inline(16); //  bipush;
  
inline(10);  // byte
  
inline('putstatic','M','myint','I') ;

  
//myint:=getWidth;
  
inline('getstatic''M''I''Ljavax/microedition/lcdui/Image;');
  
inline('invokevirtual''javax/microedition/lcdui/Image''getWidth''()I');
  
inline('putstatic','M','myint','I') ; 
__
можно писать любой java-байт-код, оперируя параметрами стека, только если его получать в MidletPascal'е, то стек нужно приводить под известные в MP типы.
__
если указывать произвольные методы, то скорее всего верификатор MP будет, выдавать ошибки, но файл "M.class" будет создан.
---
для анализа программ удобно использовать java-декомпилер "forum.boolean.name\MidletPascal\Основной Форум\Создание MidletPascal compiler'а\JD.exe", просматривая как собраны команды, и какие у них ,байт-коды
Вложения
Тип файла: zip mpc005.zip (559.7 Кб, 770 просмотров)
(Offline)
 
Ответить с цитированием