перейти к полному списку дипломных проектов
Ссылка на скачивания файла в формате .doc находится в конце странички
Серед них: процедури вводу/виводу даних на консоль, обробки ASCII рядків, а також перетворення числових даних у ASCII формат для подальшого їх виведення на екран
Функція повертає код помилки в AX, якщо файл не знайдений, або заповнює буфер DTA даними про файл.
4Fh функція INT 21h [6]
Вхід: AH 4Fh
DS:DX адреса даних, повернутих попередньою 4Eh
функцією INT 21h
Вихід: AX код помилки, якщо CF=1
DTA заповнена даними
Дана функція викликається після функції 4Eh INT 21h і знаходить наступний файл, що відповідає параметрам пошуку, заданим при визові 4Eh INT 21h.
В AH заноситься номер функції, в регістрову пару DS:DX – адреса даних, повернутих попередньою функцією.
Функція повертає в AX код помилки, якщо вона не відбулась, або поміщує в буфер DTA дані про файл, що відповідає узагальненому імені і атрибуту.
Приклад:
mov ah, 4Eh ; в аh номер функції першого пошуку
mov dx, affset mask ; в dx зміщення маски
mov cx, 10h
int 21h
jc end
@@01:
mov ah, 4Fh ; в аh номер функції наступного пошуку
int 21h
jnc @@01
end:
Приклад демонструє перегляд каталогу на наявність файлів, що відповідають масці, заданої змінною mask. В буфері DTA залишається опис останнього знайденого файлу.
2.2.2. Інші функції переривання INT 21h, що необхідні для використання у програмі, що розробляється
2h функція INT 21h [6]
Вхід: AH 02h
DL код символу, що виводиться на вивід
Вихід: символ на екрані
В AH поміщується код функції, в DL код символу, що необхідно вивести на екран.
Слід відмітити, що при наявності в DL коду 8 (ASCII код Backspace) функція переміщує курсор вліво на одну позицію.
Для виконання переходу на новий рядок слід послідовно вивести символи із кодами 13 і 10 на екран [5].
Приклад:
mov ah, 2 ; номер функції
mov dl, 13 ; вертикальна табуляція
int 21h
mov dl, 10 ; зсув каретки
int 21h
Даний фрагмент коду переводить курсор на новий рядок.
40h функція INT 21h [6]
Вхід: AH 40h
BX описувач файлу
DS:DX адреса буфера, що містить дані, що записуються
CX число байт, що записуються
Вихід: AX код помилки, якщо CF=1
AL число реально зчитаних байт
Дана функція записує CX байт даних в файл, або пристрій, заданий описувачем в BX. В AH поміщується номер функції, BX містить описувач [6]:
0 Стандартний пристрій вводу (звичайна клавіатура)
1 Стандартний пристрій виводу (звичайний екран)
2 Стандартний пристрій помилок (CON-екран)
3 Стандартний пристрій AUX (COM 1)
4 Стандартний принтер (LPT1)
Регістрова пара DS:DX адресується на буфер. В CX міститься кількість записуваних байт.
Функція повертає в AX код помилки при умові, що CF встановився в 1, або кількість реально зчитаних байтів в AL.
Для нас дана функція цікава як інструмент для виводу даних на екран, тому в BX має бути занесено 1.
Приклад:
mov ah, 40h ; код функції
mov bx, 1 ; вивід на екран
mov dx, offset sstring ; в dx зміщення рядка виводу
mov cx, FFh ; в cx кількість символів, що виводяться
int 21h
Даний фрагмент коду виводить на екран рядок символів, що містяться в змінній sstring.
4Ch функція INT 21h [6]
Вхід: AH 4Ch
AL код виходу
Вихід: не має
Функція завершення програми (EXIT). Повертає управління від породженого процесу його батьківському процесу. Встановлює код виходу (його можна опитати функцією WAIT (4Dh)).
В AХ міститься номер функції, в AL – код виходу:
0 нормальне завершення
1 завершення через Ctrl-Break (INT 23h)
2 завершення по критичній помилці пристрою (INT 24h)
3 завершення через функцію KEEP (31h)
Приклад:
mov ax, 04ch ; в al – код виходу
int 21h ; в ah – номер функції
Даний фрагмент коду задає нормальне завершення роботи програми (повертається код виходу – 0).
3. РОЗРОБКА ЗАДАЧІ НА МОВІ АСЕМБЛЕР
3.1. Допоміжні процедури
Очевидно, що основна програма потребує допоміжні процедури для отримання необхідних параметрів, які задає користувач в командному рядку при визові програми. Серед них: процедури вводу/виводу даних на консоль, обробки ASCII рядків, а також перетворення числових даних у ASCII формат для подальшого їх виведення на екран. Для цього були розроблені спеціальні модулі PARAMS.asm, STRIO.asm та BINASC.asm, які містять необхідні процедури. Розглянемо їх окремо.
3.1.1. Модуль PARAMS.asm
Традиційно, програми MS DOS дозволяють користувачу вводити в командному рядку одне чи більше імен файлів і інші дані.
скачать бесплатно РОЗРОБКА ЗАДАЧІ НА МОВІ АСЕМБЛЕР
Содержание дипломной работы
Пройдено великий етап від мов структурного програмування (таких як С) до систем багатомовного програмування, на роль яких претендують такі бренди як С, Java, та ін
В AH поміщується номер функції; регістрова пара вказує на рядок, що задає маску імені файлу; в СХ міститься атрибут файлу
Серед них: процедури вводу/виводу даних на консоль, обробки ASCII рядків, а також перетворення числових даних у ASCII формат для подальшого їх виведення на екран
asm, є зручними і простими інструментами виводу інформації на стандартний пристрій виводу і будуть використані в основній програмі
Основну роботу виконує функція DirEngine, в яку, за допомогою регістру bx, передається зміщення функції Action (для подальшого виклику її за зміщенням)
Після цього DirEngine повертає старий DTA і передає курування основній програмі, яка завершує роботу і повертає код виходу
exe повністю відповідає поставленому завданню про створення програми мовою асемблера, яка виводить вміст директорії, атрибути, розмір і час/дату створення файлів і папок, які в ній містяться
Attrib and (1 shl i)) <>0
then write(' * ') {вивід зірочок навпроти файлів }
else write(' '); {із відповідними атрибутами}
{------Вивід часу створення файлу}
Write(' ',((DTAAddress^
SYS * * * 22:22:0 5 /5 /1999 364B6
MSDOS
Інші приклади демонструють різноманітні засоби задання масок файлів із використанням символів "*" і "?", а також задання шляху до директорії, вміст якої необхідно вивести
Версия 1