Convert

Преобразование томов с файловой системой FAT и FAT32 в тома с файловой системой NTFS.
Синтаксис

convert [том] /fs:ntfs [/v] [/cvtarea:имя_файла] [/nosecurity] [/x]
Параметры

том
    Указание буквы диска (с последующим двоеточием), точки подключения или имени тома, преобразуемых в файловую систему NTFS.
/fs:ntfs
    Обязательный параметр. Преобразование тома в файловую систему NTFS.
/v
    Задание режима вывода дополнительной информации, т. е. в процессе преобразования выводятся все сообщения.
/cvtarea:имя_файла
    Только для опытных пользователей. Задание записи основной таблицы файлов (MFT) и прочих файлов метаданных NTFS в существующий непрерывный файл-заглушку. Этот файл должен находится в корневом каталоге преобразуемой файловой системы. Использование параметра /CVTAREA позволяет получить менее фрагментированную файловую систему после преобразования. Для получения оптимальных результатов размер этого файла должен равняться числу файлов и каталогов в файловой системе, выраженному в килобайтах, однако служебная программа преобразования обрабатывает файлы любого размера.

    Дополнительные сведения о применении параметра /cvtarea см. по ссылке File Systems на веб-узле Microsoft Windows XP Resource Kits.(http://www.microsoft.com/)

    Важно!

        * Файл-заглушку необходимо создать перед выполнением команды convert с помощью команды fsutil file createnew. Команда convert не позволяет создать этот файл. Эта команда только перезаписывает данный файл данными NTFS. После преобразования все неиспользованное пространство этого файла освобождается. Дополнительные сведения о команде fsutil file см. по ссылке «».

/nosecurity
    Задание свободного доступа к параметрам безопасности преобразованных файлов и каталогов.
/x
    Отключение тома перед преобразованием при необходимости. Все открытые дескрипторы тома становятся недействительными.

Примечания

    * Необходимо задать преобразование диска при перезагрузке компьютера. В противном случае отсутствует возможность преобразовать текущий диск.
    * Если команда convert не может заблокировать диск (например системный том или текущий диск), выводится приглашение преобразовать диск при следующей перезагрузке компьютера.
    * Основная таблица файлов (MFT) имеет другое расположение в томах, преобразованных из предыдущей версии файловой системы NTFS, поэтому их быстродействие может уступать томам, преобразованным из Windows NT.
    * Тома, преобразованные из файловой системы FAT в NTFS, несколько уступают по быстродействию томам, непосредственно отформатированным в NTFS. В преобразованных томах основная таблица файлов (MFT) может оказаться фрагментированной. Кроме того, в преобразованных загрузочных томах разрешения на доступ NTFS недействительны после преобразования тома.

Примеры

Чтобы преобразовать тома на диске E в формат NTFS и вывести все сообщения, введите следующую команду:

convert e: /fs:ntfs /v

========================================================================================
Copy

Копирование одного или нескольких файлов из одного расположения в другое.
Синтаксис

copy [/d] [/v] [/n] [{/y|/-y}] [/z] [{/a|/b}] источник [{/a|/b}] [+ источник [{/a|/b}] [+ ...]] [назначение [{/a|/b}]]
Параметры

/d
    Сохранение копируемых шифрованных файлов как расшифрованных в месте назначения.
/v
    Проверка правильности копирования путем сравнения копий файлов.
/n
    Использование короткого имени (при наличии) копируемого файла, если его имя превышает 8 символов или его расширение превышает 3 символа.
/y
    Отмена вывода запроса на подтверждение перезаписи существующего конечного файла.
/-y
    Вывод запроса на подтверждение перезаписи существующего конечного файла.
/z
    Копирование файлов по сети в режиме перезапуска.
/a
    Указание текстового файла в формате ASCII.
/b
    Указание двоичного файла.
источник
    Обязательный параметр. Задание расположение файла или набора файлов, которые требуется скопировать. Параметр источник может состоять из имени диска с двоеточием, имени папки, имени файла или их комбинации.
назначение
    Обязательный параметр. Задание расположения, в которое требуется скопировать файл или набор файлов. Параметр назначение может состоять из имени диска с двоеточием, имени папки, имени файла или их комбинации.
/?
    Отображение справки в командной строке.

Примечания

    * Имеется возможность скопировать текстовый файл, в котором используется символ конца файла (CTRL+Z) для обозначения конца файла.
    * Использование параметра /a

      Если параметр /a стоит перед списком файлов в командной строке, он применяется ко всем файлам, перечисленным до параметра /b команды copy. В этом случае /b применяется к файлу, предшествующему /b.

      Если параметр /a стоит после списка файлов в командной строке, он применяется ко всем файлам, перечисленным до параметра /b команды copy. В этом случае /b применяется к файлу, предшествующему /b.

      Результат применения параметра /a зависит от его положения в командной строке. Если параметр /a стоит после параметра источник, команда copy обрабатывает файл как текстовый в формате ASCII и копирует данные, которые находятся перед первым символом конца файла.

      Если параметр /a расположен после параметра назначение, команда copy добавляет символ конца файла как последний символ файла.
    * Использование параметра /b

      Параметр /b задает считывание командным процессором количества байт, равного размеру файла в каталоге. Параметр /b задается по умолчанию для команды copy, за исключением случаев использования copy для слияния файлов.

      Если параметр /b стоит перед списком файлов в командной строке, он применяется ко всем файлам, перечисленным до параметра /a команды copy. В этом случае /a применяется к файлу, предшествующему /a.

      Если параметр /b стоит после списка файлов в командной строке, он применяется ко всем файлам, перечисленным до параметра /a команды copy. В этом случае /a применяется к файлу, предшествующему /a.

      Результат применения параметра /b зависит от его положения в командной строке. Если параметр /b стоит после параметра источник, команда copy копирует файл целиком, включая все символы конца строки.

      Если параметр /b стоит после параметра назначение, команда copy не добавляет символ конца строки.
    * Использование параметра /v

      Если операция записи не может быть проверена, выводится сообщение об ошибке. Хотя ошибки записи редко возникают при работе с командой copy, параметром /v можно воспользоваться для проверки правильности записи важных данных. Параметр /v также завершает работу команды copy, поскольку необходимо проверить каждый сектор, записанный на диск.
    * Использование параметров /y и /-y

      Если параметр /y установлен заранее в переменной среды COPYCMD, можно переопределить эту настройку, указав параметр /-y в командной строке. При переопределении данной настройки по умолчанию выводится запрос, за исключением исключением случаев выполнения команды copy в пакетном файле.
    * Объединение файлов

      Чтобы объединить файлы, укажите один файл в параметре назначение и несколько в параметре источник (используя подстановочные знаки или формат файл1+файл2+файл3).
    * Использование параметра /z

      Если во время фазы копирования теряется сетевое подключение (например, если сервер переходит в автономный режим, разрывая подключение), команда copy /z позволяет продолжить копирование после восстановления подключения. Кроме того, параметр /z позволяет отобразить сведения о завершении операции копирования в процентах для каждого файла.
    * Использование внешних устройств в операциях копирования

      В качестве параметров источник и назначение можно указать имена устройств.
    * Использование параметра /b при копировании на устройство

      Если в параметре назначение указано устройство (например Com1 или Lpt1), параметр /b позволяет скопировать данные на это устройство в двоичном режиме. В двоичном режиме команда copy /b копирует все символы (включая управляющие символы, такие как CTRL+C, CTRL+S, CTRL+Z и перевод строки) на устройство как данные. Однако если параметр /b не указан, данные копируются на устройство в формате ASCII. В этом режиме управляющие символы могут вызвать слияние файлов в системе Windows XP в процессе копирования. Дополнительные сведения см. в разделе «Слияние файлов».
    * Использование стандартного имени конечного файла

      Если конечный файл не задан, по умолчанию файлы будут скопированы с тем же именем, датой и временем создания в текущий каталог на текущем диске. Если исходный файл находится в текущем каталоге на текущем диске, выполнение команды copy завершается и выводится следующее сообщение об ошибке:

      Невозможно скопировать файл в себя

      Скопировано файлов: 0
    * Слияние файлов

      Если введено несколько параметров источник, разделенных знаком плюс (+), команда copy объединяет файлы в один. Если в параметре источник использованы подстановочные знаки (* или ?), а в параметре назначение задан один файл, команда copy объединит все файлы, удовлетворяющие шаблону в параметре источник, в один с именем, указанным в параметре назначение. В обоих случаях, если не задан параметр /b, команда copy объединяет файлы как текстовые.
    * Копирование файлов нулевой длины

      Команда Copy не копирует файлы, которые имеют длину, равную 0 байт. Для выполнения этой операции служит команда xcopy.
    * Изменение даты и времени модификации файла

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

      copy /b источник+,,

      Запятые заменяют параметр назначение.
    * Копирование файлов в подкаталогах

      Для копирования всех файлов каталога и его подкаталогов служит команда xcopy. Дополнительные сведения о команде xcopy см. по ссылке «».
    * Команда copy с другими параметрами доступна в консоли восстановления.

Примеры

Чтобы скопировать файл Memo.doc в файл Letter.doc на текущем диске и убедиться, что символ конца файла находится в конце скопированного файла, введите следующую команду:

copy memo.doc letter.doc /a

Чтобы скопировать файл Robin.typ с текущего каталога на текущем диске в существующий каталог Birds на диске C, введите следующую команду:

copy robin.typ c:\birds

Если каталог Birds не существует, файл Robin.typ будет скопирован в файл с именем Birds в корневой каталог диска C.

Чтобы скопировать несколько файлов в один, перечислите несколько файлов в параметре источник, разделяя их имена значком плюс (+), и укажите в параметре назначение файл, который должен содержать результат объединения этих файлов. Например, чтобы объединить файлы Mar89.rpt, Apr89.rpt и May89.rpt из текущего каталога на текущем диске и поместить их в файл Report в текущем каталоге на текущем диске, введите следующую команду:

copy mar89.rpt + apr89.rpt + may89.rpt report

При объединении команда copy создает конечный файл с текущими датой и временем. Если параметр назначение не указан, файлы объединяются и сохраняются в файле с именем первого файла в списке. Например, чтобы объединить четыре файла в файле Report, если такой файл уже существует, введите следующую команду:

copy report + mar89.rpt + apr89.rpt + may89.rpt

Кроме того, несколько файлов можно объединить в один с помощью символов подстановки (* или ?). Например, чтобы объединить все файлы с расширением .txt в текущем каталоге на текущем диске в файл Combin.doc, введите следующую команду:

copy *.txt combin.doc

Если требуется объединить несколько двоичных файлов в один с использованием подстановочных знаков, воспользуйтесь параметром /b. В результате CTRL+Z не будет рассматриваться как символ конца файла в Windows XP. Например, введите следующую команду:

copy /b *.exe combin.exe

Внимание!

    * Если объединяются двоичные файлы, результат может оказаться непригодным из-за нарушения внутреннего форматирования.

В следующем примере команда copy объединяет каждый файл с расширением .txt с соответствующим ему файлом с расширением .ref. Результатом является файл с тем же именем, но с расширением .doc. Таким образом, команда copy объединит файлы File1.txt и File1.ref в файл File1.doc, затем файлы File2.txt и File2.ref в файл File2.doc и т. д. Например, введите следующую команду:

copy *.txt + *.ref *.doc

Чтобы объединить сначала все файлы с расширением .txt, а затем все файлы с расширением .ref в файл Combin.doc, введите следующую команду:

copy *.txt + *.ref combin.doc

========================================================================================
Country

Задание использования подсистемой MS-DOS международного формата для времени, дат, валют, разделителей и преобразования символов.
Синтаксис

country=xxx[,[yyy][,[диск:][путь] имя_файла]]
Параметры

xxx
    Задание кода страны.
yyy
    Задание кодовой страницы для данного кода страны.
[диск:][путь] имя_файла
    Задание местонахождения и имени файла, содержащего информацию о национальных форматах.
/?
    Отображение справки в командной строке.

Примечания

    * Команда country обеспечивает распознавание подсистемой MS-DOS набора символов и соглашения о пунктуации при использовании одного из поддерживаемых национальных языков. Используйте файл %системный_корневой_каталог%\System32\Config.nt или эквивалентный файл запуска, указанный в PIF-файле программы, для загрузки настройки Код страны.
    * Установка поддерживаемых языков

      В следующей таблице перечислены страны и языки, поддерживаемые подсистемой MS-DOS. В ней также перечислены кодовые страницы, которые могут быть использованы с этими кодами стран. Например, если используется код страны 003, при задании параметра yyy можно использовать только кодовые страницы 437 или 850. Первая из двух кодовых страниц, перечисленных для каждой страны/региона или языка, является кодовой страницей, используемой по умолчанию.
      Страна/регион или язык Код страны/региона Кодовые страницы
      США 001 437, 850
      Французский (Канада) 002 863, 850
      Голландия 031 850, 437
      Бельгия 032 850, 437
      Франция 033 850, 437
      Испания 034 850, 437
      Венгрия 036 852, 850
      Италия 039 850, 437
      Швейцария 041 850, 437
      Чешская республика 042 852, 850
      Словакия 042 852, 850
      Великобритания 044 437, 850
      Дания 045 850, 865
      Швеция 046 850, 437
      Норвегия 047 850, 865
      Польша 048 852, 850
      Германия 049 850, 437
      Бразилия 055 850, 437
      Международный английский 061 437, 850
      Португалия 351 850, 860
      Финляндия 358 850, 437
    * Задание национального формата для времени и даты

      Код страны задает формат времени и даты, используемый в следующих командах: backup, date и time.

      В следующей таблице перечислены форматы даты и времени для каждого кода страны. Для каждого кода страны в соответствующих колонках представлена дата 3 января 1994г. и время 17 часов 35 минут (0 секунд и 0 сотых секунды).
      Страна/регион или язык Код страны/региона Формат даты Формат времени
      США 001 01/03/1994 5:35:00.00p
      Французский (Канада) 002 1994-01-03 17:35:00
      Латинская америка 003 03/01/1994 5:35:00.00p
      Голландия 031 03-01-94 17:35:00
      Бельгия 032 03/01/94 17:35:00
      Франция 033 03.01.1994 17:35:00
      Испания 034 3/01/94 17:35:00
      Венгрия 036 1994.01.03 17:35:00
      Италия 039 03/01/94 17.35.00
      Швейцария 041 03.01.94 17 35.00
      Чешская республика 042 03.01.1994 17:35:00
      Словакия 042 03.01.1994 17:35:00
      Великобритания 044 03/01/94 17:35:00.00
      Дания 045 03-01-94 17.35.00
      Швеция 046 1994-01-03 17.35.00
      Норвегия 047 03.01.94 17:35:00
      Польша 048 1994-01-03 17:35:00
      Германия 049 03.01.1994 17:35:00
      Бразилия 055 03/01/94 17:35:00
      Международный английский 061 03/01/1994 17:35:00.00
      Португалия 351 03-01-1994 17:35:00
      Финляндия 358 3.1.1994 17.35.00

Примеры

Чтобы преобразования валюты, времени, даты и символов в соответствии с французским национальным форматом, добавьте следующую команду в файл Config.nt:

country=033

Чтобы задать кодовую страницу вместе с кодом страны для Франции, введите следующую команду:

country=033,850

Если кодовая страница не задана, но введен параметр [диск:][путь] имя_файла, необходимо ввести запятую, предваряющую кодовую страницу, как показано в примере:

country=033,,c:\winnt\system32\country.sys

========================================================================================
Date

Отображение текущей настройки системной даты. Выполненная без параметров команда date выводит настройку текущей системной даты и приглашение ввести новую дату.
Синтаксис

date [мм-дд-гг] [/t]
Параметры

дд-мм-гг
    Установка указанной даты, где мм — месяц, дд — день, гг — год.
/t
    Вывод текущей даты без приглашения ввести новую дату.
/?
    Отображение справки в командной строке.

Примечания

    * Значения параметров мм, дд и гг должны быть разделены точкой (.), знаком переноса (-) или косой чертой (/).
    * Параметр мм может принимать значения от 1 до 12.
    * Параметр дд может принимать значения от 1 до 31.
    * Параметр гг может принимать значения от 80 до 99 или от 1980 до 2099.
    * Система Windows XP автоматически изменяет текущие месяц и год в зависимости от количества дней в месяце (28, 29, 30 или 31 день).

Примеры

Чтобы изменить дату на 3 августа 2000г., введите одну из следующих команд:

08.03.00

08-03-00

08/03/00

Чтобы вывести текущую системную дату, введите следующую команду:

date /t

========================================================================================
Debug

Запуск Debug.exe, программы для проверки и отладки исполнительных файлов MS-DOS. Выполненная без параметров команда debug запускает программу Debug.exe и выводит приглашение команды debug, представленное дефисом (-).
Синтаксис

debug [[диск:][путь] имя_файла [параметры]]
Параметры

[диск:][путь] имя_файла
    Задание расположения и имени исполняемого файла для тестирования.
параметры
    Указание параметров командной строки, передаваемых отлаживаемой программе.
?
    Вывод списка подкоманд команды debug.

Примечания

    *
    * Использование команд подсистемы MS-DOS

      Команда debug — это команда подсистемы MS-DOS, которая выполняется в среде WOW/NTVDM.
    * Разделитель параметров команды

      Параметры можно вводить через запятые или пробелы, но это требуется только для шестнадцатеричных значений. Например, следующие команды эквивалентны:

      dcs:100 110

      d cs:100 110

      d,cs:100,110
    * Использование команд debug

      Существует несколько команд 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
      0100:0500 jmp 502 ; короткий (short) переход на 2 байта
      0100:0502 jmp near 505 ; ближний (near) переход на 3 байта
      0100:0505 jmp far 50a ; длинный (far) переход на 5 байтов

      Вместо префикса near можно использовать сокращение ne.
    * Задание адреса слова или байта в памяти

      Если операнды ссылаются на адреса слов или байтов в памяти, тип данных должен быть задан с использованием префикса word ptr или byte ptr, которые можно сократить до wo для word ptr и до by для byte ptr. Например:

      dec wo [si]
      neg byte ptr [128]
    * Задание операндов

      В программе Debug.exe используется общее соглашение о том, что операнды, указывающие на адрес в памяти, заключаются в квадратные скобки ([ ]). Это единственный способ, который позволяет различать непосредственные операнды и ссылки на области в памяти в Debug.exe. Например:

      mov ax,21 ; загрузить число 21h в регистр AX
      mov ax,[21] ; загрузить содержимое
      ; памяти по адресу 21h
      ; в регистр AX
    * Псевдоинструкции

      С командой a часто используются две псевдоинструкции: операция db, которая размещает байты непосредственно в памяти, и операция dw, которая размещает в памяти слова. Например:

      db 1,2,3,4,"ЭТО ПРИМЕР"
      db 'ЭТО КАВЫЧКА: "'
      db "ЭТО КАВЫЧКА: '"
      dw 1000,2000,3000,"BACH"
    * Ввод данных в определенные байты

      Дополнительные сведения о вводе данных в определенные байты с помощью команды e (enter) см. по ссылке «».
    * Деассемблирование байт

      Дополнительные сведения о деассемблировании байт с помощью команды u (unassemble) см. по ссылке «».

Примеры

Команда a допускает различное использование ссылок на регистры. Например:

add bx,34[bp+2].[si-1]
pop [bp+di]
push [si] )

Кроме того, команда a поддерживает использование синонимов дополнительных кодов операций: Например:

loopz 100
loope 100
ja 200
jnbe 200

Для дополнительных кодов операций процессора 8087 необходимо задать префиксы wait или fwait. Например:

fwait fadd st,st(3) ; эта строка вставляет
; в код префикса fwait

========================================================================================
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
    * Если параметры диапазон и адрес совпадают, команда c ничего не выводит и возвращается к приглашению debug. Если при сравнении блоков памяти обнаружены различия, они выводятся командой c в следующем виде:

      адрес1 байт1 байт2 адрес2

Примеры

Чтобы сравнить блок памяти от 100h до 10Fh с блоком памяти от 300h до 30Fh, введите следующую команду:

c100,10f 300

или

c100l10 300

Обе эти команды выведут следующие данные (предполагается, что DS = 197F):

197F:0100 4D E4 197F:0300
197F:0101 67 99 197F:0301
197F:0102 A3 27 197F:0302
197F:0103 35 F3 197F:0303
197F:0104 97 BD 197F:0304
197F:0105 04 35 197F:0305
197F:0107 76 71 197F:0307
197F:0108 E6 11 197F:0308
197F:0109 19 2C 197F:0309
197F:010A 80 0A 197F:030A
197F:010B 36 7F 197F:030B
197F:010C BE 22 197F:030C
197F:010D 83 93 197F:030D
197F:010E 49 77 197F:030E
197F:010F 4F 8A 197F:030F

Адреса 197F:0106 и 197F:0306 отсутствуют в списке. Это означает, что значения, расположенные по этим адресам, совпадают.

========================================================================================
Debug: d (dump)

Просмотр содержимого заданного диапазона адресов памяти. Выполненная без параметров команда d выводит на экран содержимое 128 байт, начиная с конца диапазона адресов, заданного в предыдущей команде d.
Синтаксис

d [диапазон]
Параметры

диапазон
    Задание начального и конечного адреса или начального адреса и длины блока памяти для просмотра его содержимого.
?
    Вывод списка команд debug.

Примечания

    *
    * Задание правильных записей диапазона

      Параметр диапазон используется в подкомандах debug для задания диапазона памяти. Параметр диапазон можно задать в одном из следующих форматов: начальный адрес и конечный адрес или начальный адрес и длина (обозначаемая l) диапазона. Например, оба следующих выражения задают диапазон из 16 байтов, начинающийся с адреса CS:100:

      cs:100 10f

      cs:100 l 10
    * Если используется подкоманда d, содержимое памяти выводится командой Debug.exe двумя частями: шестнадцатеричной (каждый байт представлен в шестнадцатеричном формате) и текстовой (каждый байт представлен символом ASCII). Непечатаемые символы отображаются точкой (.) в текстовой части. Каждая строка на экране представляет содержимое 16 байт со знаком тире между восьмым и девятым байтом. Все строки начинаются на 16-ти байтной границе.
    * Сведения об отображении содержимого регистров с помощью подкоманды r (register) см. по ссылке «».

Примеры

Введите следующую команду:

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 выведет на экран адрес и его содержимое, затем повторит адрес на следующей строке и будет ждать ввода новой команды. В этот момент можно выполнить одно из следующих действий.
          o Заменить байт данных. Для этого введите новое значение. Если введенное значение не является допустимым шестнадцатеричным числом или содержит более двух цифр, Debug.exe не выводит на экран неверные или избыточные символы.
          o Перейти к следующему байту. Для этого нажмите клавишу ПРОБЕЛ. Для изменения данного байта введите новое значение после текущего. Если при нажатии клавиши ПРОБЕЛ пройдена 8-байтная граница, Debug.exe выводит на экран новую строку с новым адресом в начале строки.
          o Возвратиться к предыдущему байту. Для этого нажмите клавишу МИНУС. Для перемещения назад более чем на один байт нажмите эту клавишу несколько раз. При нажатии клавиши МИНУС Debug.exe выводит новую строку с текущим адресом и значением.
          o Остановить выполнение подкоманды e. Для этого нажмите клавишу ENTER. Это можно сделать в любой позиции курсора.
    * Использование параметра список

      Если введен параметр список, подкоманда 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-
04BA:0102 00.-
04BA:0101 10._

Введите 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).
    * Для получения дополнительных сведений о выполнении циклов, строковых инструкций, программных прерываний и процедур с помощью подкоманды p (proceed) щелкните ссылку «».
    * Сведения о выполнении одной инструкции с помощью подкоманды t (trace) см. по ссылке «».

Примеры

Чтобы запустить текущую программу и выполнить ее до точки останова по адресу 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.

Заметки

    *
    * В программе Debug.exe два введенных числа складываются, а затем вычисляется их разность. Результаты вычислений выводятся в одной строке — вначале сумма, затем разность.

Примеры

Введите следующую команду:

h19f 10a

Результаты вычислений Debug.exe будут выведены в виде:

02A9 0095

========================================================================================
Debug: i (input)

Считывание и вывод на экран одного байта из указанного порта ввода.
Синтаксис

i порт
Параметры

порт
    Обязательный параметр. Задание порта ввода адресом. Адрес может быть 16-битным значением.
?
    Вывод списка подкоманд debug.

Заметки

    *
    * Сведения об отправке байта в порт вывода с помощью подкоманды o (output) см. по ссылке «».

Примеры

Введите следующую команду:

i2f8

Если находящаяся в порту величина равна 42h, Debug.exe считает ее и выведет в следующем виде:

42

========================================================================================
Debug: l (load)

Загрузка файла или содержимого сектора диска в память. Выполненная без параметров подкоманда l загружает файл, указанный в командной строке программы debug, в память, начиная с адреса CS:100. В регистрах BX и CX указывается количество загруженных байт. Если имя файла не было задано в командной строке debug, используется файл, ранее заданный при вызове последней подкоманды n.
Синтаксис

l [адрес]

l [адрес] [диск] [первый_сектор] [число]
Параметры

адрес
    Задание адреса области памяти, в которую требуется загрузить содержимое файла или сектора. Если параметр адрес не задан, используется текущий адрес в регистре CS.
диск
    Задание накопителя, содержащего диск, с которого считываются определенные сектора. Данный параметр задается числом: 0 = A, 1 = B, 2 = C и т. д.
первый_сектор
    Задание шестнадцатеричного номера первого сектора, содержимое которого требуется загрузить.
число
    Задание шестнадцатеричного числа последовательных секторов, содержимое которых требуется загрузить. Параметры диск, первый_сектор и число используются только в том случае, когда необходимо загрузить содержимое определенных секторов, а не файл, указанный в командной строке debug или в последней подкоманде n (name).
?
    Вывод списка подкоманд debug.

Заметки

    *
    * Для загрузки задаваемого регистрами BX:CX числа байтов из файла на диске используется следующий синтаксис:

      l [адрес]
    * Для пропуска файловой системы и прямой загрузки указанных секторов используется следующий синтаксис:

      l [адрес] [диск] [первый_сектор] [число]
    * Задание правильных записей адреса

      Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр могут быть пропущены. По умолчанию для подкоманд a, g, l, t, u и w команды debug адрес сегмента содержится в регистре CS. Для других подкоманд по умолчанию используется сегмент DS. All numeric values are in hexadecimal format. Между именем сегмента и значением смещения следует вставлять двоеточие. Следующие адреса являются допустимыми:

      CS:0100

      04BA:0100
    * Использование параметра адрес

      При вызове подкоманды l с указанием параметра адрес Debug.exe загрузит файл или содержимое сектора диска в область памяти, начиная с адреса.
    * Использование всех параметров

      При вызове подкоманды l со всеми параметрами Debug.exe загружает содержимое сектора диска, а не файла.
    * Загрузка содержимого сектора диска

      Каждый сектор в указанном диапазоне считывается с диска, заданного параметром диск. Debug.exe начинает загрузку с первого_сектора и последовательно загружает сектора в память, пока не будет загружено заданное число секторов.
    * Загрузка файла .exe

      Для файлов с расширением .exe параметр адрес игнорируется. В этом случае Debug.exe использует загрузочный адрес, задаваемый в заголовке .exe файла. При загрузке заголовок отделяется от самого .exe файла, загружаемого в память, поэтому размер файла, указанный в заголовке, и фактически занимаемый размер в памяти будут различаться. Для просмотра .exe файла целиком он может быть переименован в файл с другим расширением и затем просмотрен в программе Debug.
    * Загрузка файлов .hex

      В программе Debug.exe файлы с расширением .hex распознаются как файлы в шестнадцатеричном формате. Подкоманду l можно запустить без параметров для загрузки такого шестнадцатеричного файла, начиная с адреса, указанного в данном файле. Если подкоманда l запущена с параметром адрес, начальная точка загрузки определяется как сумма заданного адреса и адреса, содержащегося в шестнадцатеричном файле.
    * Сведения об указании файла с помощью подкоманды n (name) см. по ссылке «».
    * Сведения о записи отлаживаемого файла на диск с помощью подкоманды w (write) см. по ссылке «».

Примеры

В командной строке введите:

debug

Введите следующую команду:

nfile.com

Чтобы загрузить файл File.com, введите следующую команду:

l

Debug.exe загружает этот файл и выводит приглашение debug.

Чтобы загрузить содержимое 109 (6Dh) секторов диска C, начиная с логического сектора 15 (0Fh), в область памяти, начиная с адреса 04BA:0100, введите следующую команду:

l04ba:100 2 0f 6d

========================================================================================
Debug: m (move)

Копирование содержимого одного блока памяти в другой.
Синтаксис

m диапазон адрес
Параметры

диапазон
    Обязательный параметр. Задание начального и конечного адреса или начального адреса и длины области памяти, содержимое которой требуется скопировать.
адрес
    Обязательный параметр. Задание начального адреса области памяти, в которую требуется скопировать содержимое диапазона.
?
    Вывод списка подкоманд debug.

Примечания

    *
    * Задание правильных записей диапазона

      Параметр диапазон используется в подкомандах debug для задания диапазона памяти. Параметр диапазон можно задать в одном из следующих форматов: начальный адрес и конечный адрес или начальный адрес и длина (обозначаемая l) диапазона. Например, оба следующих выражения задают диапазон из 16 байтов, начинающийся с адреса CS:100:

      cs:100 10f

      cs:100 l 10
    * Задание правильных записей адреса

      Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр могут быть пропущены. По умолчанию для подкоманд a, g, l, t, u и w команды debug адрес сегмента содержится в регистре CS. Для других подкоманд по умолчанию используется сегмент DS. Все числовые значения при этом представлены в шестнадцатеричном формате. Между именем сегмента и значением смещения следует вставлять двоеточие. Следующие адреса являются допустимыми:

      CS:0100

      04BA:0100
    * Копирование данных

      Если адреса в копируемом блоке памяти заданы так, что в этот блок не записываются новые данные, то информация в этом блоке не изменяется. Если же операция копирования является перекрывающей, перекрывающиеся данные перезаписываются. (Операция копирования является перекрывающей, если два блока памяти имеют общую часть).
    * Перекрывающееся копирование двух областей памяти

      Подкоманда m выполняет перекрывающее копирование без потери данных в области назначения. Содержимое адресов, которые будут перезаписаны, копируется в первую очередь. Если данные копируются из старших адресов в младшие адреса, операция копирования начинается с младшего адреса исходного блока и продолжается в направлении старшего адреса. И наоборот, если данные копируются из младших адресов в старшие, копирование начинается со старших адресов исходного блока и продолжается в направлении младшего адреса.

Примеры

Чтобы скопировать содержимое адресов с CS:110 по CS:510, а затем с CS:10F по CS:50F и так далее, пока все содержимое адресов с CS:100 по CS:500 не будет скопировано, введите следующую команду:

mcs:100 110 cs:500

Чтобы просмотреть результаты, воспользуйтесь подкомандой d (dump), указав адреса, заданные в подкоманде m.

========================================================================================
Debug: n (name)

Задание имени исполняемого файла для команд debug l (load) или w (write) или задание параметров для отлаживаемого исполняемого файла. Выполненная без параметров подкоманда n очищает текущие значения.
Синтаксис

n [путь][исполняемый_файл]

n [параметры_файла]
Параметры

[путь][исполняемый_файл
    Задание расположения и имени исполняемого файла для тестирования.
[параметры_файла]
    Задание параметров и ключей командной строки для тестируемого исполняемого файла.
?
    Вывод списка подкоманд debug.

Примечания

    *
    * Использование подкоманды n

      Подкоманду n можно использовать двумя способами. Во-первых, для задания имени файла для последующих подкоманд l (load) или w (write). Если программа Debug.exe вызвана без задания имени файла для отладки, команда n имя_файла должна быть вызвана перед использованием команды l для загрузки файла. Имя файла форматируется соответствующим образом для контрольного блока файла (FCB) по адресу CS:5C. Во-вторых, подкоманда n может использоваться для задания параметров и ключей командной строки отлаживаемого файла.
    * Области памяти

      В следующей таблице перечислены четыре области памяти, которые используются командой n.
      Область памяти Contents
      CS:5C Блок управления файлом (FCB) для файла 1
      CS:6C Блок управления файлом (FCB) для файла 2
      CS:80 Длина строки команды n (в символах)
      CS:81 Начало строки команды n

      Первое имя файла, задаваемое командой n, размещается в блоке управления файлом по адресу CS:5C. Если задано второе имя, оно помещается в блок управления файлом по адресу CS:6C. Количество символов в командной строке команды n (кроме первого символа, n) сохраняется по адресу CS:80. Собственно командная строка n (снова без символа n) сохраняется, начиная с адреса CS:81. Эти символы могут быть любыми параметрами и разделителями, которые допустимо вводить с командной строки в Windows 2000.
    * Сведения о загрузке содержимого файла или определенных секторов диска в память с помощью команды Debug L (Load) см. по ссылке «».
    * Сведения о записи отлаживаемого файла на диск с помощью подкоманды w (write) см. по ссылке «».

Примеры

В этом примере запускается команда debug и загружается программа Prog.com для отладки. Чтобы указать два параметра для программы Prog.com и запустить эту программу, введите следующую команду:

debug prog.com
nparam1 param2
g

В этом случае подкоманда g (go) запускает программу так, как если бы она была запущена с командной строки в виде:

prog param1 param2

При тестировании и отладке создается среда времени исполнения для программы Prog.com.

В следующей последовательности команд первая подкоманда n задает имя файла File1.exe для последующей подкоманды l (load), которая загружает файл File1.exe в память. Вторая подкоманда n задает параметры для файла File1.exe. Наконец, подкоманда g запускает File1.exe так, как если бы с командной строки было бы введено File1 File2.dat File2.dat.

nfile1.exe
l
nfile2.dat file3.dat
g

После команды l во втором экземпляре команда n не используется. Если подкоманда w (write) используется во втором экземпляре подкоманды n, файл File1.exe (т. е. отлаживаемый) сохраняется под именем File2.dat. Чтобы этого не произошло, всегда вызывайте команду l или w сразу же после команды n в первой форме.