Есть какой-то «супервизор», чтобы не позволить «пользовательскому пространству» делать что-то вроде: mov CS, 200h ?
Какая защита есть?
Спасибо
Есть какой-то «супервизор», чтобы не позволить «пользовательскому пространству» делать что-то вроде: mov CS, 200h ?
Какая защита есть?
Спасибо
На фактическом процессоре 8086? Я так не думаю. Расширенные функции защиты действительно начали появляться только с 80286. Не было никаких ограничений на то, какие программы могли установить сегмент кода на 8086.
На 80386 в защищенном режиме (я думаю, что он был первым, кто предоставил это, но, возможно, это был 80286), значения в CS (и DS, ES и т. д.) изменились с сегмента регистры для селекторов, и они должны были иметь записи в таблице дескрипторов (например: GDT, LDT).
В этот момент защита стала возможной, но я не думаю, что загрузка в регистр селектора вызвала нарушения. Скорее это было использование селектора выше вашего уровня привилегий.
Хотя для CS это произошло бы довольно быстро после того, как вы его изменили (по мере того, как вы пытались выполнить следующую инструкцию).
См. здесь для получения дополнительной информации.
mov CS, imm
недействительна просто потому, что ее не существует. Существует только mov CS, ax
.
- person ruslik; 17.12.2010