МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
/
Кафедра ЕОМ
ЗВІТ
до лабораторної роботи № 2
на тему:
" Програмування вводу та виводу на асемблері. Створення *.COM – файлів."
з дисципліни:"засоби системного програмування"
Мета роботи: : оволодіння навичками створення *.COM – файлів та навчитися реалізовувати ввід з клавіатури та вивід на екран символьних даних
Теоретичні відомості: Програма містить лише один сегмент text з класом 'CODE'. Оператор ASSUME затверджує, що усі чотири сегментні регістри вказують на цей єдиний сегмент. Оператор ORG 100h резервує 256 байтів для PSP (префікса програмного сегмента). Наповнювати PSP буде система. У програмі нема потреби ініціалізувати регістр DS, бо його, як всі інші сегментні регістри, ініціалізує система. Система у випадку .COM - файлу завжди задає ІP=100h. Через це негайно за оператором ORG 100h повинен знаходитись перший виконуваний рядок програми. Якщо власні дані бажано розмістити на початку програми, тоді першою командою програми має бути jmp через ці дані.
ЗАВДАННЯ:
Створити програму типу .COM, яка в текстовому режимі виводить за допомогою псевдографіки зображення заданого варіантом символу.
Перевірити роботу створеної програми і продемонструвати її виконання.
Скласти звіт про виконану роботу (з приведенням тексту програми).
Варіант № 10
α
Код програми:
Перший варіант
dosseg
.model small
.code
org 100h
start:
jmp prog
Simbol db ' ',10,13
db ' @@@@@@@@@@@ ',10,13
db ' @@@@@@@@@@@@@@ @@@@@@@@@@@@ ',10,13
db ' @@@@@@@@@ @@@ @@@@@@@@@@@@@ ',10,13
db ' @@@@@@@@@ @@@ @@@@@@@@@@@@ ',10,13
db ' @@@@@@@@@ @@@ @@@@@@@@@@@@@ ',10,13
db ' @@@@@@@@@@ @@@ @@@@@@@@@@@@ ',10,13
db ' @@@@@@@@@@ @@@@@@@@@@@@@@@@ ',10,13
db ' @@@@@@@@@@@ @@@@@@@@@@@@@@@ ',10,13
db ' @@@@@@@@@@@@ @@@@@@@@@@@@@ ',10,13
db ' @@@@@@@@@@@@ @@@@@@@@@@@@ ',10,13
db ' @@@@@@@@@@@@ @@@@@@@@@@@@ ',10,13
db ' @@@@@@@@@@@@ @@@@@@@@@@@ ',10,13
db ' @@@@@@@@@@@@ @@@@@@@@@@@ ',10,13
db ' @@@@@@@@@@@@ @@@@@@@@@@ ',10,13
db ' @@@@@@@@@@@@ @@@@@@@@@@@ @ ',10,13
db ' @@@@@@@@@@@ @@@@@@@@@@@@ @ ',10,13
db ' @@@@@@@@@@ @@@@@@@@@@@@@ @@ ',10,13
db ' @@@@@@@@@@ @@@@@@@@@@ @@@@@ @@@ ',10,13
db ' @@@@@@@@@ @@@@@@@@@@ @@@@@@@@@@ ',10,13
db ' @@@@@@@@@ @@@@@@@@@@ @@@@@@@@ ',10,13
db ' @@@@@@@@@@@@@@@@@@@@ @@@@@@@ ',10,13
db ' @@@@@@@@@@@@ @@@@@ ',10,13
db ' ',10,13,'$'
prog:
mov ax,0600h
mov cx,0000
mov bh,07
mov dx,184fh
int 10h
mov al,00
mov ah, 09
mov dx, offset Simbol
int 21h
mov ah, 7
int 21h
mov ax,0600h
mov cx,0000
mov bh,07
mov dx,184fh
int 10h
mov al,0
mov ah, 4ch
int 21h
end start
Другий варіант:
dosseg
.model small
.code
org 100h
start:
jmp prog
Simbol db 60 dup (32),10,13
db 21 dup (32), 11 dup(64), 28 dup (32), 13,10
db 20 dup (32), 14 dup(64), 8 dup(32),12 dup(64), 7 dup (32), 10,13
db 18 dup (32), 9 dup(64), 6 dup(32), 3 dup(64), 5 dup(32), 13 dup(64), 6 dup(32), 10,13
db 17 dup (32), 9 dup(64), 8 dup(32), 3 dup(64), 4 dup(32), 12 dup(64), 7 dup(32), 10,13
db 16 dup (32), 9 dup(64), 10 dup(32), 3 dup(64), 2 dup(32), 13 dup(64), 7 dup(32), 10,13
db 15 dup (32), 10 dup(64), 11 dup(32), 3 dup(64), 1 dup(32), 12 dup(64), 8 dup(32), 10,13
db 14 dup (32), 10 dup(64), 12 dup(32), 16 dup(64), 8 dup (32), 10,13
db 13 dup (32), 11 dup(64), 13 dup(32), 15 dup(64), 8 dup (32), 10,13
db 12 dup (32), 12 dup(64), 13 dup(32), 13 dup(64), 10 dup (32), 10,13
db 12 dup (32), 12 dup(64), 13 dup(32), 12 dup(64), 11 dup (32), 10,13
db 12 dup (32), 12 dup(64), 13 dup(32), 12 dup(64), 11 dup (32), 10,13
db 12 dup (32), 12 dup(64), 13 dup(32), 11 dup(64), 12 dup (32), 10,13
db 12 dup (32), 12 dup(64), 13 dup(32), 11 dup(64), 12 dup (32), 10,13
db 12 dup (32), 12 dup(64), 13 dup(32), 10 dup(64), 13 dup (32), 10,13
db 12 dup (32), 12 dup(64), 12 dup(32), 11 dup(64), 8 dup(32), 1 dup(64), 4 dup(32), 10,13
db 13 dup (32), 11 dup(64), 11 dup(32), 12 dup(64), 8 dup(32), 1 dup(64), 4 dup(32), 10,13
db 14 dup (32), 10 dup(64), 11 dup(32), 13 dup(64), 6 dup(32), 2 dup(64), 4 dup(32), 10,13
db 15 dup (32), 10 dup(64), 9 dup(32), 10 dup(64), 1 dup(32), 4 dup(64), 3 dup(32), 4 dup(64), 4 dup(32), 10,13
db 16 dup (32), 9 dup(64), 8 dup(32), 10 dup(64), 3 dup(32), 10 dup(64), 4 dup(32), 10,13
db 17 dup (32), 9 dup(64), 5 dup(32), 10 dup(64), 6 dup(32), 8 dup(64), 5 dup(32), 10,13
db 18 dup (32), 20 dup(64), 9 dup(32), 7 dup(64), 6 dup(32), 10,13
db 20 dup (32), 12 dup(64), 15 dup(32), 5 dup(64), 7 dup(32), 10,13
db 60 dup (32),10,13,'$'
prog:
mov ax,0600h
mov cx,0000
mov bh,07
mov dx,184fh
int 10h
mov al,00
mov ah, 09
mov dx, offset Simbol
int 21h
mov ah, 7
int 21h
mov ax,0600h
mov cx,0000
mov bh,07
mov dx,184fh
int 10h
mov al,0
mov ah, 4ch
int 21h
end start
Результат виконання програми:
/
Висновок: на даній лабораторній роботі я освоїв навички створення *.COM – файлів та навчився реалізовувати ввід з клавіатури та вивід на екран символьних даних .