Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
л-р-6_укр.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
123.39 Кб
Скачать

Програма для практики

Напишемо програму, яка виводить на екран всі ASCII-символи (16 строк по 16 символів в строчці).

. model tiny

; модель пам'яті, в якій сегменти коду, даних і стека об'єднані.

. code

; сегмент коду, який містить дані.

org 100h

; початок СОМ-файла

begin:

; мітка початку кода програми

mov cx,256

; задаємо значення лічильника (256 символів)

mov dl,0

; перший символ - з кодом 00

mov ah,2

; номер функції DOS "виведення символу"

cloop: int 21h

; виклик DOS

inc dl

; збільшення DL на 1 – наступний символ

test dl,0Fh

; якщо DL не кратний 16

jnz continue_loop;

; продовжити цикл,

push dx

; інакше: зберегти поточний символ

mov dl,0Dh

; вивести CR

int 21h

; виклик DOS

mov dl,0Ah

; вивести LF

int 21h

; виклик DOS

pop dx

; відновити поточний символ

continue_loop:

; мітка

loop cloop

; продовжити цикл

ret

; завершення СОМ-файла

end begin

; мітка завершення кода програми

Тут за допомогою команди LOOP оформляється цикл, що виконується 256 раз (значення регістра СХ на початку циклу). Регістр DL містить код символу, який дорівнює нулю на початку циклу і збільшується кожного разу на 1 командою INC DL. Якщо значення DL відразу після збільшення на 1 кратне 16, воно тимчасово зберігається в стеку і на екран виводяться символи CR і LF, що виконують перехід на початок нового рядка. Перевірка виконується командою TEST DL, 0Fh - результат операції AND над DL і 0Fh буде нулем, тільки якщо молодші чотири біта DL дорівнюють нулю, що і відповідає кратності шістнадцяти.

Зміст звіту

3.1 Титульний лист.

3.2 Індивідуальний варіант завдання.

3.3 Тестові набори даних і передбачувані результати.

3.4 Текст програми до налагодження.

3.5 Список помилок, виявлених при налагодженні.

3.6. Результати виконання тестів.

3.7. Роздруківка лістингу компіляції налагодженої програми із зазначенням роботи кожного рядка.

Завдання для виконання

4.1 Виконайте всі приклади, що містяться в описі даної лабораторної роботи.

4.2 Проаналізуйте роботу програми прикладу для практики.

4.3 Вивчити умови організації циклічних переходів на мові Асемблера.

4.4 Напишіть програму, що виводить на екран слово "!!!! Hello!!!!" використовуючи команди циклічних переходів (3 варіанти).

4.5 Отримайте заданий від викладача (один з варіантів в табл. 1) і, користуючись правилами оформлення асемблерних програм, створіть програму, що виводить на екран слово, D число раз.

4.6 Програму ассемблюйте в файл типу *. Com або *. Exe (на вибір);