cli
необходимо, только если мы в настоящий момент не требуется обслуживание аппаратных прерываний.
Трудно сказать, почему он используется в коде вы имеете в виду, не видя реального кода, но в целом может быть несколько причин:
- , чтобы избежать условий гонки с обслуживания прерывания (при доступе общие изменяемые данные)
- изменить вектор прерывания таблицу атомарно (очень похож на выше)
- изменить
SS:SP
атомарно (очень похож на выше)
- , чтобы избежать исключений, вызванных ЗРМС при переключении Режимы процессора (реальный < -> защита)
- для измерения времени более точно избегая ISR вклад
- и т.д.
В основном, когда аппаратные ЗРМСЫ могут мешать основной код в некоторых нежелательных способах, вы отключить прерывания.
О, и int 10h
не имеет ничего общего с запросами прерывания, поступающими с аппаратного обеспечения. Просто некоторые ISR используются для обработки аппаратных прерываний (от, например,клавиатура или сеть), а другие используются в качестве вспомогательных подпрограмм или системных вызовов с удобным интерфейсом (вам не нужно знать точное местоположение ISR, число векторов (10 часов)). Функции BIOS int 10h
позволяют изменять режимы отображения и писать текст на экране.
Можете ли вы показать нам, что «сделайте что-нибудь здесь»? –