Assembler - язык неограниченных возможностей


Отладочные регистры - часть 2


бит 2: бит G0 — точка останова 0 включена

биты 8, 6, 4, 2, 0: биты LE, L3, L2, L1, L0 — действуют так же, как GE – G0, но обнуляются при переключении задачи (локальные точки останова)

DR6 (DSR) — регистр состояния отладки — содержит информацию о причине отладочного останова для обработчика исключения #DB

    биты 31 – 16: единицы

    бит 15: ВТ — причина прерывания — отладочный бит в TSS задачи, в которую только что произошло переключение

    бит 14: BS — причина прерывания — флаг трассировки ТF из регистра FLAGS

    бит 13: BD — причина прерывания — следующая команда собирается писать или читать отладочный регистр, и бит GD в DR7 установлен в 1

    бит 12: 0

    биты 11 – 4: единицы

    бит 3: B3 — выполнился останов в точке 3

    бит 2: B2 — выполнился останов в точке 2

    бит 1: B1 — выполнился останов в точке 1

    бит 0: B0 — выполнился останов в точке 0

Процессор не очищает биты причин прерывания в этом регистре, так что обработчику исключения #BD следует делать это самостоятельно. Кроме того, одновременно может произойти прерывание из-за нескольких причин, тогда несколько бит будут установлены.

DR4 – DR5 зарезервированы. На процессорах до Pentium, или если бит DE регистра CR4 равен нулю, обращение к этим регистрам приводит к обращению к DR6 и DR7 соответственно. Если бит DE = 1, происходит исключение #UD

DR0 – DR3 содержат 32-битные линейные адреса четырех возможных точек останова по доступу к памяти

Если условия для отладочного останова выполняются, процессор вызывает исключение #DB.





Начало  Назад  Вперед