лаб13
.docx
ЛАБОРАТОРНА РОБОТА №13
Тема: Програмування з використанням команд обробки рядків.
Мета: Вивчення принципу дії та способів ефективного використання команд обробки послідовностей.
Завдання:
Визначити кількість слів у тексті, що збігаються з заданим словом (між
словами – пробіли).
Лістинг програми:
data segment
msg1 DB "Enter string: $"
msg2 DB 0Ah, 0Dh, "Enter substring to find: $"
msg3 DB 0Ah, 0Dh, "rez: $"
str1ml DB 200
str1l DB '$'
str1 DB 200 dup('$')
str2ml DB 200
str2l DB '$'
str2 DB 200 dup('$')
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
mov ax, @data
mov ds, ax
mov es,ax
xor ax,ax
lea dx, msg1
mov ah, 09h
int 21h
lea dx, str1ml
mov ah, 0Ah
int 21h
lea dx, msg2
mov ah, 09h
int 21h
lea dx, str2ml
mov ah, 0Ah
int 21h
xor cx, cx
mov cl, str1l
sub cl, str2l
inc cl
cld
lea di, str2
lea si, str1
xor ax, ax
all_string:
push cx
push di
push si
mov bx, si
mov cl, str2l
repe cmpsb
je eq
jne neq
eq:
inc al
jmp neq
neq:
pop si
pop di
pop cx
inc si
loop all_string
mov cl,al
add cl, 30h
lea dx, msg3
mov ah, 09h
int 21h
mov dl, cl
mov ah, 2
int 21h
mov ax, 4c00h
int 21h
ends
end start
Рисунок 1 – Результат виконання