Прива все!!!
abcdef
Дружище... Посмотрел твою модификацию.... Ээээээ... Ты зачем внутренний стек меняешь то? Не надо... Этот стек сформирован для внутренней нашей виртуальной машины...
То есть функция
GenOp просто добавляет в массив
Code[] команды и параметры для них. Приблизительно после разбора проги получается примерно следущее в стеке
39 10 28 61 28 77 41 3
переводим на полурусский
OPJmp 10 -> Перепрыгнуть через 10 команд
OPLdC 61 -> Загрузить Сhar(букву) A - код 61
OPLdC 77 -> Загрузить Char(букву) F - код 77
OPCall 3 -> Вызвать подпрограмму с номером 3 в
IdentTab
Вот внутренний ассемблер и делает перевод в опкод i386 а нам надо просто перевести в опкод Java...
Поэтому стек не надо переделывать, он уже готов...
Нам надо перекроить всего 2 функции
1. AssembleAndLink (Она перекраивает наш стековый байт код в машинный код)
2. В линкере сформировать константный пул из
IdentTab
Ну и в конце концов связать пул и код....