170 похожих чатов

Ну то есть до уровня асма придется опуститься?)

13 ответов

17 просмотров

Если вы придумали свою вм со своими регистрами и прочим, то вам предстоит придумать соглашения о вызове функций

\--- Автор вопроса
Denis P
Если вы придумали свою вм со своими регистрами и п...

Нет регистров пока что)) stack based virtual machine Хочу иметь возможность из кода виртуальной машины вызвать нативную функцию. Необязательно у меня виртуальная машина вызывает такие же виртуализированные функции)

\--
Нет регистров пока что)) stack based virtual machi...

А в чём у вас проблема. Есть список функций. Вы считывание опкод. Интерпретатор смотрит опкод, понимает, какую функцию вызывать

\--
Нет регистров пока что)) stack based virtual machi...

Ну ты просто тогда кодируешь конвенцию вызова нужную и пишешь переходник

\--- Автор вопроса
netricks
А в чём у вас проблема. Есть список функций. Вы сч...

Не так. Вот я запушил на стэк виртуальной машины адрес функции. Что это за функция виртуальной машине неизвестно. Это просто адрес. Нет никакого списка функций и прочего. Попадается опкод вызова, берется со стэка верхнее значение и его вызываем.

\--
Не так. Вот я запушил на стэк виртуальной машины а...

А можно глупый вопрос. Откуда адрес взялся?

\--
Не так. Вот я запушил на стэк виртуальной машины а...

Хорошо. Описанное очень напоминает классическую стековую машину. Смотрите реализацию языка Lua. В книжке Роберта Иерусалимски довольно подробно описано, как она работает

\--- Автор вопроса
Alex Noname
А можно глупый вопрос. Откуда адрес взялся?

Ну пока что он берется просто из массива. То есть в мэйне формируется массив кода для виртуальной машины. Пока что адреса пишутся ручками на известные функции (тесты), но нужно универсально. Формально может быть потом сделаю что-то типа компилятора. Что туда пихнут никому неизвестно

\--
Ну пока что он берется просто из массива. То есть...

Не очень понятен юзкейс такого. Задать список таких функций это же задача спецификации вм, и потом интерпретатора байткода? Или тот кто пишет байткод будет это задавать? Я просто рассуждал что есть список интринзик функций вм и всё :) но видимо тут речь про ffi из вм в цпп.

\--- Автор вопроса
Alex Noname
Не очень понятен юзкейс такого. Задать список таки...

да, это из опкодов в с++. Функции задает, тот кто пишет байт код.

Alex Noname
Не очень понятен юзкейс такого. Задать список таки...

Все равно адреса функций надо где-то собрать. В этом же месте вполне можно собрать сигнатуры, тем более, что байткоду придётся данные паковать надлежащим способом. Следовательно, вводная о том, что никакой информации о функции нет... непонятна

netricks
Все равно адреса функций надо где-то собрать. В эт...

Ну да обычно цпп модуль с расширением декларирует какой то глобальный обьект с метаинформацией о функциях

Alex Noname
Не очень понятен юзкейс такого. Задать список таки...

обычно ты в каком-то виде предоставляешь описание, что вот такая то функция, такие то параметры, и такая то конвенция вызова, и этого достаточно чтобы сгенерить асм код вызова

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Карта сайта