может сказать в чем ошибка?
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 счётчика, а регистр по сути один
Обсуждают сегодня