
Получение и корректировка содержимого регистров
Команда register (r) позволяет выводить на экран и корректировать значения регистров и флагов состояния процессора. Эта команда также выдает информацию о следующей выполняемой команде. После ввода команды r и нажатия клавиши [Enter] на экране появляется окно программы (рис.2).
Рис. 2
В двух первых строчках представлены шестнадцатеричные значения регистров процессора:
Регистры сегментов (DS, ES, SS, CS) содержат одно и то же значение - 150B (у вас это может быть и другое число).
Значение регистра SP равно FFЕЕ,
Значение регистра IР — 0100.
В остальных регистрах записаны нули.
В правой части второй строки находятся значения восьми флагов состояния процессора (см. табл.2). При загрузке отладчика все флаги, кроме IF, сбрасываются.
Данное состояние регистров устанавливается всегда после загрузки программы DEBUG (отличие может быть только в значении сегментных регистров, которое указывает на адрес ближайшего свободного сегмента памяти).
В третьей строке представлена справочная информация о выполняемой команде. Как известно, выполняемая программа представляет собой последовательность кодов машинных команд.
Например: Адрес машинного кода команды, которая будет выполняться следующей, фиксируется в регистрах CS и IР. В нашем примере — это адрес СS:IР = 150B:0100.
Этот адрес и выведен в начале третьей строки. В ней представлена и другая информация об этой команде. Так, следующий параметр — это машинный код команды, содержащийся в поле памяти, которое начинается с адреса, указанного в начале строки.
С помощью команды r можно изменить значение любого регистра. Для этого в командной строке необходимо указать также имя изменяемого регистра.
Например: -r cx
СХ 0000
:
Отладчик в ответ вывел имя регистра, его значение, а в следующей строке — двоеточие, приглашающее ввести новое значение регистра, например, значение 89АВ:
-r cx
СХ 0000
: 89АВ
Если вновь воспользоваться командой -r без параметров, то можно убедится, что требуемое изменение выполнено.
Команда r с параметром f выводит на экран флаги состояния процессора:
Например: - r f
NV UP EI PL NZ NA PO NC -
Получив значения флагов, их можно изменить. Для этого вводится одно или несколько новых значений. Новые значения вводятся в любом порядке через пробел или без разделителя.
Например: Установим, значения флагов переполнения, знака и переноса:
Для этого после выведенной черточки ("— ") требуется ввести значения:
OV NO CY
и нажать клавишу [Enter].
Теперь можно повторно ввести команду r и убедиться, что установки флагов изменены.
Для окончания работы с отладчиком, следует набрать команду q.
Задания для самостоятельной работы
1. Запустите отладчик и установите следующие значения регистров (в шестнадцатеричной системе счисления):
DS = 1000 + N
SS = 3FA9; ВР = 4А8 + N;
где N — ваш порядковый номер в списке группы.
2. Установите флаги знака, нуля и четности.
3. С помощью команды r убедитесь, что установка выполнена верно.
4. Верните флаги в исходное состояние.