Подсчитать в строке количество символов "f" - Assembler
Формулировка задачи:
Ввести строку символьных данных ,задавая буфер равный 30 байт.
Подсчитать в этой строке количество символов "f" .
Выдать одно из сообщений:
"Cимвола f в строке данных нет"
"Cимвол f вcтречается 1 раз"
"В строке данных символов f >=2".
Заранее благодарю.
Решение задачи: «Подсчитать в строке количество символов "f"»
textual
Листинг программы
.model small .386 .data db 'BeginOfData$' max db 30 len db 0 buf db 30 dup(?) s1 db 0Dh,0Ah,'Simvola f v stroke dannyh net$' s2 db 0Dh,0Ah,'Simvol f vstrechaetsja jdin raz$' s3 db 0Dh,0Ah,'V stroke dannyh simvolov f>=2$' db 'EndOfData$' .stack db 256 dup(?) .code start: mov ax,@data mov ds,ax mov ah,0Ah lea dx,max int 21h lea si,buf shl bl,8 shl ch,8 mov cl,len search: lodsb cmp al,'f' jnz skip inc bl skip: loop search mov ah,09h or bl,bl je zero cmp bl,1 je one jmp two zero: lea dx,s1 jmp show one: lea dx,s2 jmp show two: lea dx,s3 show: int 21h mov ah,4Ch mov al,00h int 21h end start
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д