Правда я с первого взгляда разобрался.
При таком подходе есть большой риск остаться лохом на всю жизнь
Заразная это болезнь - делать чего-то без понимания, как это работает. Некоторые всю жизнь переучиться не могут
Заразная это болезнь - делать чего-то без понимания, как это работает. Некоторые всю жизнь переучиться не могут
А вот этого не понял.
Алтернативы ведь нет!
На счёт понимания, как работает Басм в дельфи есть.
И все изъяны извесны.
А если по поводу кода, то там вначале дополнительный стек организован.
Конечно можно было сделать всё лаконичней, но дело в том, что ассемблерный код генерируется из скрипта на Форте.
Поэтому автоматом генерируется вход и выход из форта.
Пока целевой компилятор-транслятор для SPF вылизываю.
Что касаемо Hiasm'а, то тут не спорю, иначе и вопросы бы не задавал.
Так что не совсем понятно, чему переучиваться?
P.S. А то что все строки в кучу, то не моя вина. Так сайт форматирует.
В тексте всё пучком.
Наверное как то можно это обойти,пока не знаю как.
------------ Дoбавленo в 02.58:
Получилось масло маслянное.
Вот мой вариант:
...
Procedure THiAsmClass.doWork;
begin
\\ зто не нужно Name1(Param1);
_hi_OnEvent(onEvent,Par2);
end;
Вот Ваш вариант:
...
procedure THiAsmClass.doWork;
var S:string;
begin
\\ зто не нужно S := ReadString(_Data, Param1);
Name1(onEvent, S);
end;
По сути произошла замена _hi_OnEvent(onEvent,Par2); на Name1(onEvent, S);
Тогда вопрос такой - откуда можно прочитать адрес onEvent?
Весь смысл в том, что Name1 (в терминах примеров) может быть функцией или процедурой со множеством параметров.
И выводить сообщения или каким то образом обработанные строки.
Во входных параметрах "OnEvent" не должно быть.
Единственное что пока на ум приходит сделать так:
Допустим существует некая вычислительная функция Name2, а вывод в правую точку через call Name1, которую Вы привели в качестве примера.
Меняя параметр onEvent1, onEvent2,..., можно выводить в разные точки.