Цитата Сообщение от Barmaley_m Посмотреть сообщение
Не знаю как сейчас, а во времена дисководов запрет прерываний на длительное время - неизбежность при работе любой оси.
Дисковод не нужен. Есть винты/карточки.

Цитата Сообщение от bigral Посмотреть сообщение
Со стеком можно поступить жестко - определить ему место с адреса #ffff и запретить его использование кроме как для адресов возврата
Нужен стек для регистров, иначе невозможно реализовать даже самые примитивные системные вызовы типа переключения страниц. Они должны быть реентерабельными, так что сохранять в переменные не могут, только в стек.

Цитата Сообщение от bigral Посмотреть сообщение
Тут нужно будет ввести понятие short call - который сможет и напрямую работать (при условии что тот кого он собрался вызывать перемещается всегда вместе с тем кто использует этот short call).
Требует опять-таки стека только для адресов, то есть невозможно (см. выше).

Цитата Сообщение от Sayman Посмотреть сообщение
alone, загляни в исходники mp/m. там программы перемещаемые. всё придумано до нас. софтина компилируется под адрес 0. в конце файла есть карта. перемещаемость кратная 256 байт если не ошибаюсь. более детально тебе подскажет исходник самой mp/m. если надо, то смотреть тут. разделы mp/m I и mp/m II.
Где там перемещаемость на лету?

Цитата Сообщение от bigral Посмотреть сообщение
forth даст замедление в 3...4 раза всего то
Это на математических задачах. А на задачах перемалывания памяти скорее раз в 30..40.