Зміст звіту

1. Постановка задачі для конкретного варіанта.

2. Блок-схема алгоритму виконання прикладу з детальним коментарем та описом роботи.

3. Лістинг програми з виведенням даних на екран монітора з використанням API-функцій та з детальним коментарем і описом роботи.

4. Рrint screen екрана 32-розрядного налагоджувача з виконаною програмою.

5. Короткий опис виконання програми.

6. Висновки за результатами роботи.

Приклад 11.12. Побудувати послідовність вигляду АААББББССССС із 40 символів відповідно до заданої таблиці, що містить символ і кількість його повторень.

Лістинг 11.13:

title CopyRight by Рисований О.М. & Легеза О., НТУ “ХПІ”, КІТ-17а

.686 ; директива визначення типу мікропроцесора

.model flat,stdcall ; завдання лінійної моделі пам’яті

; та угоди ОС Windows

option casemap:none ; відмінність малих та великих літер

include masm32includekernel32.inc

include masm32includewindows.inc

include masm32includeuser32.inc

include masm32includefpu.inc

includelib masm32libuser32.lib

includelib masm32libkernel32.lib

includelib masm32libfpu.lib

BSIZE equ 40 ; завдання реальної кількості байтів

.data ; директива визначення даних

info db "Масив = " ; підпис числа для віконця результату

mas BYTE 45 dup (?),0 ; визначення масиву

c1 db 61h ; с1 := 61h = 97 – код літери “a”

titl db " Результат ",0 ; назва віконця

.code ; директива початку коду програми

_start: ; мітка початку програми з ім’ям _start

mov ebx,40 ; ЕВХ := 40

mov edx,3 ; EDX := 3

lea edi,mas ; занесення адреси початку рядка до EDI

m1: mov al,c1 ; al := c1

mov ecx,edx ; ECX := EDX

cld ; напрям – вгору

rep stosb ; заповнити вмістом al

mov ecx,edx ; ECX := EDX

inc c1 ; c1 := c1 + 1

inc edx ; EDX := EDX + 1

sub ebx,ecx ; EBX := EBX - ECX

cmp ebx,0 ; порівняння вмісту ЕВХ з нулем

jnl m1 ; якщо не менше – перейти на m1

jmp m2 ; інакше – на m2

m2:

invoke MessageBox,0, ; АРІ-функція виведення спрощеного віконця

ADDR info, ; адреса рядка, яка містить текст повідомлення

ADDR titl, ; адреса рядка, яка містить заголовок повідомлення

MB_ICONINFORMATION ; вигляд діалогового вікна

invoke ExitProcess, 0 ; повернення керування ОС Windows

; та визволення ресурсів

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

 

Результат виконання програми з лістингу 11.13 наведено на рис. 11.17.

 
 

 

 


У програмі початок перебору починається з коду літери а, а потім в циклі цей код збільшується, після чого підраховується кількість літер, яка не повинна перевищувати 40.