mpc v007
Все подробности в readmerus.txt
теперь будет выглядеть так:
inline(
16 10 //byte-code type (bipush)
bipush 10 //mnemonic type
putstatic field 'M','myint','I'
) ;
inline(
getstaticfield'M', 'I', 'Ljavax/microedition/lcdui/Image;';//rem1
invokevirtualmethod'javax/microedition/lcdui/Image', 'getWidth', '()I';{rem2}
putstaticfield'M','myint','I'(*rem3*)
);
asm-код записывается через ";" на любую длину, может состоять из байта или опкода.
__
Байт проверяется на диапазон 0..255
__
опкод может иметь параметры, которые проверяются для данной команды (число / ссылка_на_константный_пул_с_указанием_типа_записи)
указание_типа_записи: int / utf8 / str / class / nametype / field / method
___
проверка параметров опкода производиться на:
1 байтовый эл-т
2-х байтовый эл-т
4-х байтовый эл-т
1 байт - индекс конст.пула
2 байт - индекс конст.пула
тип записи конст.пула
параметры типа константного пула
Исправил некоторые свои недочеты, вывод сообщений об ошибках, добавил мнемонические имена в ассемблер и простую проверку корректности.