m420
m50:
mov ah,40h ;записати число у файл f2
mov bx,diskr2
mov cx,5
mov dx,offset rez3
int 21h
cmp np,1 ;якщо число непарне то записати у файл f3
jne mv2
mov ah,40h ;записати у файл f3
mov bx,diskr3
mov cx,5
mov dx,offset rez3
int 21h
mov np,0
mv2:
pop cx
loop x25
;------------------------------
mov ah,42h ;перейти на початок файлу
mov bx,diskr2
mov al,0
mov cx,0
mov dx,0
int 21h
mov cx,80 ;очистити буфер
mov bx,0
mK116: mov buf[bx],' '
inc bx
loop mK116
mov ah,3fh ;зчитати вмiст файлу f2
mov bx,diskr2
mov cx,80
mov dx,offset buf
int 21h
mov ah,09h ;вивести на екран пiдказку
mov dx,offset vv3
int 21h
mov ah,09h ;вивести на екран вмiст файлу f2
mov dx,offset buf
int 21h
mov ah,42h ;перейти на початок файлу f3
mov bx,diskr3
mov al,0
mov cx,0
mov dx,0
int 21h
mov cx,80 ;очистити буфер
mov bx,0
mK16: mov buf[bx],' '
inc bx
loop mK16
mov ah,3fh ;зчитати вмiст файлу f3
mov bx,diskr3
mov cx,80
mov dx,offset buf
int 21h
mov ah,09h ;вивести на екран пiдказку
mov dx,offset vv4
int 21h
mov ah,09h ;вивести на екран вмiст файлу f3
mov dx,offset buf
int 21h
mov bx,diskr1 ;закрити файл f1
mov ah,3eh
int 21h
jc ex
mov bx,diskr2 ;закрити файл f2
mov ah,3eh
int 21h
jc ex
mov bx,diskr3 ;закрити файл f3
mov ah,3eh
int 21h
jc ex
jmp exit
m1:
mov ah,09h ;вивести на екран повiдомлення vv5
mov dx,offset vv5
int 21h
jmp mv2
ex:
exit:
mov ah,01h ;зупинка екрану
int 21h
mov ax,4c00h ;кiнець програми
int 21h
end start
5.Опис роботи програми
На початку програми вибирається модель пам’яті командою model, виділяється пам’ять для стеку - .stack, описуються всі змінні і файли, що використовуються в програмі - .data. Вибирається тип процесора .386.
Виконання програми починається із мітки start. Далі встановлюється третій відео режим. Функція 3ch переривання Int 21h здійснює створення файлів f1,f2,f3.. Потім виводиться повідомлення vv1.
Після цього, користувачу треба набрати 16 шістнадцяткових чисел від 00 до FF, великими буквами через пропуск. Функція 3fh переривання Int 21h здійснює таке введення. Числа заносяться у файл f1 (функція 40h переривання Int 21h ).
Потім, в циклі числа зчитуються з файлу f1 (функція 3fh переривання
Int 21h), виконується перевірка чи число від’ємне (команда cmp), якщо так, то воно множиться на 19,7 і записується у файл f2. Якщо число непарне, то воно записується ще і у файл f3.
Наступним кроком фукцією 09h переривання 21h реалізовано виведення вмісту файлів f2 i f3 на екран. Функція 3eh переривання Int 21h закриває файли.
Висновки
В результаті виконання курсового проектування розроблена програма обробки шіснадцяткових чисел від 00 до FF . Програма створює три файли f1,f2,f3. У файл f1 заносяться введені числа. У файл f2 заносяться від’ємні числа файлу f1, помножені на 19,7. У файл f3 заносяться непарні числа файлу f2.
Наведено блок-схему програми, подано опис її функціонування в середовищі MS-DOS. Текст програми написано на мові Assembler.
Література
Основна:
1. Зубков С.В. Assembler для DOS, Windows и UNIX – 3-е изд., стер. – М.: ДМК Пресс; СПб.: Питер, 2004. – 608с.
2. Джорден Р. Справочник программиста персональных компьютеров типа IBM PC, XT и AT: Пер. с англ./ Предисл. Н.В. Гайского. – М.: Финансы и статистика, 1992. – 544с.
3. Фролов А.В., Фролов Г.В. MS-DOS для программиста. – М.: ДИАЛОГ-МИФИ, 1995. – 256с.
4. Системное программное обеспечение. Учебник для вузов/ А.Ю. Молчанов. - СПб: Питер, 2003. – 396 с.
Додаткова:
1. Юров В.Assembler. Специальный справочник. – СПб.: Питер, 2001. – 496 с.: ил.
2. А.В.Фролов, Г.В.Фролов. MS-DOS для програмиста №18,19. – М.: Диалог-МИФИ, 1995. – 254 с.