Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26066
Рейтинг: 2120
#16: 2019-01-16 00:40:17 ЛС | профиль | цитата
flint2 писал(а):
Я понял так, что надо сохранять данные именно в программе под названием exe

Да никто тут про это не писал, даже в мыслях не было. Рассматривали вариант сохранения таблицы и картинок в сторонний файл, по возможности при помощи компонентов упаковки стримов, с последующим чтением. Накопали, что эти компоненты не совсем подходят для динамических задач. Привели в соответствие, получили результат, все, никаких попыток записи в исполнительный файл даже не рассматривалось. Млин, откуда ты это взял только?
карма: 22

0
Ответов: 2059
Рейтинг: 131
#17: 2019-01-16 01:03:05 ЛС | профиль | цитата
nesco, Виноват, исправлюсь!

А я сидел, делал...

Пишем определение функции и она компилируется.
Вызываем функцию и она исполняется.
Завтра покажу, как сохранять наработанное...
http://forum.hiasm.com/getfile/38570
Вверху пишем сначала определение функций
Например : nesco S" qwerty" TYPE ;
Нажимаем кнопку.
Ничего не произошло, кроме того, что были объявлены и скомпилированны функции.
Набираем (вверху) nesco, или Flint2 и смотрим результат

Редактировалось 1 раз(а), последний 2019-01-16 01:07:24
карма: 6

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#18: 2019-01-16 02:04:57 ЛС | профиль | цитата
flint2 писал(а):
А я сидел, делал...

Это что, попытка сделать генератор кода в RealTime? А что за ЯВУ тут используется? Или это чисто своя разработка?

Редактировалось 1 раз(а), последний 2019-01-16 02:07:27
карма: 22

0
Ответов: 2059
Рейтинг: 131
#19: 2019-01-16 12:23:59 ЛС | профиль | цитата
nesco, Да.
Давно делал, где-то компьютера два назад. Забросил.
Что-то типа Lua.
Только без всяких dll, и виртуальной машины для чтения скриптов.
Язык саморасширяющейся, с возможностью сохранения самого себя.
Все примитивы Win API. С небольшими переделками работает и под Linux.
Если это прикладная программа, то объявляем какую-то функцию главной, она и будет точкой входа куда передаётся управление после загрузки файла.
Сделал "целевую компиляцию" в ассемблерный код Delphi.
То-есть, получаем текст программы, который вставляется в IC, или в *.pas компонента.
code

ODE CompareAnyStr ( Str1 Str2 = Result )
POP EAX, EBX
PUSH 1
OR EAX, EAX
JZ SHORT @@2
OR EBX, EBX
JZ SHORT @@2
PUSH ESI, EDI
XCHG EAX, ESI
MOV EDI, EBX
XOR EAX, EAX
LODSB
MOVZX ECX, BYTE PTR [EDI]
INC EDI
MOV DL, AL
MOV DH, CL
CMP ECX, EAX
JBE SHORT @@6
XCHG EAX, ECX
@@6: JCXZ SHORT @@7
@@4: LODSB
CALL TOUP
PUSH EAX
MOV AL, [EDI]
INC EDI
CALL TOUP
MOV [ESP+1], AL
POP EAX
CMP AL, AH
JA SHORT @@1
JB SHORT @@3
LOOP @@4
@@7: CMP DL, DH
JA SHORT @@1
JZ SHORT @@5
@@3: DEC DWP [ESP+8]
@@5: DEC DWP [ESP+8]
@@1: POP EDI, ESI
@@2: RET
TOUP:
MOVZX EAX, AL
PUSH EDX, ECX, EAX
CALL CHARUPPERA
POP ECX, EDX
RET
END-CODE
Причём, только тех функций, которые задействованы, а не всего ядра.
Передача параметров в\из Delphi, C++ через стек. Внутри себя, и через регистры, и через стек. Код шустрый получается.

Вчера спешил, по этому нашел какой-то exe-шник сделанный на этом языке, конвертировал его в dll, а dll перевёл в скрипт IC.
P.S.
Перед новым годом сделал компилятор для LUA.
Тоже самое, компиляция скрипта в exe и скрипт для delphi.
Это не JIT-компиляция, как это делается официально http://luajit.org/luajit.html, а всё по честному.
Смысл в этом небольшой, скрипты и нужны, чтобы чего-то моделировать и менять на ходу. Но для exe-шника вполне справедливо.
Буду выкладывать, много чего наделал Lua-Hiasm.
Сейчас у меня беда с компьютером.
Сегодня купил винт и материнку, но похоже этим не обойтись.

Редактировалось 4 раз(а), последний 2019-01-16 14:15:04
карма: 6

0
19
Сообщение
...
Прикрепленные файлы
(файлы не залиты)