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






