Подсчитать в строке количество символов "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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д