У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


КУРСОВА РОБОТА

з дисципліни СИСТЕМНЕ ПРОГРАМУВАННЯ ТА ОПЕРАЦІЙНІ СИСТЕМИ

Тема – Розробка резидентної програми, яка блокує і, по паролю, розблоковує операції з файлами в заданій папці (директорії).

Робоча папка (директорія) та пароль вказуються в командному

рядку як параметри при запуску програми.

 

АНОТАЦІЯ

В даній роботі розроблена програма, яка блокує і, по паролю, розблоковує операції з файлами в заданій папці (директорії). Робоча папка (директорія) та пароль вказуються в командному рядку як параметри при запуску програми При введенні паролю користувачем система порівнює значення паролю з паролем який був введений при запуску програми в командному рядку.

SUMMARY

In this work the developed program which blocks and, on a password, deblocks to operation with files in the set folder (directories). A working folder (directory) and password is specified in a command line as parameters at the start of the program At by an user the system compares  the value to the password with in a command line.

ЗМІСТ

Стор

1. ОПИС ОСНОВНИХ КОМАНД, ЩО ВИКОРИСТАНІ В

ПРОГРАМІ.............................................................................................. 7

2. БЛОК-СХЕМА ПРОГРАМИ............................................................ 9

3. КОД ПРОГРАМИ З ПОЯСНЕННЯМИ......................................... 11

4. ОПИС РОБОТИ ПРОГРАМИ.......................................................... 14

ВИСНОВКИ............................................................................................. 15

ПЕРЕЛІК ВИКОРИСТАНИХ ЛІТЕРАТУРНИХ ДЖЕРЕЛ................ 16

КР.КС-58.00.000 КС

Зм. | Лист | № докум | Підпис | Дата

Розроб. | Комп’ютерні мережі та системи | Літ. | Арк. | Аркушів

Перевір. | 6 | 16

Реценз.

Н.Контр.

Затверд.

1. ОПИС ОСНОВНИХ КОМАНД , ЩО ВИКОРИСТАНІ В

ПРОГРАМІ

В резидентній програмі яка блокує і, по паролю розблоковує операції з файлами в заданій папці (директорії), використовуються такі команди.

jmp - команда безумовного переходу, а також регістр або змінна, що містить адресу. В даній програмі ця функція виконує перехід до загрузчика.

jl - команда, яка здійснює перехід, аналогічний попередній, з умовою якщо перший операнд при попередньому порівнянні виявився меншим від другого.

jne - ця команда здійснює перехід, за умови що операнди виявились не рівними між собою.

pusha - команда розміщує в стеку регістри в порядку: AX,CX,DX,BX,SP,BP,SI,DI.

popa - команда виконує дії повністю протилежні pusha, але поміщене в стек значення SP або ESP ігнорується. popa завантажує зі стеку DI,SI,BP, збільшує SP на 2, і завантажує BX,DX,CX,AX.

mov - базова команда пересилання даних. Здійснює копіювання даних з джерела (вказується другим) в приймач (вказується першим, одразу після назви команди).

cmp - команда зрівнює операнди і встановлює флажки. Процес здійснюється шляхом вирахування джерела (число, регістр або змінна) з приймача (регістр або змінна, приймач та джерело не

Арк.

КР.КС-58.00.000 КС 7

 

Зм. | Арк. | № докум | Підпис | Дата

можуть бути змінними одночасно), причому результат вирахування нікуди не записується.

Єдиним наслідком роботи цієї команди є зміна флажків CF, OF, SF, ZF, AF і PF. В даній програмі команда використовується в поєднанні з командами переходу jmp, jl та jne.

iret - вихід (повернення) з переривання. Повертає зі стеку значення IP, CS і FLAGS які були до переривання. 

КР.КС-58.00.000 КС | Арк.

8

Зм. | Арк. | № докум | Підпис | Дата

2. БЛОК-СХЕМА ПРОГРАМИ

Блок – схема загрузочної чатини програми.

Ні

Так

Встановлення попереднього

адресу вектора переривань

 

КР.КС-58.00.000 КС

.00.00.000 ПЗ | Арк.

9

Зм. | Арк. | № докум | Підпис | Дата

 

Блок – схема резидентної чатини програми.

Так

Ні

Ні

Так

КР.КС-58.00.000 КС | Арк.

10

Зм. | Арк. | № докум | Підпис | Дата

 

3. КОД ПРОГРАМИ З ПОЯСНЕННЯМИ

Програма на мові Asembler.

.model tiny;вибір моделі пам’яті для компіляції com-файлу

.286

code segment

assume cs:code,ds:code

org 80h

len db ?

line db ?

org 100h

start:

......................резидентна частина................

jmp install ; перехід на реальний початок програми

fun equ 3ch

interrupt equ 21h

passw db 'Vvedit parol: $' ;буфер для виводу даних на екран

mes db 10

mesl db ?

rmes db 10 dup(?)

old_ip dw ?

old_cs dw ?

mess1 db 'Dostup zaboroneno!',0ah,0dh,'$'

mess2 db 'Dostup dozvoleno!',0ah,0dh,'$'

nop

………………………………………………………………………………………………

obrobka:

cmp ah,fun

jne mit1

pusha ; збереження регістрів

push cs

pop ds ; відновлюємо значення регістра DS

mov ah,9

mov dx,offset passw;

pushf ; зберігаємо в стеці поточний стан прапорців

call dword ptr cs:[old_ip]

;int 21h ; виклик переривання виконання функції

КР.КС-58.00.000 КС | Арк.

11

Зм. | Лист | № докум | Підпис | Дата

mov ah,0ah

mov dx,offset mes

;int 21h ; виклик переривання виконання функції

pushf ; зберігаємо в стеці поточний стан прапорців

call dword ptr cs:[old_ip]

xor ch,ch

mov cl,mesl

xor di,di

porivn:

mov al,rmes[di]

inc di

cmp al,line[di]

jne failed

loop porivn

mov ah,9

mov dx,offset mess2

pushf ; зберігаємо в стеці поточний стан прапорців

call dword ptr cs:[old_ip] ;виклик старої програми обробки

popa ; зберегти регістри оперативного призначення

mit1:

jmp dword ptr cs:[old_ip]

failed:

mov ah,9

mov dx,offset mess1

pushf ; зберігаємо в стеці поточний стан прапорців

call dword ptr cs:[old_ip];виклик старої програми обробки

popa ; зберегти регістри оперативного призначення

iret ;передаємо управління перерваній програмі

.....................загрузочна частина....................

install:

cmp len,0

jne in1

mov dx,offset err1

mov ah,9

int 21h виклик переривання виконання функції

mov ax,4c00h

int 21h ;виклик переривання виконання функції

 

КР.КС-58.00.000 КС | Арк..

12

Зм. | Лист | № докум | Підпис | Дата

 

in1:

mov ah,35h

mov al,interrupt ;отримати адресу попереднього вектора переривання

int 21h ;виклик переривання виконання функції

mov [old_ip],bx ;зберегти молодше слово адреси в old_ip

mov [old_cs],es ;зберегти старше слово адреси в old_cs

mov dx,offset obrobka

mov ah,25h ; встановити нову адресу

mov al,interrupt

int 21h ;виклик переривання виконання функції

mov dx,offset install ;завершити роботу і залишити резидентною частину програми по мітку install

int 27h ;передаємо управління DOS

err1 db 'NEMA PARAMETRIV',0AH,0DH,'$'

code ends

end start ;кінець сегменту даних та назва точки входу з програми.

cmp - команда зрівнює операнди і встановлює флажки. Процес здійснюється шляхом вирахування джерела (число, регістр або


Сторінки: 1 2