Розробка програми-інтерпретатора функцій командного процесора DOS: TIME, DATE, DIR, CD, MD, RD на мові Асемблера. Функціональні модулі, процедури та макроси, які використовуються в програмі. Опис алгоритму розв’язання задачі, його програмна реалізація.
Аннотация к работе
Тобто програма повинна виводити поточну дату і час, змінювати їх, виводити список файлів та піддиректорій вказаної директорії, змінювати поточну директорію, створювати та видаляти каталог. В даному випадку розроблялася програма, яка зчитувала з клавіатури символи та обробляла їх. Команда LODSW завантажить в регістр AX символи в зворотному порядку (XE). Якщо команда має менше символів, то в старші біти записуються 0. Програмна реалізація алгоритму 2.1 Функції, які використовуються в програмі Основне переривання, яке використовується в програмі, це переривання int 21h (переривання DOS). В програмі використовуються такі функції цього переривання [1-2]: функція 9h - вивести строку на дисплей Вхідні параметри: AH = 9h DS:DX = адреса строки, яка закінчується символом $ Вихідні параметри: немає функція 0Eh - встановити поточним диск DOS Вхідні параметри: AH = 0Eh DL = номер диску (0 - A; 1 - B; 2 - C і т.д.) Вихідні параметри: AL = загальна кількість дисководів в системі функція 19h - зчитати поточний диск DOS Вхідні параметри: AH = 19h Вихідні параметри: AL = номер поточного диску (0 - A; 1 - B; 2 - C і т.д.) функція 1Ah - встановити адрес DTA Вхідні параметри: AH = 1Ah DS:DX = адрес для DTA Вихідні параметри: немає функція 2Ah - зчитати дату DOS Вхідні параметри: AH = 2Ah Вихідні параметри: AL = день тижня (0 - неділя, 1 - понеділок, і т.д.) CX = рік (1980-2099) DH = місяць (0-12) DL = число (0-31) функція 2Bh - встановити дату DOS Вхідні параметри: AH = 2Bh CX = рік (1980-2099) DH = місяць (0-12) DL = число (0-31) Вихідні параметри: AL = 0 якщо дата встановлена функція 2Ch - зчитати час DOS Вхідні параметри: AH = 2Ch Вихідні параметри: CH = години (0-23) CL = хвилини (0-59) DH = секунди (0-59) DL = соті долі секунди (0-99) функція 2Dh - встановити час DOS Вхідні параметри: AH = 2Dh CH = години (0-23) CL = хвилини (0-59) DH = секунди (0-59) DL = соті долі секунди (0-99) Вихідні параметри: AL = 0 якщо час встановлено функція 36h - зчитати вільну пам’ять диску Вхідні параметри: AH = 36h DL = номер диску (0 - поточний; 1 - A; 2 - B і т.д.) Вихідні параметри: AX = 0FFFFh якщо DL містить невірний номер диску, в іншому випадку - кількість секторів на кластер BX = кількість доступних кластерів CX = кількість байтів на сектор DX = кількість кластерів на диску функція 39h - створити новий каталог Вхідні параметри: AH = 39h DS:DX = адреса ASCIIZ строки з ім’ям каталогу Вихідні параметри: AX = код помилки якщо встановлений CF функція 3Ah - видалити каталог, що існує і є пустим Вхідні параметри: AH = 3Ah DS:DX = адреса ASCIIZ строки з ім’ям каталогу Вихідні параметри: AX = код помилки якщо встановлений CF функція 3Bh - встановити поточний шлях Вхідні параметри: AH = 3Bh DS:DX = адреса ASCIIZ строки з шляхом Вихідні параметри: AX = код помилки якщо встановлений CF функція 3Fh - читати файл через описувач Вхідні параметри: AH = 3Fh BX = описувач файла (0 - читати з клавіатури) DS:DX = адреса буфера, куди записувати зчитані дані CX = кількість байтів для читання Вихідні параметри: AX = код помилки якщо встановлений CF або кількість реально зчитаних байтів функція 40h - запис в файл через описувач Вхідні параметри: AH = 40h BX = описувач файла (0 - вивід на дисплей) DS:DX = адреса буфера, який містить дані для запису CX = кількість байтів для запису Вихідні параметри: AX = код помилки якщо встановлений CF AL = кількість реально зчитаних байтів функція 47h - зчитати поточну директорію Вхідні параметри: AH = 47h DS:SI = адреса буфера для шляху DL = номер диску (0 - поточний; 1 - A; 2 - B і т.д.) Вихідні параметри: AX = код помилки якщо встановлений CF функція 4Сh - завершити програму Вхідні параметри: AH = 4Сh Вихідні параметри: немає функція 4Eh - знайти перший файл, що відповідає масці Вхідні параметри: AH = 4Eh DS:DX = адреса ASCIIZ строки з ім’ям файлу CX = атрибут файлу Вихідні параметри: AX = код помилки якщо встановлений CF DTA = заповнена даними якщо не було помилки функція 4Fh - знайти наступний файл, що відповідає масці Вхідні параметри: AH = 4Fh DS:DX = адреса даних, які були записані функцією 4Eh Вихідні параметри: AX = код помилки якщо встановлений CF DTA = заповнена даними якщо не було помилки 2.2 Процедури, які використовуються в програмі Процедура GetString - зчитує з клавіатури введені символи до натискання Enter.