Ввести строку символов, длиной до 20 байт. Ввести слово, размером до 10 байт. Содержит ли данная строка символ - Assembler

Узнай цену своей работы

Формулировка задачи:

Для начала организовал просто поиск одной буквы(код уже переделан от исходного),теперь пытаюсь найти слово,не могу понять,помогите пожалуйста.
.model small
.stack 100h
.data
stroka db '4 prakti4eskaya SP',13,10,'$'  
slovo db 'SP'
naideno db 'Slovo naideno!!!P',13,10,'$' 
nenaideno db 'Slovo ne naideno!!!P',13,10,'$'
.code 
start:
mov ax,@data
    mov ds,ax
    mov es,ax
    mov ah,9
    
lea di,stroka
lea si,slovo   

mov dx,offset stroka
int 21h
   mov ah,9
 
cld
mov cx,20
 
repne scasb
 
jz konec
mov dx,offset nenaideno   
jmp exit                  
konec:
mov dx,offset naideno   
exit:

int 21h  
 
mov ax,4c00h
int 21h

Решение задачи: «Ввести строку символов, длиной до 20 байт. Ввести слово, размером до 10 байт. Содержит ли данная строка символ»

textual
Листинг программы
use16
org 100h
 
cld
mov si,slovo
mov di,stroka
mov al,byte[si]
mov cx,lng_str
 
Scan_bukv:
repne scasb
je Bukva_ok 
jcxz Net_slova 
jmp Scan_bukv
;
Bukva_ok:
inc cx
 
cmp cx,lng_slovo
jb Net_slova
 
dec di
mov cx,lng_slovo
repe cmpsb 
jnz Net_slova 
mov dx,naideno
jmp To_write
 
 
Net_slova:
mov dx,nenaideno
 
To_write:
mov ah,09h
int 21h  
 
mov ax,4c00h
int 21h
 
stroka db '4 prakti4eskaya SP',13,10,'$'
lng_str = $-stroka-3 
slovo db 'SP',13,10,'$'
lng_slovo = $-slovo-3
naideno db 'Slovo naideno!!!',13,10,'$' 
nenaideno db 'Slovo ne naideno!!!',13,10,'$'

Объяснение кода листинга программы

В этом коде выполняется следующая последовательность действий:

  1. Ввод строки символов, длиной до 20 байт, в буфер «stroka».
  2. Ввод слова, размером до 10 байт, в буфер «slovo».
  3. Проверка наличия введенной строке символа из буфера «slovo».
  4. Вывод на экран сообщения о том, что слово найдено, или сообщения о том, что слово не найдено.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы