исключения x86 и флаги

я знаю, что, когда Вы, например, делитесь на нуль, флаг aproptiate установлен в регистре флага CPU. Но сегодня я считал, что существуют специальные векторы прерывания (я думаю первые 16 в IVT), которые используются для таких условий как деление на нуль. Так, что я хочу спросить, делает какую-либо ситуацию, что мошенники изменяются, флаг som также инициировал соответствующее прерывание? Поскольку в школе, мы использовали условные переходы, который проверяет, что погодный флаг переноса был установлен или нет, и я не помню, что было некоторое прерывание, инициированное этим. Таким образом, я довольно смущен теперь.

3
задан 03.05.2010, 18:31

1 ответ

Существует два типа прерываний.

Первый тип является прерываниями для передачи сигналов об аппаратных событиях, как этот, аппаратный таймер протек или что контроллер жесткого диска закончил передавать данные памяти.

Второй тип является прерываниями для передачи сигналов о некотором неожиданном условии. Некоторые примеры: доступ к недопустимой памяти, деление на нуль (на самом деле это, "делит переполнение", которое происходит, не только когда Вы делитесь на нуль, но даже когда Вы делите очень большое значение на очень маленькое значение), команда контрольного останова, аппаратная точка останова и т.д. Этот тип исключений повышен ЦП, когда он не может завершить текущую команду и обычно приводить к завершению текущего процесса или вторжению в отладчик. Они на самом деле не связаны с флагами ЦП, которые содержат результаты последней инструкции.

3
ответ дан 08.12.2019, 01:09

Теги

Похожие вопросы