Консультация № 64753
29.11.2006, 14:18
0.00 руб.
0 1 1
Здравствуйте уважаемые эксперты!

Объясните пожалуйста принцип работы отладчика. Вот к примеру фрагмент кода.

mov ah, 3h
int 10h
mov ah, 2h
mov dx, 1500h
int 10h

После вызова третьей функции в dx заносится текущие координаты курсора. Если я запускаю CV или AFDPRO, то вижу только загрузку тройки в старший байт, а как только выполняется 10-е прерывание, то отладчик сразу перепрыгивает на сегмент обработчика этого прерывания и больше из него не выходит. Соответственно я не вижу в dx первичные координаты курсора и также не вижу дальнейшее выполнеие кода, то есть загрузку второй функции с указанием своих координат. Может быть есть какой нибудь способ проигнорировать переход отладчика на этот сегмент или если он всё таки перепрыгнул, то как вернуться назад и продолжить выполнение кода.
Спасибо!

Обсуждение

Неизвестный
29.11.2006, 17:36
общий
это ответ
Приветствую, Paltus!
У отладчиков должны быть команды пошагового режима разных видов - со входом в подпрограммы/предывания и без входа в подпрограммы/прерывания. Посмотрите в справке. (CV, AFDPRO - не видел самих программ, в turbodebougger это F7 (trace into - входить в) и F8 (step over - перешагнуть) ).
Кроме того, есть точки останова (точки прерывания, брейкпоинты, breakpoints).
вы можете поставить точку останова сразу после первого вызова прерывания, на команду "mov ah, 2h", а затем запустить на исполнение (не пошагово). Тогда после того как произойдёт прерывание, выполнится вся работа в прерывании и управление вернётся в главную программу, то управление остановится на точке останова - команде "mov ah, 2h". А с этого момента вы можете дальше идти пошагово.
Форма ответа