Ввести строку символов, длиной до 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,'$'
Объяснение кода листинга программы
В этом коде выполняется следующая последовательность действий:
- Ввод строки символов, длиной до 20 байт, в буфер «stroka».
- Ввод слова, размером до 10 байт, в буфер «slovo».
- Проверка наличия введенной строке символа из буфера «slovo».
- Вывод на экран сообщения о том, что слово найдено, или сообщения о том, что слово не найдено.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д