Подсчитать в строке количество символов "f" - Assembler

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

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

Ввести строку символьных данных ,задавая буфер равный 30 байт. Подсчитать в этой строке количество символов "f" . Выдать одно из сообщений: "Cимвола f в строке данных нет" "Cимвол f вcтречается 1 раз" "В строке данных символов f >=2". Заранее благодарю.

Решение задачи: «Подсчитать в строке количество символов "f"»

textual
Листинг программы
  1. .model small                           
  2. .386                   
  3.  
  4. .data
  5.     db 'BeginOfData$'
  6. max db 30
  7. len db 0
  8. buf db 30 dup(?)
  9. s1  db 0Dh,0Ah,'Simvola f v stroke dannyh net$'
  10. s2  db 0Dh,0Ah,'Simvol f vstrechaetsja jdin raz$'
  11. s3  db 0Dh,0Ah,'V stroke dannyh simvolov f>=2$'
  12.     db 'EndOfData$'
  13.  
  14. .stack                     
  15.     db  256 dup(?)     
  16.  
  17. .code                          
  18. start:                 
  19.     mov ax,@data       
  20.     mov ds,ax
  21.    
  22.     mov ah,0Ah
  23.     lea dx,max
  24.     int 21h
  25.    
  26.     lea si,buf
  27.     shl bl,8
  28.     shl ch,8
  29.     mov cl,len
  30.     search:
  31.         lodsb
  32.        
  33.         cmp al,'f'
  34.         jnz skip
  35.        
  36.         inc bl
  37.        
  38.         skip:
  39.     loop search
  40.    
  41.     mov ah,09h
  42.    
  43.     or bl,bl
  44.     je zero
  45.    
  46.     cmp bl,1
  47.     je one
  48.    
  49.     jmp two
  50.    
  51.     zero:
  52.     lea dx,s1
  53.    
  54.     jmp show
  55.    
  56.     one:
  57.     lea dx,s2
  58.    
  59.     jmp show
  60.    
  61.     two:
  62.     lea dx,s3
  63.    
  64.     show:
  65.     int 21h
  66.    
  67.     mov ah,4Ch                 
  68.     mov al,00h         
  69.     int 21h
  70. end start

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


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

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

8   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы