Dos fn 41h удалить файл


Команда DEL (ERASE)

&nbsp &nbsp Соманда DEL (ERASE) используется для удаления одного или нескольких файлов.

Формат командной строки:

DEL [/P] [/F] [/S] [/Q] [/A[[:]атрибуты]] имена

ERASE [/P] [/F] [/S] [/Q] [/A[[:]атрибуты]] имена

имена — Имена одного или нескольких файлов. Для удаления сразу нескольких файлов используются подстановочные знаки. Если указан каталог, из него будут удалены все файлы.

/P — Запрос на подтверждение перед удалением каждого файла.

/F — Принудительное удаление файлов, доступных только для чтения.

/S — Удаление указанных файлов из всех подкаталогов.

/Q — Отключение запроса на подтверждение при удалении файлов.

/A — Отбор файлов для удаления по атрибутам.

S — Системные файлы
R — Доступные только для чтения
H — Скрытые файлы
A — Файлы для архивирования
Префикс «-» имеет значение НЕ — например -H — не скрытый файл.

Функция DOS 3Eh — Закрыть файл

Ввод:

АН = 3Eh

ВХ = идентификатор

Вывод:

CF = 0, если не произошла ошибка

CF = 1 и АХ = 6, если неправильный идентификатор

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

Удаление файла

Функция DOS 41h — Удаление файла

Ввод:

АН = 41h

DS:DX = адрес ASCIZ-строки с полным именем файла

Вывод:

CF = 0, если файл удален

CF = 1 и АН = 02h, если файл не найден, 03h — если путь не найден, 05h — если доступ запрещен

Удалить файл можно только после того, как он будет закрыт, так как DOS будет продолжать выполнять запись в несуществующий файл, что может привести к разрушению файловой системы. Функция 41h не позволяет использовать маски (символы * и ? в имени файла) для удаления сразу нескольких файлов, хотя этого можно добиться, вызывая ее через недокументированную функцию 5D00h.

Основные функции для ввода символов с клавиатуры

Функции 7 и 8 прерывания 21H ожидают ввода символа, если буфер клавиатуры пуст; появление символа на экране не отображается.

Разница между этими функциями в том, что функция 8 распознаёт специальное сочетание клавиш «Ctrl+Break»(при активизации Ctrl+Break выполняется прерывание INT 23h – останов программы), а функция 7 игнорирует это сочетание клавиш.

Функции 7 и 8 возвращают введённый символ в регистр AL. Если AL содержит ASCII 0, то получен расширенный код. При этом необходимо повторить вызов прерывания с теми же параметрами, и в AL появится второй байт расширенного кода.

Расширенные клавишы ASCII (F1-F12, PageUp и т.п.)

Вход: АН 07h
Выход: AL код символа
Вход: АН 08h
Выход: AL код символа

Пример 1.

;— получаем введённый символMOV AH,8 ; номер функцииINT 21HCMP AL,0 ; проверяем на расширенный кодJE EXT_COD ; если да, то переход на анализ кода иначе – ; обработка символа анализ расширенного кодаEXT_COD: INT 21H ; берём второй байт кода CMP AL, 75 ; проверяем на «стрелка влево» JE CUR_LEFT ; переход к обработчику CMP AL, 77 ; проверяем на «стрелка вправо» JE CUR_RIGHT ; переход к обработчику

Функция 01h – ожидание ввода символа с эхопечатью

Вход: АН 01h
Выход: AL символ, полученный из STDIN

Функция 1 прерывания 21H ожидает ввода символа с клавиатуры, если её буфер пуст, а затем выводит его на экран в текущую позицию курсора.

Функция обрабатывает нажатие «Ctrl+Break». Введённый символ сохраняется в регистре AL. Если содержимое AL равно ASCII 0, то для получения расширенного кода необходимо повторить прерывание.

Функция 02h – вывод символа на STDOUT с проверкой на Ctrl+Break

Вход: АН 02h
DL символ, выводимый на устройство стандартного вывода
Выход: Нет

Эта функция посылает символ из регистра DL на устройство стандартного вывода.

В DL можно записать как ASCII-код символа, так сам символ. В последнем случае символ заключается в одинарные кавычки. Если при выполнении этой функции была нажата комбинация клавиш Ctrl+Break, то выполняется прерывание INT 23h, которое по умолчанию осуществляет выход из программы.

Данная функция обрабатывает некоторые управляющие символы:

Выводимый символ Действие
BEL (07h) появляется звуковой сигнал
BS (08h) курсор перемещается на одну позицию влево
НТ (09h) используется для замены на несколько пробелов
LF (0Ah) перевод курсора на одну позицию вниз
CR (0Dh) переход на начало текущей строки

Функция 0AH – получение строки символов

Функция 0AH прерывания 21H позволяет вводить строку длиной до 254 символов, выдавая эхо на терминал. Эта функция продолжает ввод символов до тех пор, пока не нажата клавиша «Enter». DS:DX указывает на строку, куда помещаются вводимые символы.

Вход: АН 0Ah
DS:DX адрес буфера
Выход: = буфер содержит введенную строку

Первый байт буфера должен содержать максимальное число символов для ввода (от 1 до 254);

Второй байт буфера будет содержать длину реально введенной строки без учета последнего символа CR (клавиша Enter);

С третьего байта записывается вводимая строка, включая последний символ CR (0Dh).

Таким образом, для получения 50 — символьной строки надо отвести под буфер минимум 53 байта памяти:

– в первый байт памяти записать число ASCII 51;

– после ввода 50 символов второй байт дескриптора будет содержать ASCII 50;

– 53-й байт отведённой памяти будет содержать ASCII 13 (0Dh).

Пример 2:

; — — — в сегменте данныхSTRING DB 53 DUP(?) ; область для 50 символов; — — — получение строки с клавиатурыLEA DX, STRING ; DS:DX — адрес строкиMOV BX,DXMOV AL,51 ; установка длины строки (+1 для CR)MOV [BX], AL ; посылаем в первый байт дескриптора ; длину строкиMOV AH, 0AH ; номер функцииINT 21H; — — — получаем в AH длину строкиMOV AH, [BX]+1 ; теперь реальная длина в AH

Пример 3:

; Программа считывает строку символов и выводит ее на экран.

crlf DB 0Dh, 0Ah, ‘$’ ; символы перехода на начало новой строки

buf DB 6 ; выделяем буфер для ПЯТИ видимых символов

MOV DX,offset buf ;DX = адрес буфера

MOV AH,0Ah ;AH = номер функции 0Аh

INT 21h ;вызов функции 0Ah

;Если введенную с клавиатуры строку необходимо вывести на экран, то в

;конец строки нужно записать символ $. Для этого нужно получить адрес

;буфера, узнать длину реально введенной строки и прибавить к полученному

;значению 2, т.к. первые 2 байта содержат служебную информацию. Это

;значение будет адресом байта, который следует за последним символом

;строки. В этот адрес и записывается символ $

MOV DХ,offset buf ; DХ = адрес буфера

MOV BX,0h ; ВХ = 0

MOV BL,[DХ+1] ; BL = длинa строки

MOV BYTE PTR [DХ+BX+2], ‘$’ ; DХ+BX+2 — адрес, который следует

;за последним символом строки

MOV DX,offset buf ; DX = адрес буфера

ADD DX,2h ; прибавляем к DX число 2, т.к. первые

; 2 байта не содержат символов строки

MOV AH,9h ; вызываем функцию вывода строки

Пример 4:Эта программа выводит на экран подряд два символа «А» (латинские);————————————————————————

MOV AH,2 ;АН = 2MOV DL,’A’ ;DL = 41h (код символа А)INT 21h ;вызываем функцию DOS 02hMOV AH,2 ;АН = 2MOV DL,41h ;DL = 41h (код символа А)INT 21h ;вызываем функцию DOS 02h

Пример 5. Программа с консоли заполняет файл my_file.txt, который находится в текущей папке. Длина строки, вводимой в файл с консоли не более 80 символов. Ввод с консоли прекращается, когда в новой строке в начале вводится «пробел». (WFile1.asm)

len_buf db 83 ; длина буфера buf_0ah

len_in db 0 ; количество реально введенных символов строки

buf_in db 82 dup (20h) ; буфер для ввода строки + 0dh0ah

Diplom Consult.ru

Функция DOS 3Eh — Закрыть файл

CF = 0, если не произошла ошибка

CF = 1 и АХ = 6, если неправильный идентификатор

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

9) Удаление файла

Функция DOS 41h — Удаление файла

DS:DX = адрес ASCIZ-строки с полным именем файла

CF = 0, если файл удален

CF = 1 и АН = 02h, если файл не найден, 03h — если путь не найден, 05h — если доступ запрещен

Удалить файл можно только после того, как он будет закрыт, так как DOS будет продолжать выполнять запись в несуществующий файл, что может привести к разрушению файловой системы. Функция 41h не позволяет использовать маски (символы * и ? в имени файла) для удаления сразу нескольких файлов, хотя этого можно добиться, вызывая ее через недокументированную функцию 5D00h.

Основные функции для ввода символов с клавиатуры

Функции 7 и 8 прерывания 21H ожидают ввода символа, если буфер клавиатуры пуст; появление символа на экране не отображается.

Разница между этими функциями в том, что функция 8 распознаёт специальное сочетание клавиш «Ctrl+Break» (при активизации Ctrl+Break выполняется прерывание INT 23h – останов программы), а функция 7 игнорирует это сочетание клавиш.

Функции 7 и 8 возвращают введённый символ в регистр AL. Если AL содержит ASCII 0, то получен расширенный код. При этом необходимо повторить вызов прерывания с теми же параметрами, и в AL появится второй байт расширенного кода.

Расширенные клавишы ASCII (F1-F12, PageUp и т.п.)

Dos fn 41h: удалить файл

Ассемблер? Это просто! Учимся программировать (FAQ)
______________________________________

Вопросы, которые поступили от подписчиков рассылки
«Ассемблер? Это просто! Учимся программировать»

Дата выхода: 2001-08-16

Здравствуйте!
Значит, история такая: мой приятель купил винт Quantum AS на 10 гигов. И принёс мне — временно, пока он не купит все остальные части компа. А у меня его не видно.
BIOS-то этот винт детектит, а вот Виндоуз — ни в какую. Я джамперы и так и сяк ставил — безуспешно.
Быть может, дело в моей матплате Acorp для Pentium MMX ?
Она у меня старая, 1997 года. Если так, то мне перед тем, как тоже винт покупать, и матплату сменить? (А заодно и процессор, и корпус с AT на ATX. )
Кстати, какую лучше брать матплату для Дюрона?
Спасибо за внимание.
Константин.

Привет!
А ты его отформатировал? Если нет, то вначале иди запускай fdisk, создавай логические диски, а потом форматируй их с помощью
format disk:
Если хочешь, чтобы весь диск можно было одним куском отформатировать в программе fdisk надо согласиться на поддержку больших дисков( >2ГБ).

Отправил эксперт: Александр
Эксперт отправил ответов (всего): 65

Экспертная группа: Модели, виды и типы компьютеров (hard)

Пишу программу работающую в реальном режиме времени
Использую прерывание по таймеру
Основная программа пишется на Паскале (Borland Pascal 7.0)
Иницилизация таймера и обработка прерывания на ассемблере.
В обработке прерывания работа с lpt-портом. И. проблема :
добавление команд out dx,al (время выполнения по некоторым
данным на 486 машине — 10 тактов, а у меня Celeron 433) приводит к изменению промежутка времени между прерываниями. Я в шоке! Помогите — горит проект и меня ждет жестокая расправа.
Ниже привожу исходник.

Не знаю, что у меня хорошего получилось, но лучше, думаю, сделать так (см. приложение, там все написано).

Отправил эксперт: Василий
Эксперт отправил ответов (всего): 20

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Здравствуйте, Broken Sword, уважаемые эксперты,

_программа_ должна трассировать Int 21h и сама принимять решение о местонахождении заданной функции.
Весь процесс проходит _автоматически_ без человеческого вмешательства.

Ко всему, возможно, добавляются защиты от трассировки, вроде уничтожения векторов 1 и 3, проверка и подмена флагов трассировки, запись «мусора» в регистры TR1, TR2 . и т.д.

С нетерпением жду ответа,
Андрей.

Не понял, ты хочешь, чтобы я тебе такую программу написал или у тебя есть идеи, но требуются консультации?

Отправил эксперт: Василий
Эксперт отправил ответов (всего): 21

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

У меня проблема с завершением работы Windows98, мне приходится два раза повотрять операцию «Выключить компьютер». Каким образом мне изабивться от этого глюка?

Здравствуйте, Владимир!
Могу сходу предложить три варианта действий:
1.Проверить машину стандартным regclean-ом (можно взять на download.com.
2.Проверить машину с помощью приблуды типа Нортон Виндоктор.
Если ошибка была связана со сбоем в реестре — должно помочь.
3.Вариант, связанный с запуском приложения типа AVX ICQ checker.
(Мне также приходится по два раза выключаться, после первого раза он выкидывает aqmon, после второго — собственно выключается.Но если пользуешься ICQ и не хочешь заловить вируса луче перестраховаться, не так ли =|;о) ).

Отправил эксперт: RANDOM
Эксперт отправил ответов (всего): 10

Экспертная группа: Пользовательская работа с Windows

Как взять с дискетв серийный номр?
Как записать в файл текстовую информациь?

Описание: CX байт данных записывается в файл или на устройство с описателем,
заданным в BX. Данные берутся из буфера, адресуемого через DS:DX.
Данные записываются, начиная с текущей позиции указателя
чтения/записи файла.

Используйте функцию 42H LSEEK, чтобы установить указатель файла,
если необходимо (OPEN сбрасывает указатель в 0).

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

Вы должны всегда сравнивать возвращаемое значение AX (число запи-
санных байт) с CX (запрошенное число байт для записи).
если AX = CX, запись была успешной
если AX Эксперт отправил ответов (всего): 22

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Здравствуйте!
Значит, история такая: мой приятель купил винт Quantum AS на 10 гигов. И принёс мне — временно, пока он не купит все остальные части компа. А у меня его не видно.
BIOS-то этот винт детектит, а вот Виндоуз — ни в какую. Я джамперы и так и сяк ставил — безуспешно.
Быть может, дело в моей матплате Acorp для Pentium MMX ?
Она у меня старая, 1997 года. Если так, то мне перед тем, как тоже винт покупать, и матплату сменить? (А заодно и процессор, и корпус с AT на ATX. )
Кстати, какую лучше брать матплату для Дюрона?
Спасибо за внимание.
Константин.

Здравствуйте, Константин!
Просто напросто у тебя жёсткий диск новый, поэтому на нем нет никакой файловой системы(для Win — обычно Fat 32, для Пингвина — Ext2+Swap).
Тебе надо найти FDisk(стандартная для Win) или Partition Magic, затем создать основной раздел дос на нём(или ещё дополнительный), тогда всё будет в порядке.
А, вообще, обычно к жёсткому диску при покупке должна прилагаться дискета с утилитой установки жесткого диска!

Отправил эксперт: Orlando
Эксперт отправил ответов (всего): 10

Экспертная группа: Модели, виды и типы компьютеров (hard)

Как взять с дискетв серийный номр?
Как записать в файл текстовую информациь?

Здравствуйте, fagot!
По первому вопросу читай выпуск 056 этой рассылки, там есть как найти серийный номер винта(и дискеты соответственно)
По второму вопросу
Для открытия функция 3dh
al=Access mode(0-read, 1-write, 2-both)
DS:DX=ASCIIZ строка полного пути файла
Выход
если бит С=1 AX=Error code, иначе AX=Handle
Тогда для записи используем ф-цию 40h
AX=40h
BX=Handle
CX=кол-во байт для записи
DS:DX-адрес буфера
Выход
если бит С=1 AX=кол-во реально записанных байт

Илон Маск рекомендует:  Что такое код debugger_off

Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 76

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Здравствуйте!
Значит, история такая: мой приятель купил винт Quantum AS на 10 гигов. И принёс мне — временно, пока он не купит все остальные части компа. А у меня его не видно.
BIOS-то этот винт детектит, а вот Виндоуз — ни в какую. Я джамперы и так и сяк ставил — безуспешно.
Быть может, дело в моей матплате Acorp для Pentium MMX ?
Она у меня старая, 1997 года. Если так, то мне перед тем, как тоже винт покупать, и матплату сменить? (А заодно и процессор, и корпус с AT на ATX. )
Кстати, какую лучше брать матплату для Дюрона?
Спасибо за внимание.
Константин.

Здравствуйте, Константин!
Кажись ты прав- твоя мать видит винты до 8 гиг
Хотя! Попробуй его на отдельный шлейф, причем строго Primary Master
А загружайся с другого, то есть типа с D
Для Дюрона лучше всего Soltek, хотя Canyon лучше, но дороже
И не пожалей лишних 3$ на корпус, возьми CodeGen- он пошире, охлаждение получше, и Дюрон с хорошим вентилятором точно влезет.

Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 77

Экспертная группа: Модели, виды и типы компьютеров (hard)

с ЛЕМЪ РЮЙЮЪ ОПНАКЕЛЮ. лЮРЕПХМЯЙЮЪ ОКЮРЮ Asus CUEP2-M. мЮЯРПНИЙХ ОН СЛНКВЮМХЧ ГЮБНДЯЙХЕ. оНД DOCНЛ (МЕ ГЮЦПСФЮЪ Windows) Ъ МЕ БХФС ЛШЬЭ Х ХМНЦДЮ ОПНОЮДЮЕР ЙКЮБХЮРСПЮ. щРН ВРН МЕХЯОПЮБМНЯРЭ ЛЮРЕПХ ХКХ ЦДЕ-РН Ъ МЕСЯКЕДХК, МН МЮЯРПНИЙХ РН ГЮБНДЯЙХЕ. (Х ОНРНЛ МЮЯЙНКЭЙН Ъ ГМЮЧ ЛШЬЭ Х ЙКЮБХЮРСПЮ МХЙЮЙ МЕМЮЯРПЮХБЮЧРЯЪ Б BIOS). нОЕПЮЖХНММСЧ ЯХЯРЕЛС ОЕПЕЯРЮБХК, ПЮГЗЕЛШ ЛШЬХ Х ЙКЮБХЮРСПШ PS/2

гДПЮБЯРБСИРЕ, юКЕЙЯЕИ!
хГБХМХРЕ ГЮ БЯРПЕВМШИ БНОПНЯ, Ю бШ ДПЮИБЕП ДКЪ ЛШЬХ СЯРЮМЮБКХБЮКХ?
ю ЙКЮБХЮРСПЮ ХМНЦДЮ РЮЙ ЯЕАЪ БЕДёР.

Отправил эксперт: яРЮЯ
Эксперт отправил ответов (всего): 6

Экспертная группа: лНДЕКХ, БХДШ Х РХОШ ЙНЛОЭЧРЕПНБ (hard)

КАК
МОЖНО
ПОЛУЧИТЬ
ВСЮ
рассылку с начала.
Чтобы не повторять вопросы
не отнимать время
и неказаться совсем глупым

С уважением к Твоей просветительной деятельности
Олег

Олег Никуленков!
http://www.kalashnikoff.ru/, ссылка Ассемблер, там архив — ВСЕ номера рассылки «Ассемблер, это просто», и 33 (помоему) FAQ из 60 полных, все FAQ можно получить токо осенью

Отправил эксперт: Broken Sword
Эксперт отправил ответов (всего): 51

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

гДПЮБЯРБСИРЕ, СБЮФЮЕЛШЕ ЩЙЯОЕПРШ.
мЕДЮБМН С МЮЯ КНЙЮКЭМСЧ ЯЕРЭ ОПНРЪМСКХ. яПЮГС ФЕ БНГМХЙКЮ ОПНАКЕЛЮ, Р.Й. Ъ ПЮАНРЮЧ ХГ ОНД ДБСУ НЯЕИ — WinXP RC2 Х Win98. рЮЙ БНР, ЯСРЭ ОПНАКЕЛШ Б РНЛ, ВРН ХГ ОНД БХМ98 БЯё МНПЛЮКЭМН ПЮЯЬЮПХБЮЕРЯЪ, БЯё ОНКЭГНБЮРЕКХ ОЮОЙХ БХДЪР, Б МЕЙНРНПШЕ ЛНЦСР ОХЯЮРЭ ЦДЕ ПЮГПЕЬЕМН, Ю ОНД WinXP ОНВЕЛС РПЕАСЕРЯЪ ОЮПНКЭ ОПХВЕЛ Й ОЮОЙЕ IPC$. лНФЕР ЩРН МЕДНДЕКЙХ ЙЮЙХЕ, БЕДЭ НТХЖХЮКЭМНЦН ПЕКХГЮ ЕЫЕ МЕ БШЬКН. ю ЛНФЕР БЯё-РЮЙХ ЛНФМН ЙЮЙ-МХАСДЭ МЮЯРПНХРЭ ?
P.s. вРН-РН ОНУНФЕЕ МЮАКЧДЮЕРЯЪ Х Я Win2000 Professional SP1.
я СБЮФЕМХЕЛ, дЛХРПХИ.

гДПЮБЯРБСИРЕ, дЛХРПХИ!
б НОЕПЮЖХНМЙЮУ НЯМНБЮММШУ МЮ NT (NT 4.0, w2k, winXP) ОПХЛЕМЪЕРЯЪ ДПСЦЮЪ ЯХЯРЕЛЮ ОПНБЕПЙХ ОНКЭГНБЮРЕКЪ. р.Е. ВРНАШ ОНКСВХРЭ ДНЯРСО Й ПЮЯЬЮПЕМНЛС ПЕЯСПЯС МЕНАУНДХЛН ББНДХРЭ МЕ РНКЭЙН ОЮПНКЭ МН Х КНЦХМ. ЩРН ЛНФМН ОПХ ОНЛНЫХ ЯОЕЖХЮКЭМНИ ОПНЦПЮЛЙХ (e.g. Essential NetTools ЙНЛОЮМХХ «TamosSoft» www.tamos.com), КХАН МЮДН КНЦХМХРЭЯЪ Б win’9x Я ХЛЕМЕЛ Х ОЮПНКЕЛ ОНКЭГНБЮРЕКЪ ЙНРНПНЛС МЮ WinXP ПЮГПЕЬёМ ДНЯРСО Й ПЮЯЬЮПЕМНЛС ПЕЯСПЯС.
ю КСВЬЕ ОНЯРЮБЭРЕ ЯЕПБЕП, ОСРЮМХЖШ АСДЕР ЛЕМЭЬЕ.

Отправил эксперт: яРЮЯ
Эксперт отправил ответов (всего): 8

Экспертная группа: оНКЭГНБЮРЕКЭЯЙЮЪ ПЮАНРЮ Я Windows

Как взять с дискетв серийный номр?
Как записать в файл текстовую информациь?

Уважаемый fagot! Вот пример проги, замени ‘Текст’
text_mes db ‘Текст’ на любой свой, и придумай имя файла
filename db ‘c:\text.txt’,0

Отправил эксперт: Broken Sword
Эксперт отправил ответов (всего): 52

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Здравствуйте!
У меня усть вопросики :)
1) Где можно найти tasm32.exe, tlink32.exe & import32.lib
2) Сейчас я пользуюсь Масмом, но у меня есть проблемка с созданием экзешника вот, то что я делаю.
файл Digger.asm:

includelib c:\masm\lib\kernel32.lib
extrn _imp_ExitProcess@4:dword
ExitProcess equ _imp_ExitProcess@4

.386
.model flat,stdcall
option casemap:none
.data
;Инициализированные данные
.data?
;Неинициализированные данные
.code
start: ;Точка входа

push 0
call ExitProcess ;Выход из программы
end start
—————-
А потом я запускаю.
masm /Ic:\masm digger.asm
link digger.obj,digger.exe
—————-
Выводиться сообщение об шибке.
Microsoft (R) Segmented Executable Linker Version 5.31.009 Jul 13 1992
Copyright (C) Microsoft Corp 1984-1992. All rights reserved.

List File [nul.map]:
Libraries [.lib]:
Definitions File [nul.def]:
LINK : warning L4021: no stack segment

digger.obj(digger.asm) : error L2029: ‘_IMP_EXITPROCESS@4’ : unresolved external

There was 1 error detected
———————-
Может я неправильно создал kernal32.lib.
НО kernal32.lib от Visual C++ не подошёл.
ии я сделал
implib.exe kernal32.lib kernal32.dll
(предварительно скопировав dll в ту директорию где запускал implib :)

Я думаю что это связано с ограничением длинны имен, которое присутствует в некоторых объектных файлах.

Или (что вернее) в данном случае у тебя просто отсутствует глобальная переменная _imp_ExitProcess@4

Или же masm все имена приводит к нижнему регистру.

Или же все вместе. :) не знаю точно.

Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html — Операционная система с нуля!)
Эксперт отправил ответов (всего): 53

Экспертная группа: Работа с MASM/TASM

А существуют ли разные всякие ассемблерные библиотеки? Где их можно поискать? (может есть сайты специальные?) Мне например нужен оконный интерфейс для ассемблерной проги. Не как Turbo Vision конечно, поскромнее, но желательно готовый.
PS прилиновать TV не предлогайте :)

Ну и обленился же ты!
Самому состряпать слабо?! Можно даже, используя объекты, благо TASM их поддерживает. Могу если что с этим помочь.

Отправил эксперт: Василий
Эксперт отправил ответов (всего): 23

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Здравствуйте,уважаемые эксперты. ) :)
Ответьте, пожалуйста вот на такой вопрос:)как создать файл, что-нить записать в него, удалить файл с диска, памяти, переместить файл, скопировать?

Здравствуйте, Веселый Эдик!

Как много ты сразу хочешь знать.

Обрати свое внимание на следующие функции DOS:

int 21h
fn 3ch Create file via handle
fn 3dh Open file via handle
fn 3eh Close file via handle
fn 3fh Read from file via handle
fn 40h Write to file via handle
fn 41h Delete file

Функции копирования файлов в досе не существует. реализуется через чтение/запись.

Помимо функций, работающих черех handle есть еще функции работающие через FCB, ноони гораздо неудобнее!.

Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html — Операционная система с нуля!)
Эксперт отправил ответов (всего): 54

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Подписаться на рассылки

Форма подачи вопроса

ВНИМАНИЕ. Пожалуйста, НЕ высылайте один вопрос сразу нескольким подгруппам! Дополнения к вопросам, на которые эксперт уже ответил НЕ следует направлять ведущему рассылки (я не успеваю!). Просто скомбинируйте первый вопрос и дополнение к нему, а затем заново отправьте его, используя приведенную ниже форму!

Нажимайте кнопку «Отправить» только ОДИН раз и дождитесь полной загрузки страницы, иначе вопрос будет продублирован!

Ведущий рассылки,

По вопросам сотрудничества, рекламы и спонсорства обращайтесь:

Зарубежные программисты о русских программистах +1

Средний | Оригинал 14:05 — 13 мар 2013
Просмотров: 2641

Русские программисты никогда не платят за софт. Они или крэкают его или покупают wonderful CD (не стал переводить — так красивше) за 5 баксов с кучей софта. В любом крупном городе России.

Русские программисты всегда используют самые последние разработки в программном обеспечении — самые последнии версии лучших программ — потому как не надо за них платить.

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

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

Русские программисты программируют на всех уровнях, и на процессорных кодах тоже, таблицы которых у них находятся постоянно на рабочем столе. Они помнят назубок список функций прерывания 21h.

Русские программисты помнят всю раскладку английской и русской клавиатуры. Вы можете спросить посреди ночи, какая клавиша находится между A и L, вы будете удивлены ответом: «Какую из семи назвать?»

Русские программисты ненавидят Майкрософт и Майкрософтовские программы, но используют их.

Русские программисты предпочитают Borland, а Microsoft компиляторы инсталлируют только из-за того, что в них хороший help для Windows API.

Русские программисты в Интернете чувствуют себя очень комфортно. Они предпочитают всегда быть online, хотя бы просто потому, что может срочно что-то понадобится.

Русские программисты всегда в настроении попрограммировать.

Есть два вида Русских программистов — первые ненавидят Windows и программируют под Unix, вторые ненавидят Windows и программируют под них. Макинтошевские программисты — не настоящие программисты — им больше подходит название — «юзеры».

Русские программисты нелюбят «кодировать» чью-то другую идею. Каждая программа пишется персонально.

Русские программисты всегда имеют копии Doom, Duke Nukem и Quake на их жестком диске. Они могут играть ночи напролет по сетке в Deathmatch.

Русские программисты никогда не используют джойстик. Клавиатура — вот главное оружие.

Русские программисты никогда не сдаются. Они могут вылавливать баги из их программы забыв о сне и еде.

Жены Русских программистов несчастны, потому как им не уделяется внимания, пока в доме есть хоть один компьютер.

Русским программистам недоплачивают. Но и не существует суммы в мире, способной успокоить их желания.

Начальники не любят Русских программистов. А кто любит умника, который все знает?

Русские программисты не любят использовать шаблоны. Их программы — это индивидуально написанные произведения с большой долей импровизации. Причем, Русский программист старается во всю, чтобы побыстрее запустить программу и увидеть ее в работе.

DOS, функция 41h Удалить файл

DS:DX — адрес строки ASCIZ с именем файла

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Файл удаляется из оглавления заданного диска. Если диск и/или путь

не указаны, принимаются значения по умолчанию. Имя файла не может

содержать обобщенные символы («?» и «*»). Если файл имеет атрибут

«только чтение», то перед удалением необходимо изменить этот атрибут

Dos fn 41h: удалить файл

Функция DOS 3Eh — Закрыть файл

Ввод: АН = 3Eh
ВХ = идентификатор
Вывод: CF = 0, если не произошла ошибка
CF = 1 и АХ = 6, если неправильный идентификатор

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

Функция DOS 41h — Удаление файла

Ввод: АН = 41h
DS:DX = адрес ASCIZ-строки с полным именем файла
Вывод: CF = 0, если файл удален
CF = 1 и АН = 02h, если файл не найден, 03h — если путь не найден, 05h — если доступ запрещен

Удалить файл можно только после того, как он будет закрыт, так как DOS будет продолжать выполнять запись в несуществующий файл, что может привести к разрушению файловой системы. Функция 41h не позволяет использовать маски (символы * и ? в имени файла) для удаления сразу нескольких файлов, хотя этого можно добиться, вызывая ее через недокументированную функцию 5D00h. Но, начиная с DOS 7.0 (Windows 95), официальная функция удаления файла может работать сразу с несколькими файлами.

Функция LFN 41h — Удаление файлов с длинным именем

Основные команды операционной системы MS DOS

COMMAND.COM содержит следующие три вида команд, представленные в табл. 2.3.

Виды команд в MS DOS

Вид команды Расширение имени Примеры
1. Внутренняя DIR, REN, TYPE и т.д.
2. Внешняя .COM или .EXE lex.com, debug.exe, format.com и др.
3. Пакетная .BAT Файлы, содержащие мно-жества перечисленных выше команд.

Все файлы, содержащие расширение «.COM» или «.EXE«, можно использовать как внешние, при этом допускается имена файлов указывать в сокращенной форме, без расширения «.COM» или «.EXE«.

В операционной системе MS DOS можно выполнить последовательность команд, используя для этого режим пакетной обработки.

Пакет – это файл, в котором записаны все требуемые для выполнения команды.

Каждый пакетный (или командный) файл должен иметь расширение «.BAT«

Пакетный файл можно создать командой COPY или любым текстовым редактором. Каким образом это осуществляется, будет изложено в последующих темах.

Команда смены текущего дисковода

Команда смены текущего (активного) дисковода (устройства, или накопителя) содержит имя требуемого дисковода с последующим двоеточием:

После набора команды должна быть нажата клавиша «Enter».

C>A: Enter

В этом примере дисковод C: (НЖД, или винчестер) сменен на дисковод A: для гибких магнитных дисков.

Ниже представлены основные команды операционной системы MS DOS, которые рассматриваются в данной лабораторной работе.

VER – выводится на экран дисплея номер версии операционной системы, которая загружается при запуске компьютера.

DIR – выводит на дисплей список файлов каталога.

TYPE – выводит на экран дисплея содержимое текстового файла.

TIME – выводит на экран дисплея текущее системное время.

DATE – отображает используемую MS DOS текущую системную дату.

MD (MKDIR) – создает новые каталоги (или подкаталоги).

CD – позволяет сменить текущий каталог.

RD – позволяет удалять подкаталог.

COPY – позволяет копировать файлы или группы файлов.

REN (RENAME) – позволяет переименовывать отдельные файлы или группы файлов.

DEL (ERASE) – позволяет удалять файлы.

TREE – выводит на экран дисплея все каталоги или их иерархическую структуру.

Рассмотрим более подробно каждую из приведенных выше команд.

VER

Тип команды: внутренняя.

Функции: выводится на экран дисплея номер версии операционной системы, которая загружена при запуске компьютера.

На экран выводится сообщение вида

MS-DOS Version 5.00

DIR

Тип команды: внутренняя.

Назначение: Просмотр содержания каталога. Выводит на экран список подкаталогов и файлов указанного каталога.

Формат использования команды:

/z – комбинация из дополнительных параметров (ключей).

Если не задан дисковод (disk:) или путь (path\), то подразумевается текущий дисковод или текущий каталог. Если не задано имя файла (filename), то выводится все содержимое каталога. При задании имени файла допускается использование шаблона.

В качестве комбинации /z могут использоваться следующие параметры или ключи:

/P – (Pause или Page) приостанавливает вывод списка файлов каждый раз, когда заполняется экран дисплея. После нажатия любой клавиши вывод продолжается;

Илон Маск рекомендует:  Что такое spa или одностраничный портал

/W – (Wide Display или Width) обеспечивает вывод в уплотненной форме, т. е. пять имен в одной строке, при этом указываются только имена файлов и каталогов;

/A:атрибуты – выводит только те файлы, которые имеют указанные атрибуты. Возможны следующие сокращения для требуемых атрибутов:

A (archive – архивировать);

R (read-only – защищенный от записи);

Поставив перед каталогом знак минус («-«, черточку), можно изменить значение атрибута на противоположное.

обеспечивает вывод списка всех нескрытых файлов.

Двоеточие («:«) перед перечислением требуемых атрибутов можно опускать.

/O:критерий – (Order) обеспечивает упорядочение выводимого на экран списка файлов в соответствии с заданным критерием. Допускаются следующие сокращения для критериев сортировки:

N – в алфавитном порядке имен (Name);

E – в алфавитном порядке расширений (Extension);

T – по времени создания (Time).

Перед сокращением в каждом случае можно ставить знак минус, чем обеспечивается сортировка по противоположному критерию.

Двоеточие («:«) перед перечислением требуемых критериев можно опускать!

/S – вывод на экран списка файлов не только из указанного каталога, но и из всех подчиненных подкаталогов (Subdirectories):

/B – вывод на экран только имен файлов без дополнительной информации. Для каждого файла используется отдельная строка на экране дисплея;

/L – вывод на экран имен осуществляется строчными буквами.

Параметры (ключи) /A:, /O:, /S, /B и /L реализованы только в версии MS DOS 5.00 и выше. В более ранних версиях использовались ключи /P и /W.

На экран дисплея выводится список имен всех файлов, имеющихся в корневом каталоге диска A:.

При этом отображается следующая информация:

– метка тома (имя носителя данных, если оно задано);

– имя файла с расширением и размер файла или имя подкаталога с пометкой ;

– дата и время последнего изменения файла;

– количество файлов в текущем каталоге;

– размер свободного пространства на дискете.

Выводится список всех файлов, находящихся в каталоге D:\TP и имеющих расширение .PAS.

Выводит список всех файлов текущего каталога дисковода B:. В каждой строке экрана помещается информация для пяти файлов в порядке их следования. Размер файлов, дата и время их создания не указываются.

Выводит список всех файлов текущего каталога дисковода A: с указанием: имен файлов, даты их создания, длины файлов в байтах, размера свободного пространства на диске.

После заполнения экрана будет выведено сообщение:

Strike a key when ready

(Нажмите любую клавишу, когда будете готовы)

Для вывода следующей страницы необходимо нажать любую клавишу.

Выводит список файлов корневого каталога (Root) текущего дисковода (за исключением скрытых файлов).

Выводит список всех файлов с расширением .PAS, которые расположены в каталоге, верхнем (родительском) подкаталоге по отношению к текущему.

Выводится список всех скрытых и не защищенных от записи файлов корневого каталога текущего дисковода.

Выводит на экран только те файлы из каталога DOS диска C:, имена которых начинаются с буквы F и содержат не более пяти символов при любых расширениях.

TYPE

Тип команды: внутренняя.

Назначение: просмотр информации, содержащейся в файле, на экране дисплея.

Если disk: или path\ не указаны, то при выполнении команды будет подразумеваться текущий диск или каталог.

1. Внутри имени файла символы маски (* ?) не допускаются. Для определения имени файла используется команда DIR.

2. Команда TYPE обычно используется для вывода на экран содержимого текстового файла.

3. Вывод на экран можно приостановить нажатием Ctrl+S и продолжить их повторным нажатием (либо нажатием какой-либо клавиши).

Выводит на экран дисплея содержимое текстового файла HS.txt, который находится в подкаталоге MD1 диска A:.

Выводит содержимое текстового файла lex.doc, который находится в текущем каталоге и на текущем диске.

TIME

Тип команды: внутренняя.


Назначение: вывод на экран текущего времени и установка нового времени.

Формат использования команды:

hh – часы (24-часовой цикл), число, состоящее из одной или двух цифр (0-23);

mm – минуты, число, состоящее из одной или двух цифр (0-59);

ss – секунды, число, состоящее из одной или двух цифр (0-59);

cc – сотые доли секунды, число, состоящее из одной или двух цифр (0-99);

a|p – при использовании 12-часового формата времени указывает на то, о каком времени идет речь: о дополуденном (A.M.) или послеполуденном (P.M.).

Если параметр P.M. не задается, то MS DOS считает, что речь идет о дополуденном времени A.M.

Правильными разделителями являются двоеточие («:«) и точка («.»). Возможно использование в качестве разделителей только точки («.»). Если пользователь вводит неправильное время или неверные разделители, то система MS DOS повторяет запрос времени. Иногда в некоторых версиях MS DOS для разделения отдельных элементов вместо двоеточия необходимо использовать другие символы, например, черточку.

На экран будет выведено сообщение:

Current time is 8:12:00.64a

(Текущее время 8:12:00.64a)

Enter new time:_

(Введите новое время:_)

Если время изменяться не будет, то необходимо нажать клавишу Enter. Если необходимо ввести новое время, то следует ввести цифрами текущее время, например:

и нажать клавишу Enter.

Если задание времени произведено неверно или задан неправильный разделитель, то выводится сообщение:

(Введите новое время:)

В этом случае будет установлено новое время и на экран дисплея никаких дополнительных сообщений выводиться не будет.

DATE

Тип команды: внутренняя.

Назначение: установка или вывод на экран текущей даты.

Формат использования команды:

mm – число, состоящее из одной или двух цифр 1-12 (обозначающее месяц);

dd – число, состоящее из одной или двух цифр 1-31 (обозначающее день месяца);

yy – число, состоящее из двух цифр 80-99 (обозначающее год 1980-1999, предполагается, что первые две цифры 19) либо число, состоящее из четырех цифр 1980-2099.

Выше представлен американский стандарт формата команды DATE.

Кроме этого, существует европейский ( — — ) и восточноазиатский ( — — ) стандарты.

Вид представления даты определяется установкой кода страны в файле CONFIG.SYS командой COUNTRY, которые в данной работе не рассматриваются.

Разделителями могут служить знаки:

На экране появится сообщение:

Current date is sun 01-26-1994

Enter new date (mm-dd-yy):

(Введите новую дату (mm-dd-yy):)

Если нажать клавишу Enter, то эта дата останется неизменной.

Если же необходимо ввести новую дату, то следует ввести цифрами новую дату, например:

и нажать клавишу Enter.

Если задание времени произведено неверно или задан неправильный разделитель, то выводится сообщение:

Enter new date (mm-dd-yy):

(Введите новую дату (mm-dd-yy):)

В этом случае будет установлена новая дата и на экран дисплея никаких дополнительных сообщений выводиться не будет.

MD (илиMKDIR)

Тип команды: внутренняя.

Назначение: команда MD (Make Directory) создает новый подкаталог в указанном каталоге.

Формат использования команды:

MD [disk:][path\] dirname

dirname – имя создаваемого каталога.

Каталоги используются для того, чтобы разделить жесткий диск или дискету на более мелкие логические области .

Если не указано имя диска disk:, то подразумевается текущий диск.

Если не указан путь path\, каталог создается в текущем каталоге текущего или указанного диска.

В текущем каталоге создается подкаталог TL1.

В корневом каталоге дискеты A: создается подкаталог DOS.

Создает на дискете A: в каталоге DOS подкаталог BATCH.

CD (илиCHDIR)

Тип команды: внутренняя.

Назначение: (Change Directory – сменить каталог) изменяет текущий каталог, отображает на экране дисплея имя текущего (рабочего) каталога.

Формат использования команды:

disk: – определяет дисковод, для которого необходимо изменить или вывести текущую директорию;

path\ – определяет путь, по которому можно достичь того каталога, в который необходимо перейти.

1. Если указан disk:, то путь path\ задается от корневого каталога заданного диска.

2. Если требуемый каталог находится на текущем диске, то путь может быть задан либо от корневого, либо от текущего каталога.

3. При переходе от текущего каталога в подчиненный достаточно указать его имя.

4. Для перехода в каталог предыдущего уровня (ро­ди­тель­ский каталог) используются символы «..» (две точки).

5. Описание пути к нужному каталогу от корневого каталога начинается с символа «\».

Левая косая черта («\»Backslash), расположенная в начале пути, символически воплощает корневой каталог, для которого не существует собственного имени .

6. Если, находясь в главном (корневом) каталоге Root, выполнить команду

появится сообщение об ошибке:

так как для корневого каталога это невозможно.

Осуществляется переход из текущего каталога в подкаталог TL1. Каталог TL1 становится текущим каталогом.

Выводит имя текущего каталога на текущем диске.

Вывод имени текущего каталога на диске F:, который не является текущим.

Переход в каталог, расположенный на 1 уровень выше, т. е. в родительский каталог.

Переход в корневой каталог текущего дисковода (первая косая черта «\» обозначает корневой каталог).

Переход на дисковод A: в корневой каталог (Root), т.е. активным является корневой каталог дисковода A:.

Переход от текущего корневого каталога диска A: через «дочерний» каталог BOOKS к каталогу-«внуку» FICTION, который и становится текущим.

Переход на два каталога «вверх».

RDилиRMDIR

Тип команды: внутренняя.

Назначение: (Remove Directory) уничтожение (удале-ние) каталога.

Формат использования команды:

RD [disk:][path\] dirname,

disk: – имя дисковода, на котором находится удаляемый каталог;

path\ – путь к удаляемому каталогу;

dirname – имя удаляемого каталога.

Внимание! Удалять можно только пустой каталог, т. е. каталог, не содержащий файлов и подкаталогов (Subdirectories).

1. Если на первом месте в обозначении пути поиска стоит обратная (левая) косая черта (Backslash«\»), то удаляемый каталог надо искать, начиная с корневого.

Если этот символ опущен, то MS DOS будет искать удаляемый каталог, начиная с текущего каталога.

Другими словами, первым способом задается “абсолютный» путь, а вторым – «относительный«.

2. Корневой каталог (Root) нельзя удалить командой RD.

3. Нельзя уничтожить текущий каталог!

Из текущего каталога удаляется подкаталог TEST.

Удаляется подкаталог VS из каталога PROGS диска A:.

COPY

Тип команды: внутренняя.

Назначение: копирует один или несколько файлов на другое дисковое устройство и присваивает скопированному файлу другое имя в том случае, когда это имя задано в команде COPY.

Копирует также файлы на одном диске. В этом случае необходимо присваивать файлам-копиям другие имена, если файлы находятся в одной директории.

При выполнении команды COPY может быть выполнена конкатенация (объединение) файлов.

Команда COPY позволяет также осуществлять передачу данных между любыми системными устройствами.

Форматы использования команды:

COPY pathname1 [switches] [pathname2] [switches]

pathname1 – задает источник копирования: имя файла (или файлов – при этом допускается использование шаблона) или имя каталога, если необходимо скопировать все файлы каталога;

pathname2 – задает назначение копирования (цель). Если pathname2 не задано, то файлы копируются в текущий каталог с сохранением имени.

Если pathname2 – имя каталога, то файлы копируются в указанный каталог также с сохранением имен.

Если pathname2 – имя файла, то источник копируется в файл с указанным именем.

switches – ключи, допускаемые при выполнении команды COPY:

/A –файл обрабатывается как текстовой в кодах ASCII;

/B – файл обрабатывается как двоичный файл;

/V – (Verify – проверить) проверяет, правильно ли записаны данные в целевой файл (назначение).

При копировании допускается использование логических устройств, например, CON – консоль (клавиатура – при вводе, дисплей – при выводе), PRN – принтер (только как выходной файл).

Использование этих устройств будет рассмотрено в последующем материале.

Формат использования команды COPY для конкатенации файлов имеет следующий вид:

COPY pathname1[+pathname2+. ] [pathname]

Источник представляет собой перечень файлов, соединенных знаком «+» (плюс), при этом допускается использование шаблона.

Не следует использовать имена файлов источника (кроме первого имени) в качестве имени файла назначения: это приведет к потере информации.

Если файл назначения не указан, то его имя совпадет с именем первого файла источника.

Примечания к операциям копирования с указанием входных и выходных спецификаций файлов.

1. В команде сначала указывается входная спецификация, затем – выходная.

2. Если не указано имя диска, подразумевается текущий диск (это относится как к диску-источнику, так и к диску-приемнику).

3. Если не указан путь, подразумевается текущий каталог (как на диске-источнике, так и на диске-приемнике).

4. Во входной спецификации допустимо использование шаблонов групповых операций. Если во входной спецификации указан путь, но опущено имя файла вместе с расширением, подразумевается спецификация *.*.

5. В качестве входной или выходной спецификаций допустимо использовать имена устройств.

6. Если в выходной спецификации отсутствует имя файла, выходные файлы принимают имена входных.

7. При копировании с диска на диск файлы рассматриваются как двоичные (т. е. по умолчанию действует ключ /B).

8. При копировании с или на устройство файлы рассматриваются как текстовые (т. е. по умолчанию действует ключ /A).

Примечания к операциям копирования с указанием одной спецификации.

1. Указывается входная спецификация.

2. Выходной спецификацией считается текущий диск или текущий каталог; копируемым файлам даются имена входных.

3. Во входной спецификации либо диск, либо путь, либо то и другое должны отличаться от текущих (файл нельзя копировать «на себя»).

4. Выходная спецификация не может описывать устройство.

5. Копируемые файлы рассматриваются как двоичные (т. е. по умолчанию действует ключ /B).

Примечания к операциям объединения.

1. Символ «,,» (две запятые), вводимый после знака «+», указывает MS DOS, что список входных файлов исчерпан.

2. Объединяемые файлы считаются текстовыми. При объединении двоичных файлов необходимо указывать ключ /B.

COPY TS1.PAS TS2.PAS /V

В текущем каталоге создается копия файла под другим именем (с целью, например, последующей модификации). Копирование сопровождается проверкой правильности записи (ключ /V).

Файл LIB.txt из текущего каталога диска F: копируется на дискету, не имеющую древовидного каталога, либо в текущий каталог дискеты A:.

Файл с дисковода A: копируется на дисковод B: под тем же именем. На компьютере с одним дисководом DOS перед копированием запросит установку дискеты для копии.

F:>COPY \DOSDOC\BOOK\ch1.txt \WORDS\ch2.doc

Копирование файла ch1.txt из каталога \DOSDOC\BOOK в каталог \WORDS с изменением имени на ch2.doc. Оба каталога находятся на текущем диске F:.

Копирование всех файлов с расширением C из текущего каталога диска F: в текущий каталог диска A: под тем же именем.

Копирование всех файлов из текущего каталога диска A: в текущий каталог текущего диска F: под теми же именами.

Входной файл VP.PAS копируется «сам в себя» с изменением даты и времени создания на текущие.

Файл DTA.C копируется в текущий каталог текущего диска. Имя файла назначения (целевого файла) не задано, поэтому в текущем каталоге создается копия этого файла под тем же именем. Если активным будет дисковод A:, будет выдано сообщение:

File cannot be copied onto itself

(Файл не может быть скопирован сам на себя).

Копируются данные, которые вводятся через клавиатуру в файл h1.bat. После ввода этой команды можно набирать текст через клавиатуру. Чтобы записать этот файл в память, необходимо нажать клавишу F6 или одновременно клавиши Ctrl+Z, а вслед за этим – Enter. При этом на экране дисплея появляются символы ^Z, и этот файл записывается на дискету или жесткий диск.

Илон Маск рекомендует:  Обработка исключений

С помощью этой команды текст, набираемый на клавиатуре, будет печататься на принтере, т. е. компьютер превращается в пишущую машинку! После набора текста и нажатия клавиш Ctrl+Z, а затем Enter, весь текст будет отпечатан на принтере.

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Увлечёшься девушкой-вырастут хвосты, займёшься учебой-вырастут рога 9790 — | 7665 — или читать все.

188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Удаление файлов из командной строки MS-DOS

Команда del имеет следующие параметры: del ,

Удалите файл соруfile.dос.

1. Используйте команду del соруfile.dос или
del Z:\STUDN\АВС\DEF\соруfile.dос.

2. Используя команду dir, проверьте, действительно ли Вы удалили файл.

Работа с группами файлов из командной строки MS-DOS

Маски файлов в MS-DOS используются для одновременной работы с несколькими файлами. Маска файла — это шаблон, по которому файлы объединяются в группу. Маски файлов могут быть использованы в команде, работающей с файлами, на месте . Символ * заменяет любое количество символов, причём любых. Например, маска *.* означает «все файлы», и может быть интерпретирована, как «любое имя и любое расширение». Маска *.txt означает «файлы с расширением txt». Маска а*.* означает «файлы, начинающиеся с буквы а».

Используя маски файлов, скопируйте одной командой все файлы из папки ТЕХТ в папку FGH. Переименуйте скопированные файлы в файлы с тем же именем, но c расширением .old. Создайте файл all.txt, состоящий из файлов text1.old, text2.old, text3.old. Удалите все файлы, имеющие расширение .old.

1. Используйте команду

сору Z:\STUDN\ТЕХТ\*.* , Z:\STUDN\CDE\FGH.

2. Используя команду dir, проверьте, был ли скопирован файл.

3. Перейдите в папку FGH, затем используйте команду ren *.* *.old.

4. Используйте команду сору tехt1.оld+tехt2.оld+tехt3.оld all.txt

5. Используйте команду del*.old.

6. Используя команду dir, проверьте, какие файлы Вы удалили.

Удаление каталога из командной строки MS-DOS

Команда rd имеет следующие параметры:

rd , (rd – от английского «remove directory»).

Удалите папку ТЕХТ.

1. Так как команда rd удаляет только пустые каталоги, мы предварительно должны удалить все файлы из каталога ТЕХТ. Для этого используйте команду del *.*, находясь в каталоге ТЕХТ.

Внимание: если при использовании команды del, появляется сообщение: «. Аге уои surе? (Y/N)» или «Будут удалены все файлы в папке! Продолжить [Y(да)/N(нет)]?», то для подтверждения удаления наберите Y, а для отмены удаления наберите N.

Затем, так как команда rd не удаляет текущую папку, мы должны выйти
из папки. Для этого используйте команду cd.., и лишь затем команду
rd ТЕХТ.

Используя команду dir, проверьте, была ли удалена папка ТЕХТ.

1. Как создать файл?

2. Как скопировать файл?

3. Как создать файл, состоящий из текстов нескольких заданных файлов?

4. Как просмотреть содержимое файла?

5. Как скопировать файл и дать при этом ему другое имя?

6. Как скопировать одной командой группу файлов (с одним расширением,
начинающихся с одной буквы или все файлы)?

7. Как переименовать файл?

8. Как удалить файл, группу файлов?

9. Как удалить каталог, содержащий файлы?

Лабораторная работа №4

«Выполнение команд MS-DOS в совокупности»

Цель работы: Обобщение и закрепление полученных знаний, оценка

Форма отчёта: Письменный отчёт по выполнению зачётного задания. В отчёте указывайте пункт задания и обязательно строку приглашения MS-DOS.

Постоянно контролируйте себя командой dir.

Вариант №1

1. Перейдите на свой рабочий диск.

2. Создайте структуру, покачанную на рис.1. В названии папки STUDN: N – Ваш номер в списке группы.

3. В папке МYТЕХТ создайте файл и запишите туда любой текст (не менее
3-х строчек).

4. В папке MYINF создайте файл fio.txt и запишите в него свои фамилию,
имя и отчество. Если Вы за компьютером не один (одна), то пусть Ваш
напарник создаст свой файл с именем fio1.txt и, следующий – fio2.txt и т д.
по необходимости.

5. В этой же папке создайте файл date.txt и запишите туда дату своего
рождения.

6. Скопируйте все файлы из папки МYINF в папку OLD с тем же именем,
но расширением old.

7. Выведите эти файлы на экран.

8. Перейдите на другой диск (желательно на С).

9. С помощью команд cd и dir найдите папку, в которой есть текстовые
файлы.

10. Скопируйте (одной командой) все текстовые файлы из этой папки в
папку АВС.

11. Переименуйте все файлы папки ABC в файлы с тем же именем, но расширением abc.

12.Удалите файл date.old из папки OLD.

13. Удалите папку OLD.

14. Выйдите в корневую папку одной командой.

Вариант №2

1. Перейдите на свой рабочий диск.

2. Создайте структуру, покачанную на рис.2. В названии папки STUDN: N – Ваш номер в списке группы.

3. В папке FIRST создайте файл и запишите туда любой текст (не менее 3-х строчек).

4. В папке SECOND создайте файл data.txt и запишите в него свои фамилию, имя и отчество. Если Вы за компьютером не один (одна), то пусть Ваш напарник создаст свой файл с именем data1.txt и, следующий – data2.txt и т д. по необходимости.

5. В этой же папке создайте файл dateborn.txt и запишите туда дату своего рождения.

6. Скопируйте все файлы из папки SECOND в папку OLD с тем же именем, но расширением old.

7. Выведите эти файлы на экран.

8. Перейдите на другой диск (желательно на С).

9. С помощью команд cd и dir найдите папку, в которой есть
файлы с расширением .exe.

10. Скопируйте (одной командой) все файлы с расширением .exe из этой папки в папку DEF.

11. Переименуйте все файлы папки DEF в файлы с тем же именем, но расширением .def.

12.Удалите файл date.old из папки OLD.

13. Удалите папку OLD.

14. Выйдите в корневую папку одной командой.

1. Йорг Шиб. MS_DOS 6.22: Пер. с нем.–М.: БИНОМ, 1995.

2. Брябрин В.Л. Программное обеспечение персональных ЭВМ, М.: Наука,
1989.

3. И. Синклейр. MS_DOS. Серия «Проще простого». Ростов-на-Дону
«Феникс», 1996. – 160с.

4. Фигурнов В.Э. IВМ РС для пользователя. – 1994,1995,1996.

Адрес университета и полиграфического предприятия:

344010, г.Ростов-на-Дону, пл.Гагарина,1.

Дата добавления: 2015-11-23 ; просмотров: 2614 | Нарушение авторских прав

MS-DOS

Операционные системы MS-DOS, Windows 95, Windows 98 и старое железо компьютера — установка, настройка, использование.

Основные команды MS-DOS . Часть 2.

Команды MS-DOS — минимальный список.

Команды MS-DOS легко запоминаются в случае, если вы владеете хорошо (на школьном уровне) английским языком. Чаще всего команда — это сокращенная фраза.

Эта чистая как снег команда format c: …

Рассмотрим минимальный список команд, которые нам могут понадобиться для работе в DOS. Мы их будем использовать для установки операционных систем на базе DOS или поиска и запуска установленного файлового менеджера.

Команды MS-DOS общесистемного назначения.

При запуске MS-DOS вы увидите приглашение работы в командной строке. По умолчанию оно будет обозначать корневой каталог диска с установленной операционкой. Допустим, операционная система установлена на диск C: , приглашение будет выглядеть:

C:\>

Сменить текущий диск можно набрав новое имя дисковода.

Примеры:
d: — устанавливает текущий диск D:\>
a: — устанавливает текущий диск A:\>

prompt

Изменить вид приглашения (prompt — англ. напоминание, подсказка).

Формат команды:
prompt [текст]

Специальные сочетания символов:
$p — текущий дисковод и каталог;
$n — текущий дисковод;
$d — текущая дата;
$t — текущее время;
$v — версия DOS;
$_ — переход на новую строку;
$s — пробел;
$g — символ «>»;
$h — удаление предыдущего символа.

Примеры:
prompt $p$g — устанавливает приглашение вида c:\mydir\doc>;
prompt $t$h$h$h$h$h$h$g — устанавливает приглашение вида 15:35>

Вывести на экран версию DOS (version — англ. версия).

Формат команды:
ver

Пример:
ver — на экран выводится версия используемой операционной системы. Например: MS-DOS Version 6.22

Команды MS-DOS для работы с каталогами.

Отобразить список файлов и подкаталогов для указанного каталога (directory — англ. директория, каталог)

Формат команды:
dir [дисковод:][путь\][имя-файла] [параметры]

Параметры:
/p — поэкранный вывод;
/w — вывод в широком формате;
/s — оглавление указанного в команде каталога и всех его подкаталогов;
/b — только имена файлов без заголовочных и итоговых сведений;

Сортировки:
/on — по имени;
/oe — по расширению;
/od — по времени;
/og — сначала выводить сведения о подкаталогах;

Примеры:
dir — оглавление текущего каталога
dir *.exe — сведения обо всех файлах .exe текущего каталога

Вывод оглавления в файл или на принтер:
dir > prn — вывести оглавление текущего каталога на принтер;
dir c:\*.txt > txtfiles.txt — создать в файле txtfiles.txt список всех файлов с расширением .txt, находящихся в корневом каталоге диска c:

Изменить текущую рабочую директорию (change directory — англ. изменить каталог, директорию).

Формат команды:
cd [дисковод:][путь]

Примеры:
cd \ — переход в корневой каталог текущего диска;
cd \exe — переход в каталог exe в корневом каталоге;
cd .. — переход в наддиректорию;
cd — сообщает текущий диск и каталог

Создать директорию (make directory — англ. создать каталог, директорию).

Формат команды:
md [дисковод:][путь\]имя-каталога

Примеры:
md abc — создать каталог abc в текущем каталоге;
md c:\users\my — создать каталог my в каталоге users в корневом каталоге диска c:

Переместить файлы в другой каталог. Переименовать директорию (move — англ. переместить).

Формат команды:
move [/y] имя-файла имя-каталога
move [/y] имя-файла [дисковод:][путь]новое-имя-файла

С параметром /y при существовании в каталоге-приемнике файлов с теми же именами, что и пересылаемые, выполняется замещение этих файлов без запроса. Задание нового имени возможно только при пересылке одного файла. Например, команда move *.bac a:\*.old ошибочна.

Примеры:
move *.doc d:\ — переместить файлы с расширением doc из текущего каталога в корневой каталог диска d:;
move f1.txt tmp\f2.txt — переместить файл f1.txt в каталог tmp с переименованием в f2.txt.

Формат команды:
move [дисковод:][путь\]имя-каталога новое-имя-каталога

Примеры:
move a:\temp tmp — переименовать каталог temp корневого каталога диска а: в tmp.

deltree

Удалить каталог со всем содержимым (delete tree — англ. удалить дерево (файлов или директорий)).

Формат команды:
deltree [/y] имя-файла-или-каталога

Команда deltree может удалять как каталоги, так и файлы. В имени файла-или-каталога можно использовать символы * и ?.

Примеры:
deltree temp — удалить каталог или файл с именем temp из текущего каталога;
deltree /y d* — удалить из текущего каталога все каталоги и файлы, имя которых начинается на d, не запрашивая подтверждение.

Команды MS-DOS для работы с файлами.

Вывести (напечатать) содержимое файла на экран (type — англ. напечатать).

Формат команды:
type имя-файла

Примеры:
type t1.doc — вывод на экран файла type t1.doc из текущего каталога.

copy con

Создать текстовый файл (copy console- англ. скопировать консоль (то, что набираем клавиатурой на экране) в файл).

Формат команды:
copy con имя-файла

Ctrl+Z, F6 — признак конца файла.
Enter — признак конца строки.

Примеры:
copy con work.txt — создать в текущем каталоге текстовый файл work.txt.

Копировать файл (copy — англ. скопировать).

Формат команды:
copy имя-файла1 имя-файла2
copy имя файла1 [имя-каталога2]

В именах файлов можно употреблять символы * и ?, а также указывать имя диска и путь.
Команда copy не копирует скрытые файлы и файлы нулевой длины.
Если файл с таким же именем, как у копии, создаваемой командой уже существует, то он замещается.

Примеры:
copy x.txt z.txt — скопировать файл x.txt в текущий каталог с именем z.txt;
copy a:\*.* — cкопировать все файлы из корневого каталога диска а: в текущий каталог текущего диска;
copy \text\*.txt a:*.doc — скопировать из подкаталога text текущего каталога все файлы с расширением txt в текущий каталог диска а:. Файлы получат расширения doc.

Использование устройств:
copy t1.txt prn — копирование файла t1.txt на принтер;
copy t1.txt con — копирование файла t1.txt на экран монитора

Удалить файл (delete- англ. удалить).

Формат команды:
del имя-файла

Примеры:
del *.txt — удалить все файлы с расширением .txt из текущего каталога;
del name.doc — удалить из текущего каталога файл с именем name.doc

Переименовать файл (rename- англ. переименовать).

Формат команды:
ren имя-файла1 имя-файла2

В параметре имя-файла1 можно указывать дисковод и путь, в имя-файла2 — нет.
Команда ren не обрабатывает скрытые файлы.

Примеры:
ren xxx.doc xxx.txt — переименовать файл xxx.doc текущего каталога в xxx.txt;
ren a:*.txt *.doc — переименовать все файлы текущего каталога на диске а: с расширением .txt в файлы с такими же именами и расширениями .doс

Команды MS-DOS для работы с дисками.

format

Форматировать диск (format— англ. форматировать).

Формат команды:
format дисковод: [параметры]

Параметры:
/s — создать системный диск;
/v:метка — задание метки диска;
/u — безусловное форматирование с уничтожением имеющихся данных;
/q — быстрая очистка без контроля наличия сбойных участков.

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

Примеры:
format a: /u — безусловное форматирование дискеты а:;
format a: /q — очистка дискеты;
format a: /s — форматировать дискету и сделать ее системной.

Перенести на диск системные файлы DOS (system- англ. система).

Формат команды:
sys [путь] диск:

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

Примеры:
sys a: — перенести на диск а: системные файлы из корневого каталога текущего диска.

fdisk

Сконфигурировать жесткий диск для использования DOS. Работает в интерактивном режиме. (disk— англ. диск). Работает в интерактивном режиме (вопрос-ответ).

  • создание основного раздела MS-DOS;
  • создание расширенного раздела MS-DOS;
  • установка активного раздела;
  • удаление раздела;
  • вывод данных раздела;
  • выбор следующего жесткого диска для создания разделов (если система имеет несколько жестких дисков).

Формат команды:
fdisk [параметры]

Параметры:
/? или /H — вывести справочный текст.
/d — позволяет удалять разделы, отличные от DOS. Его следует использовать с осторожностью.
/ststus — вывести обзорную информацию о разделах жесткого диска (дисков) вашего компьютера. Если /ststus не обеспечивает достаточно подробной информации о диске, то запустите программу fdisk без параметра /ststus и выберите пункт 4.

Примеры:
fdisk — начать работу с дисками в интерактивном режиме.

label

Задать метку диска, тома (label— англ. метка, этикетка).

Формат команды:
label дисковод:

Метка — обозначение длиной до 11 символов.
Недопустимые символы: * ? / \ | . , ; : + = [ ] ( ) & ^ » .
Чтобы узнать метку диска, можно использовать команду vol. (vol дисковод:)

Примеры:
label a: — сообщить меткe диска а:.

В третьей части цикла статей об основных командах MS-DOS мы рассмотрим применение наших знаний на практике при установке операционной системы на старое железо.

Комментировать Отменить

Для отправки комментария вам необходимо авторизоваться.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL