Головна Головна -> Інше українською -> Інформатика, комп'ютери, програмування -> Система переривань операційної системи DOS

Система переривань операційної системи DOS

Назва:
Система переривань операційної системи DOS
Тип:
Інше
Мова:
Українська
Розмiр:
4,37 KB
Завантажень:
24
Оцінка:
 
поточна оцінка 5.0


Скачати цю роботу безкоштовно
Пролистати роботу: 1  2  3 
Зміст
Опис основних функцій, що використані в програмі………………
Блок-схема алгоритму………………………………………………..
Опис блок-схеми алгоритму…………………………………………
Код програми з поясненнями (ремарками)…………………………
Опис роботи програми………………………………………………..
Висновки………………………………………………………………….
Література……………………………………………………………
1.Опис основних функцій, що використані в програмі.
В шістнадцятковій системі числення від’ємні елементи мають в старшому розряді одиницю. Тому всі шістнадцяткові числа, починаючи з 80h і більші можна трактувати як від’ємні. При множенні і вибиралися такі числа. Числа , що в старшому розряді мають 0, приймалися як додатні.
Для розв’язування даної задачі файли створювалися в поточному каталозі на поточному дику. Файлам було надано атрибут загального доступу. Кожне звертання до файлів контролювалося на наявність помилки.
Для розв’язування даної задачі була використана система переривань операційної системи DOS.
В курсовій роботі були використані наступні функції роботи з файлами.
Функція DOS 3Ch: Створити файл.
Вхід: АН = 3Ch.
СХ = атрибут файлу.
біт 7: файл можна відкривати різним процесам ;
біт 6: не використовується;
біт 5: архівний біт (1, якщо файл не зберігався);
біт 4: директорія (повинна бути 0 для функції 3Ch);
біт 3: мітка тому (ігнорується функцією 3Ch);
біт 2: системний файл;
біт 1: схований файл;
біт 0: файл тільки для читання;
DS:DX = адреса ASCIZ-рядка з повним ім'ям файлу (ASClZ-рядок ASCII-символів, що закінчується нулем).
Вихід: CF = 0 і АХ = ідентифікатор файлу, якщо не відбулася помилка.
Якщо файл вже існує, функція 3Ch усе рівно відкриває його, присвоюючи йомy нульову довжину. Щоб цього не відбулося, варто скористатися функцією 5Bh.
Функція DOS 3Fh: Читання з файлу чи пристрою.
Вхід: АН = 3Fh.
ВХ = ідентифікатор.
СХ = число байтів.
DS:DX =адреса буфера для прийому даних .
Вихід: CF = 0 і АХ = число зчитаних байтів, якщо не було помилки.
Функція DOS 40h: Запис у файл чи пристрій .
Вхід: АН = 40h .
ВХ = ідентифікатор.
СХ = число байтів .
DS:DX = адреса буфера з даними.
Вихід: CF = 0 і АХ = число записаних байтів, якщо не відбулася помилка .
В курсовій роботі була використана функція роботи з монітором 09Н.
функція DOS 09h: Вивести рядок символів на екран.
Вхід: АН = 09h.
DS:DX = адреса рядка, що закінчується символом $ (24h).
Вихід: AL= 24h (код останнього символу).
3.Опис блок-схеми алгоритму
Початок.
Опис всіх змінних, які використовуються в програмі.
Встановлення відеорежиму .
Створення файлів f 1, f 2, f 3.
Ввести числа з клавіатури у файл f 1.
Перехід на іншу сторінку і інший блок.
Перехід з іншої сторінки і іншого блоку.
Організація циклу. Виконання буде повторено 16 разів.
Число з f1 від’ємне?
Перехід на іншу сторінку і інший блок.
Помножити число на 19,7 і записати у файл f2.
Результат непарний?
Записати у файл f3.
Перехід з іншої сторінки і іншого блоку.
Встановити позицію читання/запису на початок файлів.
Читання вмісту файлів f2,f3.
Виведення вмісту файлів f2,f3 на екран .
Закриття всіх відкритих файлів.
Кінець.
4.Код програми з поясненнями (ремарками)
.model small ;модель па'мятi
.stack 100h
;опис даних
.data
namef1 db 'f1.TXT',0 ;оголошення файлiв
namef2 db 'f2.TXT',0
namef3 db 'f3.TXT',0
diskr1 dw 0 ;оголошення ідентифікаторів файлiв
diskr2 dw 0
diskr3 dw 0
buf db 80 dup(' '),'$' ;буфер для промiжних даних
;повідомлення
vv1 db 10,13,'Введiть данi в файл f1.TXT (великi букви):',10,13,'$'
vv3 db 10,13,'Вмiст файлу f2.TXT:',10,13,'$'
vv4 db 10,13,'Вмiст файлу f3.TXT:',10,13,'$'
vv5 db 10,13,'Такого числа нема !',10,13,'$'
;змiннi для промiжних даних
aa db ' '
x db 0
rez2 db ' '
rez3 db ' '
np db 0
;початок програми
.code
.386
assume ds:@data,cs:@code,es:@data ;прив’язка сегментів програми до
;регістрів
start:
mov ax,@data прив’язка сегментів програми до регістрів
mov ds,ax
mov es,ax
mov ah,00h ;встановити 3-iй вiдеорежим
mov AL,03h
int 10h
;створити файл f1
mov ah,3ch
mov cx,00h
mov dx,offset namef1
int 21h
jc ex
mov diskr1,ax ;запам’ятати ідентифікатор файлу f1
; створити файл f2
mov ah,3ch
mov cx,00h
mov dx,offset namef2
int 21h
jc ex
mov diskr2,ax ;запам’ятати ідентифікатор файлу f2
`;створити файл f3
mov ah,3ch
mov cx,00h
mov dx,offset namef3
int 21h
jc ex
mov diskr3,ax ;запам’ятати ідентифікатор файлу f3
mov ah,09h
mov dx,offset vv1 ;вивести пiдказку vv1 на екран
int 21h
mov ah,3fh ;зчитати з клавiатури 16 чисел
mov bx,0
mov cx,49
mov dx,offset buf
int 21h
mov ah,40h ;записати 16 чисел у файл f1
mov cx,47
mov bx,diskr1
mov dx,offset buf
int 21h
;перейти на початок файлу
mov ah,42h
mov bx,diskr1
mov al,0
mov cx,0
mov dx,0
int 21h
mov cx,16 ; кiлькiсть повторень циклу
m25: push cx ;занести у стек
mov x,0
mov ah,3fh ;зчитати з файлу f1 число
mov bx,diskr1
mov cx,3
mov dx,offset aa
int 21h
;----------перевiрка чи число шiснадцяткове----------------------
cmp aa,30h
jl m1
cmp aa,39h
jnle m2
sub aa,30h
m4:
cmp aa+1,30h
jl m1
cmp aa+1,39h
jnle m5
sub aa+1,30h
jmp m3
m2:
cmp aa,41h
jl m1
cmp aa,46h
jnle m1
sub aa,37h
m5:
cmp aa+1,41h
jl m1
cmp aa+1,46h
jnle m1
sub aa+1,37h
m3:
mov al,aa
shl x,4
mov al,aa+1
add x,al
mov al,x
shr al,7
cmp al,1 ;перевiрка чи число вiд їмне
jne mv2 ;якщо нi - на мiтку mv2
shl x,1 ;забрати знак "-"
shr x,1
;--------множення числа на 19.

Завантажити цю роботу безкоштовно
Пролистати роботу: 1  2  3 



Інше на тему: Система переривань операційної системи DOS

BR.com.ua © 1999-2017 | Реклама на сайті | Умови використання | Зворотній зв'язок