Насколько я понимаю, прерывания запрещаются для того процессора, на котором происходит выполнение потока, из которого были вызваны эти инструкции, в результате чего приложение как бы изолируется от остальной системы и выполняется изолировано.
Вот пример такого кода:
- Код: Выделить всё
; запрет всех прерываний
cli
in al, 70h
or al, 80h
out 70h, al ; запрет NMI
- Код: Выделить всё
; разрешаем аппаратные прерывания и NMI
in al, 70h
and al, 7Fh
out 70h, al
sti
С процессором можно попрощаться в этот момент до тех пор, пока поток сам не снимет запрет на получения прерываний CPU. Проблема в том, что приведенные в статье примеры ASM кода мне воспроизвести не удалось, как и разобраться в коде, поскольку мои знания для этого слишком поверхностны. Возможно кто то сталкивался с подобной проблемой запрета прерываний? Если я правильно понял ситуацию, можно ли реализовать эту логику при помощи асемблерных вставок на паскале?