Подсчитать в строке количество символов "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

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


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

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

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