Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
08_МУ8_ Использование отладчика Debug для тести...doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
568 Кб
Скачать
☆

Просмотр областей памяти

Команда D, позволяет просматривать содержимое отдельных областей памяти. Этот пример использует команду D для просмотра области памяти, начиная с 0159:0240:

  1. -d 0159:0240

  2. 0159:0240  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ..........l.....

  3. 0159:0250  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................

  4. 0159:0260  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................

  5. 0159:0270  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................

  6. 0159:0280  00 00 00 00 00 00 00 00-00 FF FF FF FF 00 00 00   ................

  7. 0159:0290  FF 00 00 00 00 00 00 00-00 00 4E 4F 20 4E 41 4D   ..........NO NAM

  8. 0159:02A0  45 20 20 20 20 00 26 81-4F 03 00 01 CB 00 00 00   E    .&.O.......

  9. 0159:02B0  00 00 00 00 00 00 00 00-00 00 00 01 07 04 FF 02   ................

  10. -_

Здесь на запрос просмотра участка памяти получены восемь строк, в которых указано содержимое выбранной области памяти. Каждая строка состоит из трех частей:

  • Адрес первого слева показанного байта в формате сегмент:смещение.

  • Шестнадцатеричное представление параграфа (16 байт), начинающегося с указанного в начале строки байта.

  • Символы этого же параграфа в ASCII-формате.

Адрес, указанный в строке, относится исключительно к первому байту в параграфе, а адреса последующих байтов следует вычислять самостоятельно. Шестнадцатеричное представление содержит по два знака в каждом байте, а сами байты разделены пробелами для облегчения чтения. Кроме того, следует отметить, что восьмой и девятый байты разделены дефисом, разделяя тем самым параграф на две части и облегяая вычисление адресов байтов в параграфе.

Полезные приемы с командой d

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

  1. -D 40:00_

Первые выведенные восемь байтов указывают на адреса последовательных портов COM1-COM4. Следующие 8 байтов указывают на адреса параллельных портов LPT1-LPT4. Например, если на вашем компьютере есть один параллельный порт, то первые два байта будут, скорее всего, такими: 7803. Адрес порта записывается в обращенной последовательности, т.е. 0378. Проверка оборудования Первые два байта, располагающиеся в BIOS по адресу 410h, содержат информацию об установленном в системе оборудовании. Находим эти байты командой:

  1. -D 40:10_

Предположим, что первые два байта окажутся 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

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

11, 10, 9

Число последовательных портов (..., 010 = 2 порта, ...)

7, 6

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

5, 4

Начальный видеорежим (01 = 40х25 цветной, 10 = 80х25 цветной, 11 = 80х25 монохромный)

1

Присутствие математического сопроцессора (0 = нет, 1 = есть)

0

Наличие привода для дискет (0 = нет, 1 = есть)

Проверка состояния регистра клавиатуры В области данных BIOS по адресу 417h находится первый байт, который хранит состояние регистра клавиатуры. Выключаем Num Lock и Caps Lock, затем набираем команду:

  1. -d 40:17_

Первый байт будет равен 00. Включив Num Lock и Caps Lock, снова выполняем команду. Теперь первый байт должен равняться 60. Опытным путем установлено, что при включенном Num Lock первый байт равен 20, а при Caps Lock - 40. Проверка состояния видеосистемы По адресу 449h в BIOS находится первая область видеоданных. Для проверки набираем:

  1. -d 40:49_

Первый байт показывает текущий видеорежим (к примеру, 03 - цветной), а второй - число столбцов (например, 50 - режим с 80 столбцами). Число строк можно найти по адресв 484h (40:84). Проверка копирайта BIOS и серийного номера Сведения об авторских правах на BIOS встроены в ROM BIOS по адресу FE00:0. Строку с копирайтом можно легко найти в ASCII-последовательности, а серийный номер - в виде шестнадцатеричного числа. Хотя, строка с указанием авторских прав может быть длинной и не умещаться в выведенную область памяти. В таком случае следует просто ввести еще раз D. Проверка даты произвоства BIOS Эта дата также записана в ROM BIOS начиная с адреса FFFF:5. После выполнения соответствующей команды в ASCII-последовательности будет находиться эта дата, записанная в формате мм/дд/гг. Пример:

  1. -d FFFF:5

  2. FFFF:0000                 31 31 2F-32 38 2F 30 35 00 FC 00        11/28/05...

  3. FFFF:0010  34 12 00 00 00 00 00 00-00 00 00 00 00 00 00 00   4...............

  4. ...

  5.  

  6. -_