может сказать в чем ошибка?
                  
                  
                  
                  
                  
                  masm
                  
                  
                  model small
                  
                  
                  .data
                  
                  
                   mes db 'String ff-or search.',0ah,0dh,'$'
                  
                  
                   nom db ? ;количество повторений символа 'f'
                  
                  
                  .stack
                  
                  
                   db 256 dup(0)
                  
                  
                  .code
                  
                  
                   assume ds:@data,es:@data
                  
                  
                   main proc near
                  
                  
                   mov ax,@data
                  
                  
                   mov ds,ax
                  
                  
                   mov es,ax ;настройка es на ds
                  
                  
                   
                  
                  
                  lea si, mes
                  
                  
                  mov al, '-' ; символ для поиска
                  
                  
                  mov cx, 20
                  
                  
                  @L:
                  
                  
                  repne scasb
                  
                  
                  jz @done   ; проверить на 0 ; вроде флаг должен устанвливаться при cx = 0
                  
                  
                  cmp si, 'f'
                  
                  
                  jne @next
                  
                  
                  inc cl ;увеличим число вхождений
                  
                  
                  @next:
                  
                  
                  jmp @L ; продолжать цикл пока не конец строки
                  
                  
                  @done:
                  
                  
                  
                  
                  
                   mov ax,4c00h ;завершение программы
                  
                  
                   int 21h 
                  
                  
                  main endp
                  
                  
                  end main
                  
                  
                
вечерком мож алгоритм нарисую, что то в нем не так
у тя вроде бесконечный цикл
scas работает с di
repne выполнять пока не эквивалент (то есть если байты совпадают, то ZF будет ноль и произойдёт выход из цикла. далее, если ZF ноль, то сразу же выполнит я прыжок jz @done, а далее выход из программы
неправильно используешь счётчик cx/cl, у тя получается 2 счётчика, а регистр по сути один
Обсуждают сегодня