Cтраница 1
Пошаговое прерывание ( тип 1) вырабатывается автоматически при TF 1 после выполнения каждой команды или пары команд, если первая команда изменяет содержимое сегментного регистра. Обычно это прерывание используется в программах отладки для реализации покомандного выполнения программы. При обработке прерывания МП включает в стек регистры F, CS и IP, а затем сбрасывает флаги IF и TF. Поэтому после вызова подпрограммы МП работает обычным образом, а не в пошаговом режиме. Подпрограмма обработки пошагового прерывания обычно осуществляет индикацию внутренних регистров МП и содержимого некоторых ячеек памяти. Когда подпрограмма завершается, из стека извлекаются прежние состояния флагов и МП снова переводится в пошаговый режим работы. [1]
Выработка пошагового прерывания зависит от состояния признака пошагового режима TF. Если ТГ, то пошаговое прерывание генерируется после выполнения каждой текущей команды или пары текущих команд, первой из которых является команда изменения содержимого сегментного регистра. Пошаговые прерывания обычно используются в программах отладки. [2]
Внутренние аппаратные прерывания делятся на прерывание по ошибке деления и пошаговые прерывания. [3]
Выработка пошагового прерывания зависит от состояния признака пошагового режима TF. Если ТГ, то пошаговое прерывание генерируется после выполнения каждой текущей команды или пары текущих команд, первой из которых является команда изменения содержимого сегментного регистра. Пошаговые прерывания обычно используются в программах отладки. [4]
Выработка пошагового прерывания зависит от состояния признака пошагового режима TF. Если ТГ, то пошаговое прерывание генерируется после выполнения каждой текущей команды или пары текущих команд, первой из которых является команда изменения содержимого сегментного регистра. Пошаговые прерывания обычно используются в программах отладки. [5]
В пошаговом режиме МП реагирует на внешние и внутренние прерывания. Обычным путем ( с включением в стек регистров CS, IP и F) осуществляется переход на подпрограмму обработки возникшего прерывания. Однако до выполнения первой команды этой подпрограммы распознается пошаговое прерывание и управление передается подпрограмме обработки пошагового прерывания типа 1, после завершения которой МП возвращается к выполнению подпрограммы принятого ранее прерывания. [6]
В пошаговом режиме МП реагирует на внешние и внутренние прерывания. Обычным путем ( с включением в стек регистров CS, IP и F) осуществляется переход на подпрограмму обработки возникшего прерывания. Однако до выполнения первой команды этой подпрограммы распознается пошаговое прерывание и управление передается подпрограмме обработки пошагового прерывания типа 1, после завершения которой МП возвращается к выполнению подпрограммы принятого ранее прерывания. [7]
Пошаговое прерывание ( тип 1) вырабатывается автоматически при TF 1 после выполнения каждой команды или пары команд, если первая команда изменяет содержимое сегментного регистра. Обычно это прерывание используется в программах отладки для реализации покомандного выполнения программы. При обработке прерывания МП включает в стек регистры F, CS и IP, а затем сбрасывает флаги IF и TF. Поэтому после вызова подпрограммы МП работает обычным образом, а не в пошаговом режиме. Подпрограмма обработки пошагового прерывания обычно осуществляет индикацию внутренних регистров МП и содержимого некоторых ячеек памяти. Когда подпрограмма завершается, из стека извлекаются прежние состояния флагов и МП снова переводится в пошаговый режим работы. [8]
Как уже отмечалось, МП ВМ86 не имеет команд установки и сброса флага TF. Отсутствуют также команды, которые позволили бы организовать пересылки между старшим байтом регистра F и общим регистром МП. Для включения регистра F в стек и извлечения его из стека предусмотрены соответственно команды PUSHF и POPF. Значение TF1 устанавливается путем объединения по ИЛИ содержимого регистра с константой 0100, a TF 0 - путем объединения по И с константой FEFF. Если установлено TF1, то первое пошаговое прерывание произойдет после выполнения команды, следующей за командой возврата из подпрограммы обработки пошагового прерывания. [9]
Как уже отмечалось, МП ВМ86 не имеет команд установки и сброса флага TF. Отсутствуют также команды, которые позволили бы организовать пересылки между старшим байтом регистра F и общим регистром МП. Для включения регистра F в стек и извлечения его из стека предусмотрены соответственно команды PUSHF и POPF. Значение TF1 устанавливается путем объединения по ИЛИ содержимого регистра с константой 0100, a TF 0 - путем объединения по И с константой FEFF. Если установлено TF1, то первое пошаговое прерывание произойдет после выполнения команды, следующей за командой возврата из подпрограммы обработки пошагового прерывания. [10]