
- •Инструкция пользования
- •Для микропроцессоров 8086/88
- •Назначение программы-отладчика "debug"
- •Команды программы-отладчика "debug"
- •179B:0100 54 push sp
- •179B:0100 54 push sp
- •Для изменения признака (флага) вспомогательного переноса
- •Команды работы с памятью (озу)
- •7000:0000 4D 49 43 52 53 4f 46 54-ff ff ff ff ff ff ff ff micrsoft........
- •Мы убедились, что содержимое ячеек дампа п1 скопировано в п2
- •4. Команды редактирования программ
- •В регистр ds также занесено число 4570.
- •6. Примечания
7000:0000 4D 49 43 52 53 4f 46 54-ff ff ff ff ff ff ff ff micrsoft........
В конце строки отображаются буквы (M I C R S O F T), коды которых мы ввели.
3.3. Команда заполнения памяти константой
Формат команды:
F начальный адрес <пробел> конечный адрес <пробел> константа <enter>
Данная команда заполняет все ячейки дампа памяти, ограниченного начальным (например 0000) и конечным адресом (например 00FF) вводимой константой (например АА).
Пример:
-F7000:0000 <пробел> 00FF <пробел> AA <enter>
Убедимся в изменении состояния элементов памяти:
-D7000:0000 <пробел> 00FF <enter>
7000:0000 AA AA AA AA AA AA AA AA-AA AA AA AA AA AA AA AA
7000:0010 AA AA AA AA AA AA AA AA-AA AA AA AA AA AA AA AA
……………………………………………………………………………………
7000:00F0 AA AA AA AA AA AA AA AA-AA AA AA AA AA AA AA AA
3.4. Команда сравнения значений двух областей памяти
Формат команды:
-С нач. адрес П1 <пробел> кон. адрес П1 <пробел> нач. адрес П2 <enter>
Данная команда производит побайтовое сравнение двух областей памяти П1 и П2. Несовпадающие байты, в столбик, выводятся на экран. Совпадающие не выводятся.
Пример:
-С7000:0000 <пробел> 000F <пробел> 8000:0000 <enter>
7000:0000 17 08 8000:0000
7000:0001 18 00 8000:0001
7000:000F EC 25 8000:000F
Из выведенного следует, что содержимое одной ячейки 17 а другой 08, т.е. не совпадают. Аналогично сравниваются остальные ячейки.
3.5. Команда копирования содержимого памяти
Формат команды:
-M нач. адрес П1 <пробел> кон. адрес П1 <пробел> нач. адрес П2 <enter>
Данная команда производит побайтное копирование содержимого ячеек памяти П1 в область памяти П2.
Предварительно просмотрим содержимое дампов П1 и П2:
-D7000:0000 <пробел> 000F <enter>
7000:0000 00 00 00 00 D1 B4 08 32-00 00 00 00 00 00 02 00
-D8000:00F0 <пробел> 00FF <enter>
8000:00F0 25 00 73 00 20 00 1C 04-31 04 30 04 39 04 42 04
Пример:
-M7000:0000 <пробел> 000F <пробел> 8000:00F0 <enter>
Снова просматриваем содержимое дампов П1 и П2:
-D7000:0000 <пробел> 000F <enter>
7000:0000 00 00 00 00 D1 B4 08 32-00 00 00 00 00 00 02 00
-D8000:00F0 <пробел> 00FF <enter>
8000:00F0 00 00 00 00 D1 B4 08 32-00 00 00 00 00 00 02 00
Мы убедились, что содержимое ячеек дампа п1 скопировано в п2
3.6. Команда поиска байтов в массиве памяти
- S нач. адрес <пробел> кон. адрес <пробел> искомый байт <enter>
Эта команда производит поиск конкретного байта (например 3А) в массиве (например, 0000-начальный, 01FF- конечный адрес массива). В случае успеха выводятся адреса всех ячеек памяти, содержащих искомый байт.
Пример:
-S7000:0000 <пробел> 00FF <пробел> B4 <enter>
-S7000:0000 00FF B4
7000:0025
7000:003D
7000:0055
7000:006D
В ячейках с адресами 0025, 003D, 0055, 006D был обнаружен байт В4.
Убедимся в том, что такая информация действительно содержится в этих ячейках:
-D7000:0020 <пробел> 006F <enter>
7000:0020 00 00 00 00 D1 B4 08 32-00 00 00 00 00 00 01 00
7000:0030 11 00 00 00 50 00 00 80-00 00 00 00 D1 B4 08 32
7000:0040 00 00 00 00 00 00 01 00-01 00 00 00 68 00 00 80
7000:0050 00 00 00 00 D1 B4 08 32-00 00 00 00 00 00 01 00
7000:0060 19 04 00 00 80 00 00 00-00 00 00 00 D1 B4 08 32