Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
для дизассемблера
Комментарии:
Команда U показывает инструкции отлаживаемой программы.
Если длина не определена, по умолчанию принимается восемь строк, если
это возможно, или на одну строку меньше высоты экрана.
Если адрес не определен, команда дизассемблирует инструкции с адреса первого
байта за последним байтом, дизассемблированным предыдущей
командой. Если предыдущей команды дизассемблировать не было, за адрес
по умолчанию принимается текущий CS:IP.
Если видимо окно кода, инструкции выводятся в окне
кода.
Если для диапазона указанного адреса загружен исходный текст, в зависимости
от текущего режима работы с кодом, могут быть выведены исходные строки.
Пример:
U $-10
Эта команда дизассемблирует инструкции, начиная
за 10 (шестнадцатеричное) байтов до текущего адреса.
U.499
Эта команда выводит текущий файл с исходным текстом, начиная со строки 499.
Окно кода должно быть видимо и находиться в режиме исходного текста.
R
R -- Показать или изменить регистры
Синтаксис:
R название-регистра [ [ = ]значение] ]
название-регистра -- Любое из следующих:
AL, AH, AX, BL, BH,
BX, CL, CH, CX, DL,
DH, DX, DI, SI, BP,
SP, IP, CS, DS, ES, SS
Или FL
значение -- Если название-регистра - любое, кроме
FL, значение - шестнадцатеричное значение или
выражение. Если название регистра - FL, то
значение - серия из одного или более
следующие символов флагов, каждый
с предшествующим ему знаком плюс или
минус :
O (флаг Переполнения) (Overflow)
D (флаг Направления) (Direction)
I (флаг Прерывания) (Interrupt)
S (флаг Знака) (Sign)
Z (флаг Нуля) (Zero)
A (флаг Вспомогательного переноса) (Auxiliary carry)
P (флаг Паритета) (Parity)
C (флаг Переноса) (Carry)
Комментарии:
Команда R показывает или изменяет регистры
Без параметров выводит значения всех регистров и флагов,
а также инструкцию по адресу текущего CS:IP.
Если название регистра указано без значения, Soft-ICE показывает
текущие значения указанного регистра и
спрашивает у вас новое значение. Если название регистра - FL, установленные
флаги выводятся подсвеченными символами верхнего регистра; сброшенные
флаги выводятся без подсветки в нижнем регистре. Для сохранения
текущего значения регистра, нажмите ВВОД.
Если указаны и название регистра, и значение, содержимое указанного
регистра заменяется указанным значением.
Чтобы изменить значение флага, используйте FL как имя регистра, сопровождаемое
символами флагов, значения которых вы хотите переключить. Для установки флага
поставьте перед символом флага знак плюс. Чтобы сбросить флаг, поставьте перед
символом флага знак минус. Флаги могут быть указаны в любом порядке.
Примеры:
R AH 5
Эта команда устанавливает регистр AH равным 5.
R FL = OZP
Эта команда переключает значения флагов O, Z и P.
R FL
Эта команда выводит текущие значения флагов и
предоставляет возможность их изменения.
R FL O +A - C
Эта команда переключает значение флага O, устанавливает
флаг A и сбрасывает флаг C.
MAP
MAP -- Показать карту памяти системы
Синтаксис:
MAP
Комментарии:
Команда MAP выводит названия, местоположение и размеры компонент памяти
системы. Размер указывается в параграфах. Один параграф
эквивалентен 10 (шестнадцатеричное) байтам.
Компонент, на который в настоящее время указывает CS:IP, подсвечивается.
Используйте команду MAP когда:
* Произошел останов и CS:IP в неизвестной
области памяти.
* Вы хотите получить контроль над резидентной или системной
программой. Точка останова на диапазон может быть установлена
основываясь на адресе начала и размере, отраженных
командой MAP.
* Вы подозреваете программу или компонент системы
в записи поверх кода вне своей области памяти.
MAP используется, чтобы получить адрес памяти
области для использования в команде CSIP.
* Вам необходимо выяснить, какая резидентная программа перехватывает
определенные векторы прерываний.
Пример:
MAP
Вот - пример вывода, произведенного
командой:
Начало Длина
0000:0Таблица Векторов Прерываний
0040:0Переменные ROM BIOS
0070:0000 00FE Система ввода/вывода
016E:0000 06B7 DOS
0842:0000 02CE Таблицы файлов и Буферы DOS
A000:0000 5E00 Системная шина
F000:0ROM BIOS
Версии DOS ниже, чем 3.1 выдают адреса программ
вместо вывода их названий.
D, DB, DW, DD
D, DB, DW, DD -- Показать память
Синтаксис:
D [размер] [адрес] [L[ = ]длина]
размер -- B -- Байт
W -- Слово
D -- Двойное Слово
длина -- Число байтов, которое должно быть
выведено.
Комментарии:
Команда D выводит содержимое памяти по указанному адресу.
Содержимое выдается в формате указанного размера. Если размер не
определен, вывод произойдет в последнем используемом формате. Для всех форм
также выдается ASCII представление.
Если адрес не определен, команда выводит память по адресу
начинающемуся с первого байта после последнего показанного байта.
Если длина не определена, по умолчанию принимается восемь строк или меньше
если высота окна меньше.
Если окно данных видимо, данные выводятся в окне данных
и длина игнорируется.
Пример:
DW DS:00 L=8
Эта команда показывает в формате слова (WORD) и в ASCII-
формате значение первых восьми байтов текущего
сегмента данных.
E, EB, EW, ED
E, EB, EW, ED -- Редактировать память
Синтаксис:
E [размер] адрес [список-данных]
Размер -- B -- Байт
W -- Слово
D -- Двойное Слово
список данных -- список объектов данных указанного размера
(Байты, Слова или Двойные Слова) или
строк в кавычках, разделенных запятыми
или пробелами. Строка может
начинаться одинарной или двойной
кавычкой.
Комментарии:
Команды E показывают содержимое памяти по указанному адресу и
позволяет вам редактировать значения.
Эта команда показывают содержимое памяти в формате ASCII и в
формате указанного размера.
Редактор памяти создан для быстрой ее модификации. Память можно редактировать
вводя ASCII-символы или вводя значения размером байт, слово или двойное
слово. Если размер не определен, будет принят последний использованный размер.
Вот клавиши редактирования памяти:
-- Перемещает курсор вверх
-- Перемещает курсор вниз
-- Перемещает курсор вправо
-- Перемещает курсор влево
ПРОБЕЛ -- Перемещает курсор на следующий элемент
TAB -- переключает между числовым и
ASCII-областями
ESC или
ВВОД -- Выход из редактора памяти
После ввода значения обновляются реальные ячейки памяти. Все числовые
значения - шестнадцатеричные числа. Для перехода между ASCII и числовой
областями экрана нажмите клавишу TAB.
Если окно данных видимо, данные редактируются в окне данных,
иначе данные редактируются в окне команд.
Длина данных по умолчанию принимается 8 строк, если в окне команд, или
равной размеру окна данных, если оно видимо.
При отсутствии параметров, курсор перемещается в окно данных, если
оно видимо. Если окно данных не видимо, данные редактируются в окне команд
по последнему отображенному или редактированному адресу.
Примеры:
EB 1000:0
Эта команда выводит в формате байта до шести строк,
содержащих как числовое, так и ASCII
представление значений данных, начиная с
ячейки 1000:0000. Вы можете редактировать значения
отображенных строк.
EB 8000:0 "Привет",0D
Эта команда заменяет значения, начинающиеся с ячейки
8000:0000, строкой "Привет", сопровождаемой знаком
возврата каретки.
INT?
INT? -- Выводит номер последнего прерывания
Синтаксис:
INT?
Комментарии:
Команда INT? отображает адрес и номер последнего происшедшего
прерывания.
Пример:
INT?
Вот пример экрана, выданного
командой INT?:
Last Interrupt: 16
At: 0070:0255
Этот пример показывает, что последним прерыванием, сгенерированным
системой перед вызовом окна Soft-ICE,
было прерывание 16 (шестнадцатеричный номер) по адресу
0070:0255H. Если последнее происшедшее прерывание было
программным, дизассемблирование кода по адресу
0070:0255H покажет инструкцию прерывания. Если это
было аппаратное прерывание, дизассемблирование кода
покажет команду, которая выполнялась когда
произошло аппаратное прерывание.
? Или H
? Или H -- Выводит справочную информацию
Синтаксис:
< ? | H > [команда | выражение]
Комментарии:
И команда? и команда H выводят справочную информацию.
Если параметры не определены, система помощи выдает короткие описания всех
команд и операторов, по одному экрану за раз. Нажмите любую клавишу для
продолжения или нажмите ESC, чтобы выйти из выводимой справки.
Если указана команда, справка выводит более детальную информацию относительно
указанной команды, включая синтаксис команды и пример.
Если указано выражение, выражение вычисляется и результат
выводится в шестнадцатеричном, десятичном и ASCII-представлении.
Примеры:
? ALTKEY
Эта команда отображает информацию о
команде ALTKEY, включая синтаксис и
пример.
H 10 + 14*2
Эта команда выводит: 0"8". Это -
шестнадцатеричное, десятичное и ASCII-представления
значения выражения "10 + 14*2".
VER
VER -- Выводит номер версии Soft-ICE
Синтаксис:
VER
Пример:
VER
Эта команда выводит версию Soft-ICE
и сообщение об авторских правах Nu-Mega Technologies.
5.2 Команды Портов ввода/вывода
Команды:
I или IB -- Ввод из байтового порта ввода/вывода
IW -- Ввод из порта ввода/вывода с размерностью в слово
O или OB -- Вывод в байтовый порт ввода/вывода
OW -- Вывод в порт ввода/вывода с размерностью в слово
I, IB, IW
I, IB, IW -- Ввод из порта ввода/вывода
Синтаксис:
I [размерность] порт
размерность -- B -- Байт
W -- Слово
порт -- байт или слово
Комментарии:
Команды ввода из порта используются для чтения и отображения значений из
аппаратного порта. Ввод может выполняться из портов с размерностью слово или
байт. Если размер не определен, то значение по умолчанию - байт.
Пример:
I 21
Эта команда отображает регистр маски первого
контроллера прерываний.
O, OB, OW
O, OB, OW, -- Вывод в порт ввода/вывода
Синтаксис:
O [размерность] порт значение
размерность -- B -- Байт
W -- Слово
порт -- байт или слово
значение -- байт для байтового порта или слово
для порта размерностью в слово
Комментарии:
Команды вывода в порт используются для записи значения в аппаратный порт.
Вывод может выполняться в порты размерностью байт или слово, если размер не
определен, то значение по умолчанию - байт.
Пример:
O 21 FF
Эта команда маскирует все прерывания для первого
контроллера прерываний.
5.3 Команды Передачи Управления
Команды:
X -- Выйти из окна Soft-ICE
G -- Перейти по адресу
T -- Протрассировать одну команду
P -- Программный шаг
HERE -- Исполнение программы до строки, в которой находится курсор
GENINT -- Вызов прерывания
EXIT -- Вызывает выход из текущей программы DOS'а
BOOT -- Перезагрузка системы (с сохранением Soft-ICE)
HBOOT -- Жесткая перезагрузка системы (общий сброс)
X
X -- Выйти из окна Soft-ICE
Синтаксис:
X
Комментарии:
Команда X производит выход из окна Soft-ICE и возвращает управление
программе, которая была прервана при вызове Soft-ICE. Окно Soft-ICE
исчезает. Если до этого были установлены точки останова, они станут активными.
Пример:
X
G
G -- Перейти по адресу
Синтаксис:
G [=адрес-начала] [адрес-останова]
Комментарии:
Команда G вызывает выход из окна Soft-ICE с одноразовым набором точек останова
на выполнение. Кроме того, активизируются все "прилипающие" точки останова.
Если не указан параметр адрес-начала, выполнение начинается с текущего CS:IP.
В противном случае выполнение начинается с адреса-начала. Выполнение
продолжается, пока не достигается адрес-останова, используется комбинация
клавиш для вызова окна или не выполняется "прилипающая" точка останова.
Адрес останова должен указывать на первый байт опкода команды.
Когда достигается указанный адрес-останова, текущий CS:IP будет указывать на
команду, где была установлена точка останова.
Команда G без параметров ведет себя также как команда X.
Обычная точка останова на выполнение использует 1 отладочный регистр 80386,
пока все отладочные регистры не будут распределены для "прилипающих" точек
останова. В этом случае, будет произведен останов в стиле INT 3. В таком
случае команды G и P не будут корректно работать в ПЗУ. При попытке их
использования будет выведено сообщение об ошибке.
Пример:
G CS:1234
Эта команда устанавливает временную точку останова на CS:1234
T
T -- Протрассировать одну команду
Синтаксис:
T [=адрес-начала] [счетчик]
Комментарии:
Команда T выполняет одиночный шаг на одну команду, используя флаг
трассировки.
Если параметр адрес-начала не указан, выполнение начинается с текущего
CS:IP. Если адрес-начала - определен, CS:IP изменяется на адрес-начала
для трассировки.
Если указано значение счетчика, Soft-ICE будет считать количество шагов.
Команда TRACE будет выполняться, пока счетчик не будет исчерпан или не
будет нажата клавиша Esc, независимо от достигнутых точек останова.
В режиме работы с исходным текстом команда T переходит на следующее выражение
в исходном тексте. Если текущее выражение - вызов процедуры или функции и есть
исходный текст вызываемой подпрограммы, T входит в нее. Если нет исходного
текста вызываемой процедуры или функции, T перешагивает через подпрограмму.
Пример:
T = 1284 3
Эта команда трассирует три инструкции,
начиная с ячейки памяти 1284.
P
P -- Программный шаг
Синтаксис:
P
Комментарии:
Команда P - логический шаг программы. По текущему CS:IP выполняется одна
команда, если она не является обращением, прерыванием, циклом или командой
повторения работы со строковыми данными. В этих случаях, прежде чем управление
возвращается Soft-ICE'у, выполняется вся подпрограмма или итерация.
Команда P использует одноразовую точку останова на выполнение. Обычная
точка останова на выполнение использует 1 отладочный регистр 80386,
пока все отладочные регистры не будут распределены для "прилипающих" точек
останова. В этом случае, будет произведен останов в стиле INT 3. В таком
случае команды G и P не будут корректно работать в ПЗУ. При попытке их
использования будет выведено сообщение об ошибке.
В режиме работы с исходным текстом команда P переходит на следующее выражение
в исходном тексте. Если текущее выражение - вызов процедуры или функции, P
перешагивает через подпрограмму.
Пример:
P
Эта команда выполняет один 'программный шаг'.
HERE
HERE -- Исполнение программы до строки, в которой находится курсор
Синтаксис:
HERE
Комментарии:
Команда HERE выполняется, пока программа не достигает текущей строки курсора.
HERE доступна, только когда курсор находится в окне кода. Если
окно кода не видимо или курсор - не в окне кода, используйте
вместо этого команду G.
Команда HERE вызывает выход из окна Soft-ICE с одноразовым набором точек
останова на выполнение. Кроме того, активизируются все "прилипающие" точки
останова.
Выполнение начинается с текущего CS:IP и продолжается до встречи адреса
текущей позиции курсора в окне кода, используется комбинация клавиш для
вызова окна и выполняется "прилипающая" точка останова.
Обычная точка останова на выполнение использует 1 отладочный регистр 80386,
пока все отладочные регистры не будут распределены для "прилипающих" точек
останова. В этом случае, будет произведен останов в стиле INT 3. В таком
случае команда HERE не будет корректно работать в ОЗУ. При попытке ее
использования будет выведено сообщение об ошибке.
Пример:
HERE
Этот пример устанавливает точку останова на выполнение на
текущую позицию курсора, затем выходит из Soft-ICE и
начинает выполнение с текущего CS:IP.
Заданная по умолчанию Функциональная клавиша: F7
GENINT
GENINT -- Вызов прерывания
Синтаксис:
GENINT INT1 | INT3 | NMI | номер-прерывания
номер-прерывания -- число в диапазоне 00 - FF
Комментарии:
Команда GENINT вызывает прерывание. Она может использоваться для передачи
управления другому отладчику при использовании Soft-ICE с другим отладчиком.
Она также может использоваться для проверки подпрограмм обработки прерываний.
Команда GENINT эмулирует последовательность обработки аппаратного
прерывания или команды INT. Она сохраняет флаги, регистр CS и регистр
IP, затем изменяет значение регистров CS и IP на значение входа в
таблицу векторов прерываний, в соответствии с указанным
номером прерывания.
Пример:
GENINT NMI
Это вызывает немаскируемое прерывание. Оно передаст
управление обратно CodeView, если Soft-ICE используется как
вспомогательное средство для CodeView.
EXIT
EXIT -- Вызывает выход из текущей программы DOS'а
Синтаксис:
EXIT [R] [D]
R -- Восстановить таблицу векторов прерываний
D -- Удалить все точки останова
Комментарии:
Команда EXIT пытается прерывать текущую программу, вызывая функцию выхода
DOS (INT 21H, функция 4CH). Эта команда будет работать только если DOS
находится в состоянии, когда она способна принять обращение к функции выхода.
Если это обращение произведено из некоторых обработчиков прерываний или в
других случаях, когда DOS не готова, поведение системы будет непредсказуемо.
Эта функция НЕ производит восстановления системных переменных, кроме таблицы
прерываний, при указанной опции R. Это означает что переменные BIOS,
видеорежимы и другие данные системного уровня не восстанавливаются.
Использование опции R вызовет восстановление векторов прерываний к значениям
которые были в последний раз, когда они были сохранены. Soft-ICE сохраняет
векторы прерываний, когда он загружается, когда LDR. EXE загружает программа
и когда используется команда VECS S.
Обратите внимание:
Для перезапуска программы, которая была загружена программой-загрузчиком
Soft-ICE'а (LDR. EXE) сделайте следующее:
EXIT R
LDR prog. EXE
Команда EXIT восстановит таблицу прерываний к значениям, которые
содержались в ней до загрузки программы, затем
выйдите к командному процессору. При помощи запуска LDR и указания суффикса
.EXE, программа загружается обратно без перезагрузки символов и исходного
текста. Символы и исходный текст останутся в памяти.
Внимание:
Команда EXIT должна использоваться с осторожностью. Так как Soft-ICE может
быть вызван в любое время, может произойти ситуация, когда DOS не в состоянии
принять обращение к функции выхода. Также, команда EXIT не производит никакого
специфического программного сброса. Например, команда EXIT не восстанавливает
видеорежим. Если ваша программа установила видео BIOS и аппаратные средства в
определенный видеорежим, они останутся в этом режиме после команды EXIT.
Пример:
EXIT R
Восстанавливает таблицу прерываниq и выходит из текущей
программы. Опция R должна использоваться при выходе из
программы, загруженной программным загрузчиком Soft-ICE'а
LDR. EXE.
BOOT
BOOT -- Перезагрузка системы (с сохранением Soft-ICE)
Синтаксис:
BOOT
Комментарии:
Команда BOOT перезагружает систему и сохраняет Soft-ICE. BOOT требуется для
отладки последовательности начальной загрузки, загружаемых драйверов DOS и
операционных систем отличных от DOS (non-DOS).
BOOT выполняется посредством вызова прерывания 19H ROM BIOS. В некоторых
случаях память может быть разрушена до такой степени, что прерывание 19 не
будет работать. Тогда вызовите Soft-ICE и используйте команду HBOOT.
Для правильной работы BOOT Soft-ICE должен быть установлен как загружаемый
драйвер в CONFIG. SYS перед всеми другими драйверами устройств. Так Soft-ICE
сможет восстановить первоначальное состояние системы максимально точно.
Пример:
BOOT
Эта команда выполняет перезагрузку системы. Soft-ICE
остается резидентным.
HBOOT
HBOOT -- Жесткая перезагрузка системы (общий сброс)
Синтаксис:
HBOOT
Комментарии:
Команда HBOOT сбрасывает всю систему. Soft-ICE не сохраняется в
процессе сброса. HBOOT достаточна, если плата адаптера не требует отключения
питания. В этом случае, питание машины нужно отключить и затем восстановить.
Пример:
HBOOT
Эта команда производит перезагрузку системы. Soft-ICE
должен быть заново загружен.
5.4 Команды Режима Отладки
Команды:
ACTION -- Устанавливает действие после достижения точки останова
WARN -- Устанавливает режим предупреждения повторной входимости
DOS/ROM BIOS
BREAK -- Прерывает исполнение в любое время
I3HERE -- Перенаправить прерывание 3 на Soft-ICE
ACTION
ACTION -- Устанавливает действие после достижения точки останова
Синтаксис:
ACTION [INT1 | INT3 | NMI | HERE | int-номер]
int-номер -- Любой допустимый номер прерывания (0-FFH).
Используйте эту опцию только если пользовательская
подпрограмма-обработчик прерывания
перехватила этот вектор прерывания (смотрите
раздел 11.2).
Комментарии:
Команда ACTION определяет, куда передается управление, когда выполнены условия
точки останова. В большинстве случаев, желательное действие - INT3 или
HERE, INT3 обычно используется, если Soft-ICE используется вместе с главным
отладчиком, HERE используется, когда желательно вернуться в Soft-ICE при
выполнении условий останова, INT1 и NMI - варианты для некоторых отладчиков,
которые не работают с опцией INT3. Например, CODEVEW лучше всего
работает с ACTION установленным в NMI.
Используйте int-номер, если имеется установленная пользовательская процедура
обработки прерывания. Использование int-номера без установленной процедуры
пользователя по обработке прерывания вызовет ошибку. Для получения более
подробной информации, см. раздел 11.2, 'Пользовательские точки останова'.
Если параметры команды ACTION не указаны, отображается текущее
установленное действие.
Заданное по умолчанию действие - HERE.
Пример:
ACTION HERE
Эта команда указывает, что когда будут выполнены условия точки останова,
управление вернется Soft-ICE'у.
WARN
WARN -- Устанавливает режим предупреждения повторной входимости DOS/ROM BIOS
Синтаксис:
WARN [ON | OFF]
Комментарии:
Команда WARN предусмотрена для использования Soft-ICE с отладчиками, которые
используют DOS и ROM BIOS. Много отладчиков используют DOS и ROM BIOS для
вывода на экран и чтения нажатий клавиш. Так как DOS и ROM BIOS не полностью
реентерабельны, эти отладчики не могут корректно работать, если останов
происходит во время выполнения процедур DOS или ROM BIOS.
Если установлен WARN ON и ACTION - не HERE, то управление перейдет к Soft-ICE
до того как действие фактически произойдет. Система отобразит текущий CS:IP
и предоставит вам выбор продолжить или вернуться в Soft-ICE.
Вообще, вы должны выбрать возврат в Soft-ICE для продолжения вашей работы по
отладке. Продолжайте работу с главным отладчиком, только если вы знаете, что
ваш отладчик не вызовет повторного вхождения в DOS или ROM BIOS.
Режим WARN должен быть включен при использовании Soft-ICE с DEBUG, SYMDEB и
CODEVIEW.
Если параметры не указаны, отображается текущее состояние WARN.
Значение по умолчанию - режим WARN OFF.
Пример:
WARN ON
Эта команда включает режим предупреждения повторной входимости
в DOS/ROM BIOS.
BREAK
BREAK -- Прерывает исполнение в любое время
Синтаксис:
BREAK [ON | OFF]
Комментарии:
Команда BREAK позволяет вызывать окно Soft-ICE, когда система остановлена
с заблокированными прерываниями. Режим BREAK может использоваться для всего
сеанса отладки или он может включаться и отключаться, когда это требуется.
Режим BREAK немного снижает эффективность системы. Это снижение
производительности должно оцениваться с точки зрения необходимости выхода из
зависшей программы. Пользователь может хотеть иметь включенный режим BREAK на
все время, даже при снижении эффективности, потому что программа может
зависнуть в любое время.
В отличие от других отладчиков, которые тоже могут быть вызваны в любое время,
Soft-ICE не требует внешнего переключателя. Когда BREAK - включен, окно Soft-
ICE может быть вызвано в любое время при нажатии текущей комбинации клавиш.
Если параметры не указаны, отображается текущее состояние BREAK.
Значение по умолчанию - BREAK OFF.
Пример:
BREAK ON
Эта команда включает режим BREAK. Это означает что
окно Soft-ICE может быть вызвано в любое время,
даже если прерывания заблокированы.
I3HERE
I3HERE -- Перенаправить прерывание 3 на Soft-ICE
Синтаксис:
I3HERE [ON | OFF]
Комментарии:
Команда I3HERE позволяет вам указать, что любое прерывание 3 вызовет
окно Soft-ICE. Эта возможность полезна для остановки вашей программы в
определенных местах.
Чтобы использовать эту возможность, поместите INT 3 в ваш код в месте, где
вы хотите остановиться. Когда произойдет INT 3, оно вызовет окно Soft-ICE.
В этой точке, вы можете использовать команду R IP, чтобы изменить ваш
указатель команд на команду, следующую после INT 3, затем вы можете
продолжить отладку.
Если параметры не указаны, отображается текущее состояние I3HERE.
Значение по умолчанию - режим I3HERE OFF.
Пример:
I3HERE ON
Эта команда включает режим I3HERE. Любой INT 3,
сгенерированный после этого, вызовет окно
Soft-ICE.
5.5 Сервисные Команды
Команды:
A -- Транслировать код
S -- Поиск данных
F -- Заполнить память данными
M -- Переместить данные
C -- Сравнить два блока данных
A
A -- Транслировать код
Синтаксис:
A [Адрес]
Комментарии:
Транслятор Soft-ICE позволяет вам транслировать команды непосредственно в
памяти. Транслятор поддерживает базисную систему команд 8086 с
расширениями для реального режима 80186 и 80286. Инструкции математического
сопроцессора и специфические для 80386 команды, регистры и режимы
адресации НЕ могут быть оттранслированы.
Команда A вызывает интерактивный транслятор Soft-ICE. В начале
каждой транслируемой строки отображается ее адрес. После того
как команда ассемблера набрана и нажат ВВОД, команды транслируются
в память по указанному адресу. Команды должны вводиться в стандартном
формате Intel. Для выхода из режима транслятора нажмите ВВОД в
пустой строке.
Если адресный интервал, в который вы транслируете команды, видим
в окне кода, команды будут изменятся интерактивно, по мере трансляции.
Транслятор Soft-ICE'а поддерживает стандартную мнемонику семейства 8086,
однако имеются некоторые специальные добавления:
* Мнемокод DB используется для указания байтов данных
непосредственно в памяти. Команда DB
сопровождается списком байтов и/или строк в кавычках
разделенных пробелами или запятыми.
* Мнемокод RETF описывает дальний возврат.
* WORD PTR и BYTE PTR используется для
указания размера данных, если не присутствует аргумент-
регистр, например: MOV BYTE PTR
ES:[ 1234],1.
* Используйте, FAR и NEAR для явной трансляции дальних и
ближних переходов и обращений. Если FAR или NEAR не
указаны, то все переходы и обращения - ближние.
* Операнды, описывающие ячейки памяти, должны
помещаться в квадратные скобки, например: MOV AX,[1234].
Пример:
A CS:1234
Эта команда выводит приглашение для ввода команд ассемблера,
затем транслирует их, начиная со смещения 1234H в
текущий сегмент кода. Нажмите ВВОД в приглашении
с адресом после ввода последней команды.
S
S -- Поиск данных
Синтаксис:
S адрес L длина список-данных
список-данных -- список байтов или строк в кавычках, разделенных
запятыми или пробелами. Строка в кавычках
может начинаться с одинарной или
двойной кавычки.
длина -- длина в байтах
Комментарии:
Команда S ищет в памяти последовательности байтов или символов,
совпадающих со списком данных. Поиск начинается с указанного адреса и
до смещения, равного указанной длине. Адреса каждого найденного
в диапазоне совпадения выводятся на экран.
Пример:
S DS:SI+10 L CX 'Привет',12,34
Эта команда ищет строку 'Привет' сопровождаемую
байтами 12H и 34H, начиная со смещения SI+10 в
текущем сегменте данных и заканчивая адресом через CX байт от начала.
F
F -- Заполнить память данными
Синтаксис:
F адрес L длина список-данных
список-данных -- список байтов или строк в кавычках, разделенных
запятыми или пробелами. Строка в кавычках
может начинаться с одинарной или
двойной кавычки.
длина -- длина в байтах
Комментарии:
Команда F заполняет память последовательностью байтов или символов,
определенных в списке-данных. Память заполняется, начиная с указанного
адреса и до смещения, равного указанной длине, повторяя список-данных
в случае необходимости.
Пример:
F 8000:0 L 100 'Тест'
Эта команда заполняет память, начиная с 8000:0 на
длину 100H байтов строкой 'Тест'. Строка 'Тест'
повторяется, пока не достигнуто необходимое смещение.
М
M -- Переместить данные
Синтаксис:
М адрес-начала L длина конечный-адрес
длина -- длина в байтах
Комментарии:
Команда M перемещает указанное число байтов из адреса-начала
в памяти в конечный-адрес в памяти.
Пример:
М 1000:0 L :0
Эта команда перемещает 200H байтов из ячейки
памяти 1000:0 в ячейку памяти 2000:0.
C
C -- Сравнить два блока данных
Синтаксис:
C адрес1 L длина адрес2
длина -- длина в байтах
Комментарии:
Команда C сравнивает блок памяти, определенный адресом1 и
длиной с блоком памяти определенным адресом2 и длиной.
Когда байт из первого блока данных не соответствует байту из
второго блока данных, оба байта выводятся на экран вместе с их адресами.
Пример:
C 5000:100 L:100
Эта команда сравнивает 10H байтов, начинающихся с
ячейки памяти 5000:100 с 10H байтами, начинающимися
с ячейки памяти 6000:100.
5.6 Специализированные Отладочные Команды
Команды:
SHOW -- Выводит команды из буфера истории исполнения
TRACE -- Включает режим эмуляции пошагового исполнения
XT -- Одиночный шаг в режиме эмуляции трассировки
XP -- Программный шаг в режиме эмуляции трассировки
XG -- Переход по адресу в режиме эмуляции трассировки
XRSET -- Сброс буфера истории обратной трассировки
VECS -- Сохранение/восстановление/сравнение векторов прерываний
SNAP -- Запоминает содержимое блока памяти (snap shot)
EMMMAP -- Отображают карту распределения EMM
SHOW
SHOW -- Выводит команды из буфера истории исполнения
Синтаксис:
SHOW [B | начало]
B -- Указывает команде SHOW начать
вывод с самой старой команды
в буфере обратной трассировки.
начало -- Смещение (в инструкциях) от
конца буфера (последней зафиксированной
команды) с которого надо начать вывод.
Комментарии:
Команда SHOW отображает команды из буфера истории обратной трассировки.
Если для команд доступен исходный текст, то дисплей находится в смешанном
режиме, в противном случае отображается только код.
SHOW позволяет просматривать буфер обратной трассировки при помощи клавиш
вверх, вниз, PageUp и PaqeDn. Для выхода из SHOW нужно нажать клавишу Esc.
Адресу каждой команды предшествует номер входа в буфер. Этот
номер показывает, как глубоко в буфере находится команда. Чем
больше номер, тем глубже вы в буфере.
Обратите внимание:
До вызова команды SHOW, команды должны регистрироваться при помощи диапазона
обратной трассировки. См. главу 9 для подробной информации о диапазонах.
Подсказки:
Часто полезно иметь видимое окно кода с фактическим кодом
области, отображаемой из буфера обратной трассировки. При сравнении
фактического исполнения команд с кодом, отображаемыми переходами и обращениями
обычно возникает меньше путаницы.
Использование SHOW вместе с командой TRACE позволит вам рассматривать
команды в буфере обратной трассировки с двух различных точек зрения.
Пример:
SHOW 40
Этот пример выведет на экран команды из буфера обратной трассировки,
начиная с 40-ой инструкции от конца буфера.
TRACE
TRACE -- Включает режим эмуляции пошагового исполнения
Синтаксис:
TRACE [начало] | [OFF]
начало -- Смещение (в инструкциях) от
конца буфера (последней зафиксированной
команды) с которого надо начать эмуляцию.
OFF -- Выход из режима эмуляции трассировки.
Комментарии:
Команда TRACE позволяет вам повторно "проигрывать" команды из буфера
истории обратной трассировки команд, так же как они выполнялись в первый раз.
Для использования режима эмуляции трассировки вам необходимо иметь видимое
окно кода. После входа в режим эмуляции трассировки используйте команды XT, XP
и XG для трассировки команд из буфера.
Для выхода из режима эмуляции трассировки введите TRACE OFF.
TRACE без параметров сообщает включен режим эмуляции трассировки
или нет.
Обратите внимание:
До вызова команды TRACE, команды должны регистрироваться при помощи диапазона
обратной трассировки. См. главу 9 для подробной информации о диапазонах.
Подсказки:
Режим эмуляции трассировки наиболее полезен, когда видимо окно кода. Часто
полезно использовать TRACE вместе с командой SHOW. Это позволяет
просматривать инструкции в буфере истории обратной трассировки одновременно
в двух различных формах.
Пример:
TRACE 40
Этот пример производит эмуляцию трассировки, начиная с 40-ой
инструкции от последней зарегистрированной команды. Режим
эмуляции трассировки будет активен, пока не будет
введено TRACE OFF.
XT
XT -- Одиночный шаг в режиме эмуляции трассировки
Синтаксис:
XT [R]
R -- Одиночный шаг в обратном направлении.
Комментарии:
Команда XT пошагово проходит буфер истории обратной трассировки инструкций.
Эта команда действует подобно команде T для нормальной отладки. Заметьте
что в режиме эмуляции трассировки регистры не изменяются,
за исключением CS и IP.
Команда XT позволяет вам повторно выполнять команды из буфера истории
обратной трассировки.
Обратите внимание:
Для использования XT вы должны быть в режиме эмуляции трассировки. См. главу 9
и команду TRACE из этого раздела для подробной информации о диапазонах
обратной трассировки.
Подсказка:
Если вы используете XT часто, то подобно любой другой команде Soft-ICE она
может быть привязана к функциональной клавише.
Пример:
XT
Эта команда проходит одну команду в режиме
эмуляции трассировки.
XP
XP -- Программный шаг в режиме эмуляции трассировки
Синтаксис:
XP
Комментарии:
Команда XP производит логический программный шаг в буфере истории обратной
трассировки инструкций. Эта команда действует подобно команде P для обычной
отладки. Заметьте, что в режиме эмуляции трассировки регистры не изменяются,
за исключением CS и IP.
Команда XP позволяет вам повторно выполнять команды из буфера истории
обратной трассировки.
Обратите внимание:
Для использования XP вы должны быть в режиме эмуляции трассировки. См. главу 9
и команду TRACE из этого раздела для подробной информации о диапазонах
обратной трассировки.
Подсказка:
Если вы используете XP часто, то подобно любой другой команде Soft-ICE она
может быть привязана к функциональной клавише.
Пример:
XP
Эта команда выполняет один программный шаг в режиме
эмуляции трассировки.
XG
XG -- Переход по адресу в режиме эмуляции трассировки
Синтаксис:
X [R] адрес
R -- Поиск адреса в обратном направлении.
адрес -- Адрес, по которому надо перейти в буфере истории
обратной трассировки.
Комментарии:
Команда XG перемещает указатель команд на следующее упоминание
указанного адреса в буфере истории обратной трассировки. Если перед
адресом указан R, то указатель команды перемещается на предыдущее
упоминание указанного адреса в буфере обратной трассировки.
Адрес должен указывать на первый байт опкода команды.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |


