ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Вывод всех зарегистрированных адресов 5 страницаПримеры Чтобы преобразования валюты, времени, даты и символов в соответствии с французским национальным форматом, добавьте следующую команду в файл Config.nt: country=033 Чтобы задать кодовую страницу вместе с кодом страны для Франции, введите следующую команду: country=033,850 Если кодовая страница не задана, но введен параметр [ диск:][ путь ] имя_файла, необходимо ввести запятую, предваряющую кодовую страницу, как показано в примере: country=033,,c:\winnt\system32\country.sys
======================================================================================== Date Отображение текущей настройки системной даты. Выполненная без параметров команда date выводит настройку текущей системной даты и приглашение ввести новую дату. Синтаксис date [ мм - дд - гг ] [ /t ] Параметры дд - мм - гг Установка указанной даты, где мм — месяц, дд — день, гг — год. /t Вывод текущей даты без приглашения ввести новую дату. /? Отображение справки в командной строке. Примечания
Примеры Чтобы изменить дату на 3 августа 2000г., введите одну из следующих команд: 08.03.00 08-03-00 08/03/00 Чтобы вывести текущую системную дату, введите следующую команду: date /t
======================================================================================== Debug Запуск Debug.exe, программы для проверки и отладки исполнительных файлов MS-DOS. Выполненная без параметров команда debug запускает программу Debug.exe и выводит приглашение команды debug, представленное дефисом (-). Синтаксис debug [[ диск: ][ путь ] имя_файла [ параметры ]] Параметры [ диск: ][ путь ] имя_файла Задание расположения и имени исполняемого файла для тестирования. параметры Указание параметров командной строки, передаваемых отлаживаемой программе. ? Вывод списка подкоманд команды debug. Примечания
Команда debug — это команда подсистемы MS-DOS, которая выполняется в среде WOW/NTVDM.
Параметры можно вводить через запятые или пробелы, но это требуется только для шестнадцатеричных значений. Например, следующие команды эквивалентны: dcs:100 110 d cs:100 110 d,cs:100,110
Существует несколько команд debug, которыми можно воспользоваться. Дополнительные сведения о командах debug см. по ссылке «».
======================================================================================== Debug: a (assemble) Создание двоичного кода процессоров 8086/8087/8088 непосредственно в памяти. Выполненная без параметров команда a начинает работу с точки последнего останова. Синтаксис a [ адрес ] Параметры адрес Задает адрес, по которому записаны инструкции на языке ассемблер. Параметр адрес принимает шестнадцатеричные значения без знака h. ? Вывод списка команд debug. Примечания
Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр можно пропустить. По умолчанию для команд debug a, g, l, t, u и w адрес сегмента содержится в регистре CS. Для других подкоманд по умолчанию используется сегмент DS. Все числовые значения при этом представлены в шестнадцатеричном формате. Между именем сегмента и значением смещения следует вставлять двоеточие. Примеры правильных адресов: CS:0100 04BA:0100
Задайте мнемонику префикса инструкции перед кодом операции (т. е. opcode), к которой она относится. Команда a создает исполняемый машинный код из инструкций на языке ассемблера. Все числовые значения должны быть представлены в шестнадцатеричном формате и записаны как набор от 1 до 4 символов.
Мнемоники cs:, ds:, es: и ss:. Мнемоникой, вызывающей возврат управления в другой сегмент кода (far return), является retf. Мнемоники для работы со строками должны точно определять размер элементов строк. Например, для перемещения строк из слов (16 бит) следует использовать movsw, а для перемещения строк из байтов (8 бит) следует использовать movsb.
Ассемблер автоматически обрабатывает переходы и вызовы (т. е. префиксы short, near или far) в зависимости от смещения байтов. Имеется возможность переопределить переходы или вызовы с помощью префиксов near или far. Например: -a0100:0500 Вместо префикса near можно использовать сокращение ne.
Если операнды ссылаются на адреса слов или байтов в памяти, тип данных должен быть задан с использованием префикса word ptr или byte ptr, которые можно сократить до wo для word ptr и до by для byte ptr. Например: dec wo [si]
В программе Debug.exe используется общее соглашение о том, что операнды, указывающие на адрес в памяти, заключаются в квадратные скобки ([ ]). Это единственный способ, который позволяет различать непосредственные операнды и ссылки на области в памяти в Debug.exe. Например: mov ax,21; загрузить число 21h в регистр AX
С командой a часто используются две псевдоинструкции: операция db, которая размещает байты непосредственно в памяти, и операция dw, которая размещает в памяти слова. Например: db 1,2,3,4,"ЭТО ПРИМЕР"
Дополнительные сведения о вводе данных в определенные байты с помощью команды e (enter) см. по ссылке «».
Дополнительные сведения о деассемблировании байт с помощью команды u (unassemble) см. по ссылке «». Примеры Команда a допускает различное использование ссылок на регистры. Например: add bx,34[bp+2].[si-1] Кроме того, команда a поддерживает использование синонимов дополнительных кодов операций: Например: loopz 100 Для дополнительных кодов операций процессора 8087 необходимо задать префиксы wait или fwait. Например: fwait fadd st,st(3); эта строка вставляет
======================================================================================== Debug: c (compare) Сравнение двух блоков памяти. Синтаксис c диапазон адрес Параметры диапазон Обязательный параметр. Задание начального и конечного адреса или начального адресы и длины первой области в памяти для сравнения. адрес Обязательный параметр. Задание начального адреса второй области памяти для сравнения. ? Вывод списка команд debug. Примечания
Параметр диапазон используется в командах debug для задания диапазона памяти. Для задания диапазона можно использовать один из следующих форматов: начальный и конечный адрес или начальный адрес и длина (разделяются символом l) диапазона. Например, обе следующих команды задают 16-разрядный диапазон, начинающийся с адреса CS:100: cs:100 10f cs:100 l 10
Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр могут быть пропущены. По умолчанию для команд debug a, g, l, t, u и w адрес сегмента содержится в регистре CS. Для других подкоманд по умолчанию используется сегмент DS. Все числовые значения при этом представлены в шестнадцатеричном формате. Между именем сегмента и значением смещения следует вставлять двоеточие. Следующие адреса являются допустимыми: CS:0100 04BA:0100
адрес1 байт1 байт2 адрес2 Примеры Чтобы сравнить блок памяти от 100h до 10Fh с блоком памяти от 300h до 30Fh, введите следующую команду: C100,10f 300 или C100l10 300 Обе эти команды выведут следующие данные (предполагается, что DS = 197F): 197F:0100 4D E4 197F:0300 Адреса 197F:0106 и 197F:0306 отсутствуют в списке. Это означает, что значения, расположенные по этим адресам, совпадают.
======================================================================================== Debug: d (dump) Просмотр содержимого заданного диапазона адресов памяти. Выполненная без параметров команда d выводит на экран содержимое 128 байт, начиная с конца диапазона адресов, заданного в предыдущей команде d. Синтаксис d [ диапазон ] Параметры диапазон Задание начального и конечного адреса или начального адреса и длины блока памяти для просмотра его содержимого. ? Вывод списка команд debug. Примечания
Параметр диапазон используется в подкомандах debug для задания диапазона памяти. Параметр диапазон можно задать в одном из следующих форматов: начальный адрес и конечный адрес или начальный адрес и длина (обозначаемая l) диапазона. Например, оба следующих выражения задают диапазон из 16 байтов, начинающийся с адреса CS:100: cs:100 10f cs:100 l 10
Примеры Введите следующую команду: dcs:100 10f Команда debug.exe выводит содержимое диапазона в следующем формате: 04BA:0100 54 4F 4D 00 53 41 57 59-45 52 00 00 00 00 00 00..... Команда Debug.exe выводит сведения в таком формате, если подкоманда d выполнена без параметров. Каждая строка на экране начинается с адреса, который отстоит от адреса предыдущей строки на 16 байт (или на 8 байт для экрана с 40 колонками). Для каждой последующей подкоманды d, вводимой без параметров, Debug.exe выводит следующую часть сведений непосредственно за предыдущей. Чтобы вывести содержимое 20h байт, начиная с CS:100, введите следующую команду: dcs:100 l 20 Чтобы вывести содержимое всех байт в диапазоне от 100h до 115h в сегменте CS, введите следующую команду: dcs:100 115
======================================================================================== Debug: e (enter) Ввод данных в память по заданному адресу. Синтаксис e адрес [ список ] Параметры адрес Обязательный параметр. Адрес начала области памяти для ввода данных. список Задание списка байтов, которые требуется ввести в память. ? Вывод списка подкоманд debug. Примечания
Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр могут быть пропущены. По умолчанию для подкоманд a, g, l, t, u и w команды debug адрес сегмента содержится в регистре CS. Для других подкоманд по умолчанию используется сегмент DS. Все числовые значения при этом представлены в шестнадцатеричном формате. Между именем сегмента и значением смещения следует вставлять двоеточие. Следующие адреса являются допустимыми: CS:0100 04BA:0100
При задании параметра адрес без указания параметра список Debug.exe выведет на экран адрес и его содержимое, затем повторит адрес на следующей строке и будет ждать ввода новой команды. В этот момент можно выполнить одно из следующих действий.
Если введен параметр список, подкоманда e последовательно заменяет существующие значения значениями из списка. При возникновении ошибки никакие значения не будут изменены. Список может быть задан как шестнадцатеричными числами, так и строкой. При этом числа разделяются пробелами, запятыми или символами табуляции. Строки необходимо заключать в апострофы (т. е. ' строка ') или кавычки (т. е. " строка ").
Сведения о создании двоичного кода с помощью подкоманды a (assemble) см. по ссылке «».
Сведения о просмотре содержимого области памяти с помощью подкоманды d (dump) см. по ссылке «». Примеры Введите следующую команду: ecs:100 Debug.exe выведет содержимое первого байта в следующем формате: 04BA:0100 EB._ Чтобы заменить это значение числом 41, введите 41 в позицию курсора, как показано ниже: 04BA:0100 EB. 41 _ Последовательность байтов можно ввести в одной подкоманде e. Вместо нажатия клавиши ENTER после нового значения, нажмите клавишу ПРОБЕЛ. Программа Debug.exe выведет следующее значение. В данном примере, если клавиша ПРОБЕЛ нажата три раза, Debug.exe выведет на экран следующие значения: 04BA:0100 EB.41 10. 00. BC._ Чтобы заменить шестнадцатеричное значение BC числом 42, введите 42 в позицию курсора, как показано ниже: 04BA:0100 EB.41 10. 00. BC. 42 _ Чтобы изменить значение 10 на 6F, дважды нажмите клавишу МИНУС для возврата к адресу 0101 (значение 10). Программа Debug.exe выводит следующие сведения: 04BA:0100 EB.41 10. 00. BC.42- Введите 6F в позицию курсора для изменения значения, как показано ниже: 04BA:0101 10. 6F _ Нажмите клавишу ENTER для завершения выполнения подкоманды e и возврата к приглашению программы debug. Рассмотрим пример ввода строковой величины: eds:100 "Это пример текста" Эта строка будет занимать 24 байта, начиная с адреса DS:100.
======================================================================================== Debug: f (fill) Заполнение адресов в определенной области памяти заданными значениями. Синтаксис f диапазон список Параметры диапазон Обязательный параметр. Задание начального и конечного адреса или начального адреса и длины области памяти, которую требуется заполнить. список Обязательный параметр. Задание данных, которые требуется ввести. ? Вывод списка подкоманд debug. Примечания
Параметр диапазон используется в подкомандах debug для задания диапазона памяти. Параметр диапазон можно задать в одном из следующих форматов: начальный адрес и конечный адрес или начальный адрес и длина (обозначаемая l) диапазона. Например, оба следующих выражения задают диапазон из 16 байтов, начинающийся с адреса CS:100: cs:100 10f cs:100 l 10
Данные можно задать в шестнадцатеричном или текстовом формате. Данные, ранее находившиеся по данному адресу, будут удалены.
Список может состоять из шестнадцатеричных чисел или строки, заключенной в кавычки (т. е. " строка "). Примеры Чтобы заполнить область памяти с 04BA:100 по 04BA:1FF пятью определенными значениями (например 42, 45, 52, 54, 41) и повторять этот набор, пока 100h байт не будут заполнены программой Debug.exe, введите следующую команду: f04ba:100l100 42 45 52 54 41
======================================================================================== Debug: g (go) Выполнение загруженной программы. Запущенная без параметров подкоманда g начинает выполнение с текущего адреса в реестрах CS:IP. Синтаксис g [ = адрес ] [ точки_останова ] Параметры адрес Задание адреса в памяти, с которого требуется начать выполнение программы. точки_останова Указание до 10 временных точек останова, которые могут быть заданы как часть подкоманды g. ? Вывод списка подкоманд debug. Примечания
Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр могут быть пропущены. По умолчанию для подкоманд a, g, l, t, u и w команды debug адрес сегмента содержится в регистре CS. Для других подкоманд по умолчанию используется сегмент DS. Все числовые значения при этом представлены в шестнадцатеричном формате. Между именем сегмента и значением смещения следует вставлять двоеточие. Следующие адреса являются допустимыми: CS:0100 04BA:0100
Введите знак равенства (=) перед параметром адрес, чтобы отличить адрес от адресов точек останова (точки_останова).
Выполнение программы будет остановлено в первой встретившейся точке останова, независимо от расположения этой точки останова в списке параметра точки_останова. Debug.exe заменяет код, находящийся в точках останова, на инструкции прерывания. Когда выполнение программы дошло до точки останова, Debug.exe восстанавливает код в точках останова и выводит на экран содержимое всех регистров, все флаги состояния и деассемблированную инструкцию, которая была выполнена последней. Debug.exe выводит те же сведения, которые получают при использовании полкоманды r (регистр) и указании адреса данной точки останова. Если программа не остановлена ни в одной точке, Debug.exe не заменяет коды прерываний первоначальными инструкциями. Точки останова могут быть установлены только по адресам, содержащим первый байт кода операции 8086 (opcode). Если установлено больше 10 точек останова, выводится следующее сообщение: bp Error
Указатель на стек, задаваемый пользователем, должен быть допустимым, а емкость стека должна быть не менее 6 байт для подкоманды g. Для перехода к тестируемой программе в подкоманде g используется инструкция iret. Debug.exe устанавливает указатель на стек пользователя, помещает туда пользовательские флаги состояния, значение регистра кодового сегмента и указатель на текущую команду. (Если заданный пользователем стек неверен или имеет недостаточный объем, возможен сбой в операционной системе). Debug.exe записывает код прерывания (т. е. 0CCh) в указанные точки останова или адреса.
Не перезапускайте программу при получении следующего сообщения: Program terminated normally Чтобы правильно запустить программу, перезагрузите ее с помощью подкоманд n (name) и l (load).
Примеры Чтобы запустить текущую программу и выполнить ее до точки останова по адресу 7550 в сегменте CS, введите следующую команду. gcs:7550 Debug.exe выведет на экран содержимое регистров и состояние флагов, а затем остановит подкоманду g. Чтобы установить две точки останова, введите следующую команду: gcs:7550, cs:8000 Если подкоманда g введена снова после остановки в точке останова, выполнение начнется с инструкции, следующей за точкой останова, а не с обычного адреса начала программы.
======================================================================================== Debug: h (hexadecimal) Выполнение шестнадцатеричных арифметических операций над двумя заданными числами. Синтаксис h число1 число2 Параметры число1 Обязательный параметр. Первое шестнадцатеричное число в диапазоне от 0 до FFFFh. число2 Обязательный параметр. Второе шестнадцатеричное число в диапазоне от 0 до FFFFh. ? Вывод списка подкоманд debug. Заметки
Примеры Введите следующую команду: H19f 10a Результаты вычислений Debug.exe будут выведены в виде: 02A9 0095
======================================================================================== Debug: i (input) Считывание и вывод на экран одного байта из указанного порта ввода. Синтаксис i порт Параметры порт Обязательный параметр. Задание порта ввода адресом. Адрес может быть 16-битным значением. ? Вывод списка подкоманд debug. Заметки
Примеры Введите следующую команду: I2f8 Если находящаяся в порту величина равна 42h, Debug.exe считает ее и выведет в следующем виде:
======================================================================================== Не нашли, что искали? Воспользуйтесь поиском:
|