Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отладчик программ AFD.doc
Скачиваний:
254
Добавлен:
08.03.2015
Размер:
163.33 Кб
Скачать

2.2. Управление программами.

G {start ad.}{,break ad.}

Запуск программы с текущего или заданного (start ad.) адреса. Допускается установка одной точки останова (break ad.). По умолчанию используется сегмент CS.

Для остановки запущенной программы используйте "горячую клавишу" CTRL-ESC.

В случае необходимости пользователь имеет возможность дополнительно установить 8 контрольных точек. Более подробно об этом сказано в разделе 3 данного документа.

Примеры.

G - Запуск программы с текущего адреса

G 100 - Запуск программы с адреса CS:0100

G,500 - Запуск программы с текущего адреса и останов по адресу CS:0500

G 100,500 - Запуск программы с адреса CS:0100 и останов по адресу CS:0500

A {addr}

Включения режима ассемблирования с текущего или заданного адреса. По умолчанию используется сегмент CS. В режиме ассемблирования становится активным окно ассемблера. При этом допускается редактирование программы путем занесения в память новых команд ассемблера. Текст каждой новой команды вводится в строку, отмеченную маркером, и ассемблируется по нажатию клавиши ENTER.

Выход из режима ассемблирования реализуется посредством "горячей клавиши" CTRL-HOME.

Примеры.

А - включить режим ассемблирования с текущего адреса.

А 100 - включить режим ассемблирования с адреса CS:0100.

D addr

Отображение дизассемблированного кода программы с заданного адреса addr. Дизассемблированый код отображается в окне ассемблера. По умолчанию используется сегмент CS.

Примеры.

D CS:100 - Поместить в окно ассемблера дизассемблированный код, начиная с адреса CS:100.

D 100 - То же самое, что и предыдущая команда.

PD addr, length {, fspec}

Печать дизассемблированного кода, начиная с адреса addr. По умолчанию используется сегмент CS. Параметр length задает количество дизассемблирован­ных команд. При необходимости результат дизассемблирования может быть помещен в файл fspec.

Примеры.

PD 100,10 - Напечатать на принтере 10 дизассемблированных команд, расположенных с адреса CS: 0100.

PD 100,10,pr.das - То же самое, но результат не печатать, а поместить в файл pr.das

2.3. Управление регистрами.

{R} reg = value

Установка регистров и флагов.

Примеры.

R AX=0000 - Очистка регистра AX.

AX=0 - То же самое, что и предыдущая команда.

BL=3C - Установка регистра BL.

CF=1 - Установка флага CF.

FL=0000 - Очистка всех флагов.

2.4. Управление памятью.

M n addr

[reg]

Отображение содержимого памяти в окне n (n=1 или n=2). Начальный адрес отображаемой области памяти задается явно параметром addr, либо косвенно содержимым регистра [reg]. По умолчанию используется сегмент DS.

Примеры.

M 1 DS:1000 - Отобразить в окне 1 содержимое сегмента DS, начиная со смещения 1000.

M 1 1000 - То же самое, что и предыдущая команда.

М 1 [SI] - Отобразить в окне 1 содержимое сегмента DS, начиная со смещения, хранящегося в регистре SI.

W fspec, addr, length

Запись области данных в файл fspec. Здесь addr - начальный адрес области в памяти, length - длина области в байтах (<=64К).

По умолчанию используется сегмент DS.

Примеры.

W x.dat,DS:0200,5000 - Записать в файл x.dat область данных, начинающуюся с адреса DS:0200 и содержащую 5000 байт.

W x.dat,0200,5000 - То же самое, что и предыдущая команда.

PH addr, length {, fspec}

Печать содержимого области памяти в HEX и ASCII форматах (каждый байт отображается шестнадцатиричным и символьным кодом).

Здесь addr - начальный адрес области памяти. По умолчанию используется сегмент DS. length - количество байт. fspec- имя создаваемого файла.

Примеры.

PH 100,10 - Напечатать на принтере содержимое области памяти длиной 10 байт. Начальный адрес области - DS:0100.

PH 100,10,mem.txt - То же самое, что и предыдущая команда, но содержимое области не печатается, а заносится в файл mem.txt.

P addr, string

Запись в память по адресу addr кода string. По умолчанию используется сегмент CS.

Примеры.

P DS:100,FF - Записать в сотую ячейку памяти сегмента DS код FF.

P 100,'Hello!'- Записать в память строку 'Hello!'. Строку разместить с сотого адреса сегмента CS.

F addr, repeater, string

Заполнение памяти кодом string. По умолчанию используется сегмент DS. Параметр repeater задает количество кодов, передаваемых в память.

Примеры.

F 100,5,'HELLO!' - поместить в память, начиная с адреса DS:0100, пять строк 'HELLO!'.

F CS:0,1000,0 - очистить 1000 начальных ячеек сегмента CS путем записи в них кода 00.

S {{addr} , string

Поиск кода string в памяти с указанного адреса. По умолчанию используется сегмент CS (адрес CS:0000). Найденный код отражается в окне 2 данных. При этом сегментный адрес найденного кода находится в сегментном регистре отладчика HS.

Продолжение поиска - команда S без параметров.

Примеры.

S,0000 - найти в памяти код 0000, начиная с адреса CS:0000.

S DS:100,'Hello!' - найти в памяти строку 'Hello!', начиная с адреса DS:0100.

S - продолжить поиск, назначенный предыдущей командой S.

С addr, addr, length

Сравнение двух областей памяти длиной length байт. По умолчанию используется сегмент DS.

Если области не совпадают, их содержимое отображается в окнах 1 и 2.

Пример.

C CS:100,DS:100,100 - Сравнить области памяти сегмента CS (начальный адрес 0100) и сегмента DS (начальный адрес 0100). Длина сравниваемых областей - 100 байт.

CO s-addr, d-addr, length

Копирование данных из одной области памяти в другую.

Здесь

s-addr - начальный адрес области-источника информации;

d-addr - начальный адрес области-приемника информации;

length - длина копируемой области в байтах.

По умолчанию используется сегмент DS.

Примеры.

CO DS:100,DS:200,50 - Скопировать область данных длиной 50 байт с адреса DS:0100 на адрес DS:0200.

СO 100,200,50 - То же самое, что и предыдущая команда.