мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
asm:lesson2 [28/09/2010 22:35] – создано ybezrukovasm:lesson2 [07/02/2012 18:30] (текущий) arabusov
Строка 1: Строка 1:
-====== Урок 2 ======+====== MS-DOS (основы) ======
  
 ===== Работа с DOSBox ===== ===== Работа с DOSBox =====
-Для того, чтобы запустить DOSBox, неоходимо выбрать меню **Приложения**->**Игры**->**Эмулятор DOSBox**. Эта программа достаточно корректно эмулирует операционную систему MS-DOS, однако надо учитывать, что в нём существуют некоторые ограничения. Однако для первых уроков программирования на ассемблере эта программа подходит идеально:-D.+Для того, чтобы запустить DOSBox, неоходимо выбрать меню **Приложения**->**Игры**->**Эмулятор DOSBox**. Эта программа достаточно корректно эмулирует операционную систему MS-DOS, однако надо учитывать, что в нём существуют некоторые ограничения. Однако для первых уроков программирования на ассемблере эта программа подходит идеально. 
 ==== Команды MS-DOS ==== ==== Команды MS-DOS ====
-MS-DOS - дисковая операционная система. Поэтому большая часть команд связана с работой диска (создание каталогов, операции с файлами и т.д.). Диски в MS-DOS нумеруются также, как и в windows (точнее наоборот, в windows также, как в MS-DOS): диск A - дисковод гибких дисков, C, D и т.д. - локальные диски. Для последних версий появилась возможность подключать CD-ROM, но это требовало изрядного энтузиазма, да и не так уж много человек обладало в то время CD-ROM.+MS-DOS --- дисковая операционная система. Поэтому большая часть команд связана с работой диска (создание каталогов, операции с файлами и т.д.). Диски в MS-DOS нумеруются также, как и в windows (точнее наоборот, в windows также, как в MS-DOS): диск A --- дисковод гибких дисков, C, D и т.д. --- локальные диски. Для последних версий появилась возможность подключать CD-ROM, но это требовало изрядного энтузиазма, да и не так уж много человек обладало в то время CD-ROM.
 == Список команд DOS == == Список команд DOS ==
-Материал из Википедии — свободной энциклопедии 
-Перейти к: навигация, поиск 
  
-Список команд DOS — нижеследующий список команд для операционной системы DOS. Начиная с 5-й версии, этот список с кратким описанием каждой команды может быть получен набором команды HELP. Также начиная с 5-й версии справка по конкретной команде может быть получена набором символов /? после имени команды.+Материал из Википедии 
  
-Например, набор команды+Список команд DOS --- нижеследующий список команд для операционной системы DOS. Начиная с 5-й версииэтот список с кратким описанием каждой команды может быть получен набором команды HELP. Также начиная с 5-й версии справка по конкретной команде может быть получена набором символов /? после имени команды.
  
 +Например, набор команды
 +<code>
 C:\>ren /? C:\>ren /?
 +</code>
 приведёт к получению справки по команде ren: приведёт к получению справки по команде ren:
  
 Переименование одного или нескольких файлов. Переименование одного или нескольких файлов.
 +<code>
 RENAME [диск:][путь]имя_файла1 имя_файла2. RENAME [диск:][путь]имя_файла1 имя_файла2.
 REN [диск:][путь]имя_файла1 имя_файла2. REN [диск:][путь]имя_файла1 имя_файла2.
 +</code>
 Для конечного файла нельзя указать другой диск или каталог. Для конечного файла нельзя указать другой диск или каталог.
  
 Все команды DOS являются нечувствительными к регистру букв, то есть любая команда может быть набрана как строчными, так и заглавными буквами. Все команды DOS являются нечувствительными к регистру букв, то есть любая команда может быть набрана как строчными, так и заглавными буквами.
-Содержание: 
-    * 1 Команды 
-          o 1.1 attrib 
-          o 1.2 cd или chdir 
-          o 1.3 chkdsk 
-          o 1.4 cls 
-          o 1.5 copy 
-          o 1.6 del, erase 
-          o 1.7 deltree 
-          o 1.8 dir 
-          o 1.9 edisk/mbr 
-          o 1.10 format 
-    * 2 См. также 
  
-[править] Команды +Команды: 
-[править] attrib+ 
 +//attrib//
  
 Вывод и изменение атрибутов файлов. Вывод и изменение атрибутов файлов.
 +<code>
 ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [диск:] [путь] [имя_файла] [/S] [/D] ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [диск:] [путь] [имя_файла] [/S] [/D]
 +</code>
 +   Установка атрибута. +   Установка атрибута.
 -   Снятие атрибута. -   Снятие атрибута.
Строка 52: Строка 41:
 S   Атрибут "Системный". S   Атрибут "Системный".
 H   Атрибут "Скрытый". H   Атрибут "Скрытый".
-[диск:] [путь] [имя_файла] +[диск:] [путь] [имя_файла] Указание файла или набора файлов для обработки. 
-    Указание файла или набора файлов для обработки. +/S  Обработка файлов с указанными именами в текущей папке и во всех ее подпапках.
-/S  Обработка файлов с указанными именами в текущей папке +
-    и во всех ее подпапках.+
 /D  Обработка и файлов, и папок. /D  Обработка и файлов, и папок.
  
-Эквивалентна команде Unix chmod. +Эквивалентна команде Unix //chmod//.
-[править] cd или chdir+
  
-Вывод имени либо смена текущего каталога.+//cd// или //chdir//
  
 +Вывод имени либо смена текущего каталога.
 +<code>
 CHDIR [/D] [диск:][путь] CHDIR [..] CD [/D] [диск:][путь] CD [..] CHDIR [/D] [диск:][путь] CHDIR [..] CD [/D] [диск:][путь] CD [..]
- +</code> 
- ..  обозначает переход в родительский каталог.+..  обозначает переход в родительский каталог.
  
 Команда CD диск: отображает имя текущего каталога указанного диска. Команда CD без параметров отображает имена текущих диска и каталога. Команда CD диск: отображает имя текущего каталога указанного диска. Команда CD без параметров отображает имена текущих диска и каталога.
Строка 76: Строка 64:
  
 Команда CHDIR перестает рассматривать пробелы как разделители, что позволяет перейти в подкаталог, имя которого содержит пробелы, не заключая все имя каталога в кавычки. Например: Команда CHDIR перестает рассматривать пробелы как разделители, что позволяет перейти в подкаталог, имя которого содержит пробелы, не заключая все имя каталога в кавычки. Например:
 +<code>
    chdir \winnt\profiles\username\programs\start menu    chdir \winnt\profiles\username\programs\start menu
 +</code>
 приводит к тому же результату, что и: приводит к тому же результату, что и:
 +<code>
    cd "\winnt\profiles\username\programs\start menu"    cd "\winnt\profiles\username\programs\start menu"
 +</code>
 При отключении расширенной обработки команд используется только второй вариант. При отключении расширенной обработки команд используется только второй вариант.
  
-    Эквивалентна команде Unix cd (с параметрами), или pwd (без параметров).+Эквивалентна команде Unix //cd// (с параметрами), или //pwd// (без параметров).
  
 Команды для работы с каталогами Чтобы команда сработала, нужно ее напечатать при помощи клавиатуры и нажать ENTER. В основном регистр не учитывается, то есть команды можно вводить как маленькими так и большими буквами. DOS не понимает длинные имена файлов, только в формате 8.3, то есть 8 символов в названии файла и 3 — в расширении. Обратите внимание на пробелы. Как правило, в DOS`e после пробела должен стоять параметр. Команды для работы с каталогами Чтобы команда сработала, нужно ее напечатать при помощи клавиатуры и нажать ENTER. В основном регистр не учитывается, то есть команды можно вводить как маленькими так и большими буквами. DOS не понимает длинные имена файлов, только в формате 8.3, то есть 8 символов в названии файла и 3 — в расширении. Обратите внимание на пробелы. Как правило, в DOS`e после пробела должен стоять параметр.
  
-<tbody></tbody> 
-Команда Формат Описание Параметры 
-dir dir диск:\путь\имя_файла /параметры Просмотр каталога /p - поэкранный вывод, /W - вывод информации только об именах файлов (по пять в каждой строке) 
-md md диск:\имя_каталога Создание каталога  
-cd cd диск:\имя_каталога Смена текущего каталога  
-rd rd диск:\имя_каталога Удаление каталога  
-deltree deltree имя_файла_или_имя_каталога Удаление каталога со всем его содержимым  
-move move диск: имя_каталога новое_имя_каталога Переименование каталога  
-path path диск1:\имя_каталога1;диск2:\имя_каталога2 Поиск  
  
-Набрав две точки (..) можно вернуться в предыдущий каталог, а при вводе \ — в корневой каталог.+|Команда |Формат|Описание|Параметры| 
 +|dir|dir диск:\путь\имя_файла /параметры |Просмотр каталога |/p --- поэкранный вывод, /W --- вывод информации только об именах файлов (по пять в каждой строке)| 
 +|md|md диск:\имя_каталога|Создание каталога| |  
 +|cd|cd диск:\имя_каталога|Смена текущего каталога| | 
 +|rd|rd диск:\имя_каталога|Удаление каталога| | 
 +|deltree|deltree имя_файла_или_имя_каталога|Удаление каталога со всем его содержимым| | 
 +|move|move диск: имя_каталога новое_имя_каталога|Переименование каталога| |  
 +|path|path диск1:\имя_каталога1;диск2:\имя_каталога2|Поиск| |  
 + 
 +Набрав две точки (..) можно вернуться в предыдущий каталог, а при вводе \ --- в корневой каталог.
  
 Примеры: Примеры:
  
-dir — просмотр оглавления текущего каталога;+dir --- просмотр оглавления текущего каталога; 
 + 
 +dir *.exe --- выводится информация обо всех файлах с расширением EXE из текущего каталога;
  
-dir *.exe — выводится информация обо всех файлах с расширением EXE из текущего каталога;+cd c:\catalog --- установить текущим каталог с именем catalog на диске C;
  
-cd c:\catalog — установить текущим каталог с именем catalog на диске C;+cd .. --- переход на каталог выше;
  
-cd .. — переход на каталог выше;+cd\ --- переход в корневой каталог;
  
-cd\ — переход в корневой каталог;+md books --- в текущем каталоге создать подкаталог books;
  
-md books — в текущем каталоге создать подкаталог books;+md c:\archives --- в корневом каталоге на диске С: создается каталог archives;
  
-md c:\archives — в корневом каталоге на диске С: создается каталог archives;+rd games --- удаление каталога games в текущем каталоге.
  
-rd games — удаление каталога games в текущем каталоге. +//chkdsk//
-[править] chkdsk+
  
 Проверка диска и вывод отчета. Проверка диска и вывод отчета.
 +<code>
 CHKDSK [том:[[путь]имя_файла]] [/F] [/V] [/R] [/X] [/I] [/C] [/L[:размер]] CHKDSK [том:[[путь]имя_файла]] [/F] [/V] [/R] [/X] [/I] [/C] [/L[:размер]]
- +</code> 
- Том          Определяет точку подключения, имя тома или букву проверяемого диска + Том          Определяет точку подключения, имя тома или букву проверяемого диска с двоеточием.
-             с двоеточием.+
  имя_файла     Файлы, проверяемые на наличие фрагментации (только  FAT/FAT32).  имя_файла     Файлы, проверяемые на наличие фрагментации (только  FAT/FAT32).
  /           Исправление ошибок на диске.  /           Исправление ошибок на диске.
- /           Для FAT/FAT32: вывод полного пути и имени для каждого файла + /           Для FAT/FAT32: вывод полного пути и имени для каждого файла на этом диске. Для NTFS: также вывод сообщений об очистке. 
-               на этом диске. + /           Поиск поврежденных секторов и восстановление их содержимого. (подразумевает /F). 
-               Для NTFS: также вывод сообщений об очистке. + /L:размер     Только для NTFS: изменение размера файла журнала до указанной величины (в КБ). Если размер не указан, выводится текущее значение размера. 
- /           Поиск поврежденных секторов и восстановление их содержимого. + /           При необходимости предварительное отключение тома. Все открытые дескрипторы для этого тома будут недействительны. (требует /F).
-               (подразумевает /F). +
- /L:размер     Только для NTFS: изменение размера файла журнала до указанной +
-               величины (в КБ). Если размер не указан, выводится текущее +
-               значение размера. +
- /           При необходимости предварительное отключение +
-               тома. Все открытые дескрипторы для этого тома будут +
-               недействительны. (требует /F).+
  /           Только для NTFS: менее строгая проверка индексных элементов.  /           Только для NTFS: менее строгая проверка индексных элементов.
  /           Только для NTFS: пропуск проверки циклов внутри структуры папок.  /           Только для NTFS: пропуск проверки циклов внутри структуры папок.
  
-Ключи /I или /C укорачивают время выполнения CHKDSK за счет пропуска некоторых проверок тома.+Ключи /I или /C укорачивают время выполнения //CHKDSK// за счет пропуска некоторых проверок тома.
  
-    Эквивалентна команде fsck в Unix.+Эквивалентна команде //fsck// в Unix.
  
-[править] cls+//cls//
  
-    Очищает экран…+Очищает экран…
  
-cls+Эквивалентна команде //clear// в Unix.
  
-    Эквивалентна команде clear в Unix. +//copy//
- +
-[править] copy+
  
 Копирование одного или нескольких файлов в другое место. Копирование одного или нескольких файлов в другое место.
  
 +<code>
 COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/A | /B] источник [/A | /B] [+ источник [/A | /B] + … [результат [/A | /B]] COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/A | /B] источник [/A | /B] [+ источник [/A | /B] + … [результат [/A | /B]]
 +</code>
  
 источник Имена одного или нескольких копируемых файлов. источник Имена одного или нескольких копируемых файлов.
Строка 166: Строка 147:
 /B Файл является двоичным файлом. /B Файл является двоичным файлом.
  
-/D Указывает на возможность создания зашифрованного файла +/D Указывает на возможность создания зашифрованного файла результат Каталог и/или имя для конечных файлов.
- +
-результат Каталог и/или имя для конечных файлов.+
  
 /V Проверка правильности копирования файлов. /V Проверка правильности копирования файлов.
Строка 188: Строка 167:
 Чтобы объединить файлы, укажите один конечный и несколько исходных файлов, используя подстановочные знаки или формат «файл1+файл2+файл3+…». Чтобы объединить файлы, укажите один конечный и несколько исходных файлов, используя подстановочные знаки или формат «файл1+файл2+файл3+…».
  
-Эквивалентна команде cp в Unix.+Эквивалентна команде //cp// в Unix.
  
-Расширенными возможностями обладают XCOPY и robocopy +Расширенными возможностями обладают //XCOPY// и //robocopy//
-[править] del, erase+
  
-Удаление одного или нескольких файлов.+//del, erase//
  
 +Удаление одного или нескольких файлов.
 +<code>
 DEL [/P] [/F] [/S] [/Q] [/A[[:]атрибуты]] имена ERASE [/P] [/F] [/S] [/Q] [/A[[:]атрибуты]] имена DEL [/P] [/F] [/S] [/Q] [/A[[:]атрибуты]] имена ERASE [/P] [/F] [/S] [/Q] [/A[[:]атрибуты]] имена
 +</code>
  
- имена              Имена одного или нескольких файлов. Для удаления сразу +имена              Имена одного или нескольких файлов. Для удаления сразу нескольких файлов используются подстановочные знаки. Если указан каталог, из него будут удалены все файлы.
-              нескольких файлов используются подстановочные знаки. +
-             Если указан каталог, из него будут удалены все файлы. +
  /         Запрос на подтверждение перед удалением каждого файла.  /         Запрос на подтверждение перед удалением каждого файла.
  /         Принудительное удаление файлов, доступных только для чтения.  /         Принудительное удаление файлов, доступных только для чтения.
  /         Удаление указанных файлов из всех подкаталогов.  /         Удаление указанных файлов из всех подкаталогов.
  /         Отключение запроса на подтверждение при удалении файлов.  /         Отключение запроса на подтверждение при удалении файлов.
- /         Отбор файлов для удаления по атрибутам. + /         Отбор файлов для удаления по атрибутам.  
- атрибуты     Системные файлы        Доступные только для чтения +атрибуты 
-              Скрытые файлы          Файлы для архивирования +|S|Системные файлы 
-             Префикс "-" имеет значение НЕ+|R|Доступные только для чтения| 
 +|H|Скрытые файлы
 +|A|Файлы для архивирования
 + 
 +Префикс "-" имеет значение НЕ
  
-Изменение команд DEL и ERASE при включении расширенной обработки команд:+Изменение команд //DEL// и //ERASE// при включении расширенной обработки команд:
  
 Результаты вывода для ключа /S принимают обратный характер, то есть выводятся только имена удаленных файлов, а не файлов, которые не удалось найти. Результаты вывода для ключа /S принимают обратный характер, то есть выводятся только имена удаленных файлов, а не файлов, которые не удалось найти.
Строка 326: Строка 308:
 [[http://ru.wikipedia.org/wiki/Debug]] [[http://ru.wikipedia.org/wiki/Debug]]
  
-Debug — Программа отладчик, которую используют для проверки и отладки выполняемых файлов.+Debug --- Программа отладчик, которую используют для проверки и отладки выполняемых файлов. 
 Данная программа является консольным приложением и предназначена для создания или изменения кода файлов. С помощью неё можно создавать простые приложение под MS-DOS и отслеживать их работу. Данный отладчик находится на самом низком уровне компиляторов assembler. Но обладает неплохими возможностями такими как просмотр, изменение памяти и получение состояния регистров. Данная программа является консольным приложением и предназначена для создания или изменения кода файлов. С помощью неё можно создавать простые приложение под MS-DOS и отслеживать их работу. Данный отладчик находится на самом низком уровне компиляторов assembler. Но обладает неплохими возможностями такими как просмотр, изменение памяти и получение состояния регистров.
  
 Программа вызывается через командную строку: Программа вызывается через командную строку:
 +<code>
 DEBUG DEBUG
  
Строка 336: Строка 319:
  
 DUBUG C:\мойпуть\My.com DUBUG C:\мойпуть\My.com
 +</code>
  
 Работа с файлами Работа с файлами
Строка 350: Строка 334:
 Команда Описание Пример Команда Описание Пример
 -R Выдаёт содержание всех регистров. -R [Нажать Enter] -R Выдаёт содержание всех регистров. -R [Нажать Enter]
 +<code>
   AX=D3E0 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000     AX=D3E0 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000  
   DS=16BB ES=16BB SS=16BB CS=16BB IP=0100 NV UP DI PL NZ NA PO NC     DS=16BB ES=16BB SS=16BB CS=16BB IP=0100 NV UP DI PL NZ NA PO NC  
   15A3:0100 30C0    XOR AL,AL                                         15A3:0100 30C0    XOR AL,AL                                      
 +</code>
 -R [регистр] Просмотр регистра и запись нового значения в регистр. -R AX [Нажать Enter] -R [регистр] Просмотр регистра и запись нового значения в регистр. -R AX [Нажать Enter]