vak: (Улыбка)
[personal profile] vak
Дошёл до реализации необычного свойства процессора микро-БЭСМ, отсутствующего у современных компьютеров. Каждое слово в оперативной памяти имеет дополнительный бит запрета записи. При попытке записи по этому адресу возникает прерывание "защита адреса при записи". Чтобы всё-таки иметь возможность изменить значение (и бит запрета), память имеет дополнительный сигнал, отменяющий защиту.

Получается полезная возможность, похожая на const в языке Си, но при этом защиту можно включать и отключать по ходу выполнения программы. Что-то отдалённо похожее - теговая архитектура - существовало в некоторых ранних компьютерах, но не прижилось.

Date: 2016-12-11 21:55 (UTC)
ext_646638: (Default)
From: [identity profile] rdia.livejournal.com
Я, конечно, не рассматриваю тут кросс-платформенные ассемблеры С/С++. В них - очень кстати, особенно, если в программе снятие защиты делается каким-то очень явным образом.

Тогда при вызове функции можно сразу по умолчанию запрещать переписывать данные стека, например. Или наоборот, разрешать запись только в выделенную память (правда это будет медленно).

Зато у вас будет большой геморрой с многопоточностью. :-)