Розробка програми для видалення файлів з диска А з параметрами
Контролер. На даний момент все floppy — дисководи підтримують спеціально призначений інтерфейс який інтегрований в материнську плату. Нову, чисту дискету необхідно спочатку відформатувати (як правило дискети продаються що вже відформатували). Що це означає? При форматуванні на диск записується інформація для операційної системи. Проводитися як високорівневе, таке низькорівневе форматування. Диск… Читати ще >
Розробка програми для видалення файлів з диска А з параметрами (реферат, курсова, диплом, контрольна)
Міністерство освіти і науки України Східноукраїнський національний університет ім. В. Даля Спеціальність: «Обслуговування комп’ютерних систем і мереж»
КУРСОВИЙ ПРОЕКТ Тема: РОЗРОБКА ПРОГРАМИ ДЛЯ ВИДАЛЕННЯ ФАЙЛІВ З ДИСКА, А З ПАРАМЕТРАМИ По дисципліні «Системне програмування «
ЗМІСТ Введення
1. Загальний розділ
1.1 Різновиди дискет
1.2 Нутрощі дисковода
2. Опис програмної моделі
3. Розробка і реалізація програмного забезпечення
3.1 Опис програми
3.2 Абсолютні операції дискового введення-виводу
3.3 Скидання диска. шіст D
3.4 Пошук елементів змісту: шіст 11 і 12
3.5 Видалення файлу: шіст. 17
3.6 Перейменування файлу: шіст. 17
3.7 Отримання поточного номеру дисковода: шіст. 19
3.8 Інструкція користувачеві
4 Відладка і випробування розробленого програмного забезпечення Висновок Література Додаток
ВВЕДЕННЯ Мова асемблера з’явилася разом з появою процесорів і є тісно пов’язаний з їх архітектурою, дозволяючи напряму звертатися до апаратних ресурсів комп’ютера. Часто у програмістів виникає питання: а навіщо взагалі потрібно вивчати мову асемблера, коли є розвинуті засоби програмування на мовах високого рівня, такі, наприклад, як Visual C++ .NET фірми Microsoft або Borland Delphi 2005? Тим більше що крім цих засобів є ще цілий спектр спеціалізованих програмних продуктів для розробки офісних додатків, баз даних електронних таблиць і т.д. Подібні програми називаються засобами швидкої розробки і дозволяють в лічені тижні створювати найскладніші додатки. Проте, значення мови асемблера важко переоцінити. Все без виключення засобу розробки програм в тому або іншому ступені використовують асемблер. Наприклад, більшість бібліотечних функцій мови C++ і Pascal, на основі яких побудовані такі могутні інструменти розробки, як Visual C++ і Delphi, є написаний на асемблері. Мультимедійні додатки, програми обробки сигналів і інші багато кого використовують високопродуктивні бібліотеки функцій, розроблені за допомогою асемблерних команд технології SIMD.
Нарешті, якщо вимагається, щоб додаток працював максимально швидко і займав менше пам’яті (а це потрібно для вбудованих і мобільних систем в різних галузях промисловості), то застосування асемблера є навряд чи не єдиним способом досягнення мети. З цієї причини більшість додатків, що працюють в режимі реального часу, є або написаний цілком на асемблері, або використовує в критичних ділянках коду асемблерний код. Навіть по цих декількох прикладах видно, що мова асемблера має свої сфери застосування, свої ніші, які ніколи і нічим не буде зайнятий. Крім того, як вже наголошувалося, при розробці додатків на мовах високого рівня критичні секції, що вимагають високої швидкості виконання, пишуться на асемблері. Саме тому в Visual C++ .NET і Delphi 2005 є можливість створювати програмний код на вбудованому асемблері. Необхідно помітити що фірма Microsoft постійно удосконалює вбудований асемблер. Навряд чи комусь прийде в голову розробляти великі і багатофункціональні додатки на мові асемблера, але прискорити продуктивність роботи таких додатків з допомогою асемблера можна. В порівнянні з мовами високого рівня асемблер володіє однією фундаментальною перевагою, що виникає з його природи — він дозволяє писати самий швидкий і компактний код.
Вивчення мови асемблера дає програмісту одну дуже важливу перевагу — він глибше починає розуміти принципи роботи додатків, написаних на будь-яких мовах, у тому числі і на мовах високого рівня. Асемблер дуже допомагає при розробці програм на мовах високого рівня, оскільки знання низькорівневого програмування дозволяє вибирати оптимальні рішення. Що ж до інструментальних засобів для розробки додатків на «чистому» асемблері то останнім часом з’явилися дуже могутні додатки такого роду, що вимушує по-іншому поглянути на проблему. З таких інструментальних засобів проектування можна виділити в першу чергу макроасемблер 32, а також AsmStudio і NASM, TASM. Ці і інші інструменти розробки програм мають найсучасніший графічний інтерфейс. Не слід забувати і про те, для асемблера розроблені численні бібліотеки функцій, що наближає цю мову по своїх функціональних можливостях до високорівневих засобів розробки додатків. Даний курсовий проект демонструє переваги асемблера при роботі резидентної програми русифікатори клавіатури і дисплея.
1. ЗАГАЛЬНИЙ РОЗДІЛ
1.1 Різновиди дискет Розробила дискету група інженерів IBM під керівництвом Алана Шугарта. До речі, ця людина — особа в світі інфотехнологій помітна. Алан Шугарт працював в IBM. Потім, в 1969 році, створив власну компанію Shugart Laboratories, де також займався розробкою нових стандартів floppy — дисків. Зокрема, саме Shugart Laboratories була представлена 5,25 дюймова дискета. А в 1979 році А. Шугарт став одним із засновників Seagate Technology. Слід зазначити, що стандарт інтерфейсу SCSI спочатку мав назву SASI (Shugart Associates System Interface), звідки видно, що ця гідна людина приклала і тут свою руку, а точніше голову. Але повернемося до далекого 1971 року. Саме цього року вперше дискета з’явилася на світло. Стандартів, що визначають розміри дисків, розроблена була велика кількість. Але врешті-решт перемогу отримали 8 дюймових дискет. Саме вони і були прийняті за загальний стандарт. Самі диски виготовлялися з тонкого пластика, покривалися оксидом заліза, а потім упаковувалися в пластикових або твердопапірні пакети — корпуси. Вся конструкція була досить «рідкою» (звідси і назва floppy — гнучкий).
За типом 8 дюймових дискет ділилися на односторонніх і двосторонніх. Були ще і такі двосторонні дискети, які дозволяли працювати на дисководах, призначених для односторонніх дискет. Об'єм дискет був від 400 Kb до 1,6 Mb, залежно від типу. Для порівняння: 8 дюймова дискета за об'ємом зберігання даних замінювала приблизно 12 000 перфокарт або близько 300 метрів перфострічки. При цьому допускався ще і перезапис. На ті часи це була революція. Але в 1976 році на зміну 8 дюймовим floppy — дискам пришли 5,25 дюймових. Переваги нової технології були очевидні. Корпус став жорсткішим, усередині він був обклеєний спеціальним матеріалом, який оберігав диск від надмірного зносу. Перші 5,25 floppy — диски були односторонніми і вміщали до 160 Kb. Потім з’явилися 180, 360, 720 кілобайтних і 1,2 мегабайтні дискети. Через 5 років, а саме в 1981 році, завилися 3,5 дюймових дискет. їх корпус став ще жорсткішим. На відміну від 5,25 дюймових дискет, в 3,5 дюймових диск захищений спеціальною підпружиненою шторкою. Існує декілька типів 3,5 дюймових floppy — дисків: SS (Single Sided — односторонні), DS (Double Sided — двосторонні), DD (Double Density — подвійній щільності), HD (High Density — високій щільності), EHD (Extra High Density — понад високу щільність). В даний момент застосовуються в основному тільки дискети типу HD. Але на цьому життя не зупинилося. У 1983 році були розроблені 4 дюймові floppy — диски. Але вони великого поширення серед користувачів не набули.
1.2 Нутрощі дисковода дисковод резидентний русифікатор клавіатура
1.Привід диска. Швидкість обертання диска 3,5 дюймового floppy — диска складає 300 об/мин. Використовується система прямого приводу. Такий тип приводу не вимагає настройки швидкості обертання.
2.Привід головок. Використовується кроковий механічний двигун, який пересуває головки над диском. Цей двигун повертається на точно заданий кут і здійснює переміщення головок в двох напрямах з певним приростом. Кожен крок визначає доріжку на диску.
3.Головки читання/запису. На даний момент всі дисководи використовують дві головки читання/запису і знаходяться вони з двох сторін диска. Головки вмонтовуються на одному утримувачі і відповідно не можуть рухатися щодо один одного. Метод запису на диск називається тунельним стиранням. Під час запису головки стежать за тим, що б дані писалися тільки в межах заданої доріжки. Для цього застосовується вирівнювання доріжок, що запобігає можливості «з'їзду» убік. Спочатку пишеться доріжка певної ширини, а потім краї цих доріжок підтираються. Це запобігає впливу на сусідні доріжки. Ширина доріжки 3,5 дюймової дискети об'ємом 1,44 Mb рівна 0,115 мм.
4. Логічні плати управління. Як правило застосовується одна плата на якій розташовані схеми управління приводом обертання диска, приводом головок і так далі.
5.Контролер. На даний момент все floppy — дисководи підтримують спеціально призначений інтерфейс який інтегрований в материнську плату. Нову, чисту дискету необхідно спочатку відформатувати (як правило дискети продаються що вже відформатували). Що це означає? При форматуванні на диск записується інформація для операційної системи. Проводитися як високорівневе, таке низькорівневе форматування. Диск розбивається на сектори. Для операційної системи резервується доріжка, яка знаходиться на зовнішній межі диска. У першому секторі цієї доріжки знаходиться DBR (DOS Boot Record — завантажувальний запис DOS) або BS (Boot Sector — завантажувальний сектор). Потім йде FAT (у дискетах застосовується FAT 12) і DR (Directory Root — кореневий каталог). Якщо використовується FAT, означає є і кластери. Залежно від типу дискети кластер займає розмір одного або двох секторів. Тепер про циліндри. Цей термін є синонімом доріжки. Циліндр — це загальна кількість доріжок, дані з яких можна прочитати без переміщення головок читання/запису. Але оскільки головки дві, означає циліндр рівний двом доріжкам.
Щільність запису — це кількість даних, яка можна надійно і без втрат розмістити на певній площі записуваної поверхні. Розділяють два типи щільності: радіальну і лінійну. Радіальна щільність показує, скільки доріжок може бути записане на диск. Лінійна щільність показує, яка кількість даних, доріжка здатна накопичити.
Магнітний шар. Floppy — диски характеризуються товщиною магнітного шару. Чим шар тонший, тим менше одна область із записаними даними впливатиме на іншу. У зв’язку з цим, диски з тоншим шаром зможуть накопичити без втрат даних більше, ніж диски з товщим шаром.
У дискеті є перемичка зміни дискети. У інтерфейсному кабелі floppy — дисковода 34 контакт використовується для передачі сигналу DC (Diskette Changeline — зміна дискети). Цей сигнал змінює регістр полягання в контроллері і з його допомогою комп’ютер дізнається, вставлена дискета в дисковод чи ні. Якщо раптом Ви побачите, після того, як витягнули дискету, каталоги — примари (тобто те, що було на ній записано) на диску А, те знайте — всі дані на наступних дискетах можуть бути перезаписані. А відбувається подібне унаслідок виходу датчика зняття диска з ладу.
Ну і як же все це працює? Ви вставляєте дискету в дисковод. Відбувається зміна регістра в контроллері дисковода і комп’ютер отримує інформацію про те, що дискета вставлена. Потім привід розкручує диск, контроллер посилає кроковий сигнал і головки переміщаються для читання або запису. Запис відбувається під впливом магнітного поля. Все просто. До речі, робота файлової системи дискет дуже схожа з роботою файлової системи жорстких дисків FAT. Поговоримо про 3,5 дюймових дискет типу HD, як про найпоширеніших на день сьогоднішній. Гнучкий диск знаходиться усередині міцного пластикового корпусу, який на відміну від інших типів дискет, має скіс з одного боку, що запобігає неправильній установці її в дисковод. Ці floppy — диски записують 80 циліндрів і 160 доріжок, відповідно. Кожна доріжка має 18 секторів. Швидкість передачі даних рівна 500 000 бит/сек. Швидкість обертання диска — 300 об/мин. Щільність доріжок рівна 135 ТРІ (Track Per Inch — кількість доріжок на дюйм), а лінійна щільність рівна 17 434 ВРІ (Bits Per Inch — бітів на дюйм). Тепер поговоримо про коэрцитивну силу. Це напруженість магнітного поля, необхідне для правильного запису даних на диск. Для 3,5 дюймових дискет типу HD вона рівна 720 Э (ерстед). Товщина магнітного шару — 40 мікро дюймів. Полярність запису — горизонтальна. Деякі правила користування дискетами. По-перше, не тримаєте дискети поряд з джерелами магнітного поля. Інакше, через деякий час (залежно від інтенсивності поля) Вам доведеться розпрощатися з даними, записаними на них. По-друге, дискети, як будь-який інший пластик, не люблять перегріву, так що не тримаєте їх на сонці або на батареї опалювання. По-третє, не відкривайте без необхідності запобіжну шторку, адже вона призначена не для того, що б нею клацали. Магнітний диск повинен бути чистим. По-четверте, не гніть корпус дискети, а для перенесення floppy — дисків в сумці використовуйте спеціальні коробки.
Тепер про самі дисководи. Найпоширенішою проблемою є забруднення головок читання/запису. Почистити їх можна двома способами:
1. Можна купити спеціальний набір для чищення головок. Цей метод можна порадити людям, далеким від техніки.
2. Можна розібрати дисковод і почистити уручну. Краще для цього використовувати ватяні тампони змочені в спирті (не у якому випадку не застосовуйте для протирання розчинники). Цим способом очищення буде якіснішим, хоча і зажадає більшого часу.
2. ОПИС ПРОГРАМНОЇ МОДЕЛІ
Програма, використовуюча INT 21Н в базовій версії DOS для операцій введення-виводу на диск, повинна містити блок управління файлом (FCB) для кожного доступного файлу.
Один блок містить 128 записів. Номер поточного блоку і номер поточного запису в FCB указують на дисковий запис, який повинен бути оброблена.
В зворотній послідовності байт в FCB записуються наступні елементи: номер поточного блоку, розмір запису, розмір файлу і відносний номер запису.
Всі програми, оброблювальні один і той же файл, повинні мати однаково описаний блок FCB.
Область введення-виводу (DTA) визначається адресою пам’яті, куди винна бути поміщений запис при читанні або звідки вона заноситься на диск. Перш, ніж виконати операцію запису або читання, в програмі необхідно встановити кожну область DTA.
Операція відкриття файлу встановлює в блоці FCB значення для наступних елементів: ім'я файлу, тип файлу, розмір запису (шіст.80), розмір файлу і дата. Програма повинна замінити розмір записів на правильне значення.
Програма, що використовує для запису файлу операцію DOS INT 21Н повинна закрити файл в кінці обробки для того, щоб помістити на диск записи (якщо такі є), що все залишилися в буфері, і скоректувати відповідний елемент змісту.
При використанні для читання і запису операції DOS INT 21Н система автоматично змінює поточний номер запису в FCB.
Операція читання по перериванню DOS INT 21Н перевіряє наявність необхідного запису спочатку в буфері і за відсутності виконує читання з диска.
Прямий метод доступу вимагає вказівкі номера запису в полі відносного номера запису блоку FCB.
Вісім байт (подвійне слово) відносного номера запису кодується в зворотній послідовності байт.
Якщо необхідний запис при прямому доступі вже знаходиться в буфері, то система передає її в безпосередньо в DTA. Інакше виконується читання з диска в буфер всього сектора що містить необхідний запис.
Операції прямого блокового читання і запису ефективніші за наявності достатньої пам’яті. Ці операції особливо зручні для завантаження таблиць.
Команди DOS INT 25H і 26H здійснюють дискові операції абсолютного читання і запису, але не підтримують обробку змісту, не визначають кінець файлу і не забезпечують блокування і деблокування записів.
3. РОЗРОБКА І РЕАЛІЗАЦІЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
3.1 Опис програми На початку даного розділу розглядаються функції базової версії DOS визначальні блок управління файлом (FCB), а потім будуть показані можливості створення і обробки дискових файлів послідовним і прямим доступом. Всі дані операції були введені в перших версіях DOS і можливі у всіх подальших версіях.
Обробка дискових файлів в базовій DOS включає визначення блоку управління файлом (FCB — file control block), який описує файл і його записи. Передача адреси блоку FCB в DOS обов’язкова для всіх дискових операцій введення-виводу. Нових команд асемблера в даному розділі не буде потрібно.
Управління введенням і виводом здійснюється спеціальними перериваннями. Запис файлу на диск вимагає, щоб раніше він був «створений» і DOS змогла згенерувати відповідний елемент в змісті. Коли всі записи файлу будуть записані, програма повинна «закрити» файл, так, щоб DOS завершила обробку змісту. Читання файлу вимагає, щоб він був спочатку «відкритий» для того, щоб переконатися в його існуванні. Оскільки записи мають фіксовану довжину і через відповідну організацію змісту обробка записів дискового файлу може здійснюватися як послідовно, так і довільно.
Метод доступу до дискової пам’яті, що підтримує використання зміст, «блокування» і «розблокування» записів, забезпечується перериванням DOS 21Н. Нижчий рівень, що забезпечує абсолютну адресацію дискових секторів, також через DOS, виконується за допомогою переривань 25Н і 26Н. Найнижчий рівень забезпечується перериванням BIOS 13Н, яке дозволяє виконати довільну адресацію в дисковій пам’яті по номеру доріжки і сектора. Методи DOS здійснюють деяку попередню обробку до передачі управління в BIOS.
3.2 Абсолютні операції дискового введення-виводу Для безпосереднього доступу до диска можна використовувати операції абсолютного читання і абсолютного запису за допомогою функцій DOS INT 25Н і 26Н. В цьому випадку не використовуються зміст диска і переваги блокування і розблокування записів, що забезпечуються функцією DOS INT 21Н.
Абсолютні операції припускають, що всі записи мають розмір сектора, тому прямий доступ здійснюється до повного сектора або блоку секторів. Адресація диска виконується по «логічному номеру запису» (абсолютний сектор). Для визначення логічного номера запису на двосторонніх дискетах з дев’ятьма секторами рахівниць секторів ведеться з доріжки 0, сектори 1, таким чином:
Доріжка Сектор Логічний номер запису
0 10
0 21
1 19
1 917
2 926
Для двосторонніх дискет використовується наступна формула:
Логічний номер запису = (доріжка х 9) + (сектор -1)
Наприклад, логічний номер запису на доріжці 2 і секторі 9 визначається як (2×9) + (9 -1) = 18 + 8 = 26
Фрагмент програми для абсолютних операцій введення-виводу:
MOV AL, drive# ;0 для А, 1 для В і так далі
MOV BX, addr ;Адрес області введення-виводу
MOV СХ, sectors ;Число секторів
MOV DX, record#; Начальный логічний номер запису
INT 25Н або 26Н; Абсолютное читання або запис Операції абсолютного читання або запис руйнують вміст всіх регістрів, окрім сегментних, і встановлюють прапор CF для індикації успішній (0) або безуспішній (1) операції.
У разі безуспішної операції вміст регістра AL описує характер помилки:
AL Причина
1000 0000 Пристрій не відповідає
0100 0000 Помилка установки головок
0010 0000 Помилка контролера
0001 0000 Помилка дискети?
0000 1000 Переповнене DMA при читанні
0000 0100 Сектор не знайдений
0000 0011 Спроба запису на захищеній дискеті
0000 0010Не знайдений адресний маркер Команда INT записує вміст регістра прапора в стек. Після завершення команди INT слід відновити прапори, але перевіривши перед цим прапор CF.
3.3 Скидання диска: шіст. D
Звичайне нормальне закриття файлу приводить до занесення всіх записів, що залишилися в буфері, на диск і коректування змісту. У особливих випадках (між кроками програми або аварійному завершенні) може потрібно скидання диска. Функція DOS шіст.D звільняє всі файлові буфера і не коректує зміст диска. Якщо необхідно, то спочатку дана функція закриває всі файли.
MOV AH, ODH ;Запрос на скидання диска
INT 21Н ;Визов DOS
Установка поточного дисковода: шіст.Е Основне призначення функції DOS шіст.Е — установка номера поточного (за умовчанням) дисковода. Номер дисковода поміщається в регістр DL, причому 0 відповідає дисководу А, 1 — В і так далі
MOV АН, ОЕН ;Запрос на установку
MOV DL, 02 ;дисковода С
INT 21Н ;Визов DOS
Операція повертає в регістр AL число дисководів (незалежно від типу). Оскільки для DOS необхідно принаймні 2 логічних дисковода, А і В, то DOS повертає значення 02 і для систем з одним дисководом. (Для визначення дійсного числа дисководів використовується команда INT 11Н).
3.4 Пошук елементів змісту: шіст.11 і 12
Програмній утиліті може потрібно пошук в змісті для доступу до імені файлу, наприклад, при видаленні або перейменуванні. Для доступу до першого або єдиного елементу змісту необхідно завантажити в регістр DX адресу невідкритого блоку FCB і виконати функцію 11Н. При використанні розширеного блоку FCB можна також отримати код атрибуту.
MOV АН, 11Н ;Запрос на перший елемент
LEA DX, FCBname ;Невідкритий FCB
INT 21Н;Визов DOS
FCB може бути розташоване за адресою 5СН в префіксі програмного сегменту, передуванні програмі в пам’яті (DTA за умовчанням). У регістрі AL операція повертає шіст.FF, якщо елемент не знайдений, і шіст.00, якщо знайдений. Операція встановлює в DTA номер дисковода (1=А, 2=В і так далі) ім'я файлу і тип файлу. Якщо знайдено декілька елементів при вибірці за шаблоном (наприклад *.ASM), то для локалізації елементів підмножини директорії використовується функція 12Н:
МОV АН, 12Н ;Запрос наступного елементу
LEA DX, FCBname ;Невідкритий FCB INT 21H;Визов DOS
Коди повернення в регістрі AL аналогічні кодам функції 11Н.
3.5 Видалення файлу: шіст.13
Для видалення файлу в програмі використовується функція DOS 13Н. Операція видалення встановлює спеціальний байт в першій позиції імені файлу в змісті.
MOV АН, 13Н ;Запрос на видалення файлу
LEA DX, FCBname ;Невідкритий FCB
INT 21Н;Визов DOS
Якщо операція знаходить і видаляє елемент, то в регістрі AL встановлюється код повернення 00, інакше код рівний шіст.FF.
3.6 Перейменування файлу: шіст.17
Для перейменування файлу в програмі використовується функція DOS шіст.17. Старе ім'я файлу записується в звичайному місці блоку FCB, а нове — починаючи із зсуву 16.
МОV АН, 17Н;Запрос на перейменування
LEA DX, FCBname ;Адрес FCB
INT 21Н;Визов DOS
Символи? і * у новому імені приводять до збереження у відповідних позиціях символів із старого імені. Успішна операція встановлює в регістрі AL код повернення 00, а безуспішна (файл по старому імені не знайдений або по новому імені вже існує) — код FF.
3.7 Отримання поточного номера дисковода: шіст.19
Функція DOS шіст.19 дозволяє визначити поточний номер дисковода:
MOV АН, 19Н ;Получили поточний дисковод
INT 21Н; Визов DOS
Операція повертає шіст. номер дисковода в регістрі AL (0=А, 1=В і т.д.). Набутого значення можна помістити безпосередньо в FCB для доступу до файлу з поточного дисковода.
Окрім перерахованих існують функції для отримання інформації з таблиці FAT (1 В і 10), установки поля прямого запису (24), установки вектора переривань (25), створення нового програмного сегменту (26) і аналізу імені файлу (29). Ці функції описані в технічному керівництві по DOS.
3.8 Інструкція користувачеві
Розроблена* СОМ-програма на ім'я SDEL, ілюструє функції DOS 11Н, 12Н і 13Н для видалення вибраних файлів. Для запиту на видалення файлів користувач може ввести, наприклад, наступні команди:
SDEL *.* (всі файли)
SDEL *.ВАК (всі ВАК-файли)
SDEL TEST.* (всі файли на ім'я TEST)
За допомогою DOS програма визначає в змісті елементи, що задовольняють запиту. DOS заносить повне ім'я знайденого елементу в PSP (префікс програмного сегменту) по зсуву шіст. 81 (DTA за умовчанням). Потім програма виводить на екран ім'я файлу і запит підтвердження. Відповідь Y (так) вирішує видалення, N (немає) зберігає файл, a Return завершує виконання.
Звернете увагу на те, що дана програма повинна бути створена як СОМ-програма, оскільки ЕХЕ-програма вимагають відмінної адресації для використання зсувів шіст.5С і 81 в PSP. Для тестування програми використовуйте скопійовані тимчасові файли.
4. ВІДЛАДКА І ВИПРОБУВАННЯ РОЗРОБЛЕННОГО ПРОГРАММНОГО ЗАБЕСПЕЧЕННЯ При запуску програми sdel.com з командного рядка, програма пропонує ввести імена або розширення файлів, які потрібно видалити. Ввів довільні імена файлів, але оскільки їх не опиналося на дискеті програма вивела наступне повідомлення «No more directory entries». Скопіював на дискету тимчасові файли, запустив програму, ввів їх імена, програма відала запит на підтвердження видалення, натиснув клавішу 'у' (у від англійської Yes) файли були видалені. Всі тести завершилися вдало.
ВИСНОВОК Перевага даної розробки в тому, що програма займає дуже мало дискового простору, а також високою швидкістю роботи так як вона написана на низкорівневой мові програмування — Асемблері.
Ця розробка знайде велике застосування в сфері «Обслуговування комп’ютера», людям обслуговуючим програмне забезпечення, ця програма стане незамінною тому, що при порушення працездатності системи Windows цю програму можна буде запустити під DOS, для якої вона і написана.
Література
1.Абель П. Основи программирования/ Пер. с англ. Ю. В. Сальниковая.- М.: Висш. Шк. 1992 г. — 447с.: ил.
2.А. Жуков, А. Авдохин «Assembler». -Спб: БХВ — Петербург, 2002.
3.Архитектура ввода-вывода персональных ЭВМ IBM РС Под редакцией Ю. С. Лукача © Инженерно-техническое бюро, 1990
4.В. Юров «Assembler» Практикум.-Спб.:Питер, 2001.
5.В. Юров «Assembler» Учебник.-Спб.:Питер, 2001.
6.Зубков С. В. Ассемблер для Dos, Windows и Unix — «Питер», в 2004 г.
7.Ирвин, Кип. Язык Ассемблера для процессоров Intel, 3-е издание: Пер. с англ. — М.: Издательский дом «Вильямс», 2002.-616с.: ил. — Парал. Тит. Англ.
8.Использование Turbo Assembler при разработке программ / Сост. А. А. Чекатков.-Киев:Диалектика, 1995.-228с
Додаток ПРОГРАММА: ВЫБОРОЧНОЕ УДАЛЕНИЕ ФАЙЛОВ
TITLESELDEL (COM)Выборочное удаление файлов Предполагается текущий дисковод;
Примеры параметров: *.*, *.bak, и т. д.
CODESGSEGMENTPARA `CODE'
ASSUMECS:CODESG, DS: CODESG, SS: CODESG
ORG100H
BEGINJMPMAIN
TABEQU09
LFEQU10
CREQU13
CRLFDBCR, LF,'$'
DELMSGDBTAB,'ERASE','$'
ENDMSGDBCR, LF,'No more directory entries', CR, LF,'$'
ERRMSGDB`Write protected disk','$'
PROMPTDB`y = Erase, N = Keep, Ret = Exit', CR, LF,'$'
MAINPROCNEAR; Главная процедура
MOVAH, 11H; Найти первый элемент
CALLD10DISK
CMPAL, 0FFH; Если нет элементов
JEA90; то выйти
LEADX, PROMPT; Текст запроса
CALLB10DISP
A20:
LEADX, DELMSG; Выдать сообщение
CALLB10DISP; об удалении файла
MOVCX, 11;11 символов
MOVSI, 81H; Начало имени файла
A30:
MOVDL,[SI]; Текущий символ
CALLC10CHAR; для вывода на экран
INCSI; Следующий символ
LOOPA30
MOVDL,'?'
CALLC10CHAR
MOVAH, 01; Получить односимвольный
INT21H; ответ
CMPAL, ODH; Символ Return?
JEA90; да — выйти
ORAL, 10 0000B; Перекодировать в прописную букву
CMPAL,'y'; Запрошено удаление?
JNEA50; нет — обойти
MOVAH, 13H; да — удалить файл
MOVDX, 80H
INT21H
CMPAL, 0; Успешное удаление?
JZA501; да — обойти
LEADX, ERRMSG; нет — выдать
CALLB10DISP; предупреждение
JMPA90
A50:
LEADX, CRLF; Перевести строку на экране
CALLB10DISP
MOVAH, 12H
CALLB10DISK; Получить следующий элемент
CMPAL, 0FFH; Есть еще?
JNEA20; да — повторить
A90:
RET; Выход в DOS
MAINENDP ;Вывод строки на экран;
B10DISP PROCNEAR;в DX находится адрес
MOVAH, 09; строки
INT21H
RET
B10DISPENDP Вывод символа на экран;
C10CHARPROCNEAR;в DL находится символ
MOVAH, 02
INT21H
RET
C10CHARENDP ;Чтение элемента каталога;
D10DISKPROCNEAR
MOVDX, 5CH; Установить FCB
INT21H
CMPAL, 0FFH; Есть еще элементы?
JNED90
PUSHAX; Сохранить AL
LEADX, ENDMSG
CALLB10DISP
POPAX; Восстановить AL
D90:RET
D10DISKENDP
CODESGENDS
ENDBEGIN