Команда D (Display - показать) в программе DEBUG



Эта команда выводит содержимое указанной области памяти на экран. Следующие три примера используют команду D для просмотра одного и того же участка памяти, начинающегося со смещения ЗС1H в сегменте кода (CS):

D CS:3C1 (команда набрана заглавными буквами с пробелом);

DCS:3C1 (команда набрана заглавными буквами без пробела);

dcs:3cl (команда набрана строчными буквами без пробела);

В результате выполнения команды получается восемь строк. В левой части каждой из них будет указан адрес первого слева показанного байта в форме сегмент: смещение. Основную часть строки, в центре, занимает шестнадцатеричное представление параграфа, начинающегося с указанного в начале строки байта. Справа на экран выведены в ASCII-форме символы этого параграфа, которые можно вывести на экран, для облегчения интерпретации шестнадцатеричной записи.

Команда D выводит 8 строк данных, в каждой из которых по 16 байт (32 шестнадцатеричных разряда), всего – 128 байт, начиная с указанного адреса.

Адрес слева относится только к первому байту в строке, адреса последующих байтов могут быть легко найдены простым счетом: например, если адрес первого байта – 0159:0240Н, то одиннадцатый байт в строке имеет адрес 0159:024АН. Шестнадцатеричное представление содержит два знака для каждого байта, байты разделяются пробелами для улучшения читаемости. Кроме того, восьмой и девятый байты разделяет дефис. Поэтому, например, если требуется найти байт со смещением хх13Н, начните с байта хх10Н и найдите третий после него байт.

Команда D также показывает содержимое регистров и состояние флагов в регистре Flags.

Упражнение 1: просмотр области данных BIOS

Первое упражнение показывает содержимое области данных BIOS в памяти, начиная с адреса 400Н или, более точно, с адреса сегмента 40[0]Н. BIOS инициализирует значения в этой области памяти при включении компьютера и меняет их в ходе выполнения программ.

Просматривайте эти значения при помощи адреса из двух частей: в качестве адреса сегмента (то есть 400, с отброшенным младшим разрядом), и nn в качестве смещения от начала сегмента. Воспринимайте адрес 40:nn как сегмент 40[0]Н плюс смещение nnН.

Проверка параллельных и последовательных портов

Первые 16 байт области данных BIOS содержат адреса параллельных и последовательных портов. Введите следующую команду:

D 40:00 (и нажмите <Enter>)

Первые четыре выведенных слова указывают на адреса портов от СОМ1 до COM4. Если на компьютере два последовательных порта, первые два слова, вероятно, содержат F803 и F802 в обращенной (с переставленными байтами) последовательности. Последовательные порты имеют адреса 03F8 и 02F8. Следующие 4 слова указывают на параллельные порты от LPT1 до LPT4. Для системы с одним параллельным портом первое слово, вероятно, содержит 7803, т.е. адрес порта – 0378.

Проверка оборудования системы

Слово состояния оборудования в области данных BIOS предлагает базовую информацию о присутствующих в системе устройствах. Это слово, расположенное по адресу 410Н - 411Н, можно просмотреть командой

D 40:10 (и нажмите <Enter>)

Выведенные строки должны начинаться так:

0040:0010 хх хх ...

Допустим, что слово содержит 23 44 в шестнадцатеричной форме. Чтобы интерпретировать его, переставим байты (44 23) и преобразуем в двоичную форму:

    Двоичное значение:  0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 1

    Позиция бита:   15 14 13 12 11 10 9  8  7 6 5 4 3 2 1 0

Эти биты означают:

Биты        Устройство

15, 14 Число параллельных (принтерных) портов = 1 (двоичное 01)

11 – 9 Число последовательных портов = 2 (двоичное 010)

7,6   Число дисководов = 1 (00 = 1,01 = 2, 10 = 3, 11 = 4)

5,4   Начальный видеорежим = 10 (01 = 40x25 цветной,

10 = 80x25 цветной, 11 = 80x25 монохромный)

1      1 = присутствует математический сопроцессор

0      1 = присутствует привод для дискет


Неописанные биты не используются.


Дата добавления: 2018-04-04; просмотров: 789; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!