xor cx,cx ;cx=0 тут считаем кол-во групп
mov dx,ваше слово ;данные
mov ax, 111b ;группа которую ищем
next:
mov bx,dx ;поместить во временный регистр
and bx,ax ;логическое И с группой
cmp bx,ax ;сравнить группу и результат операции предыдущей
jne net_sovp ;если не совпадают переход
inc cx ;увеличить счетчик
net_sovp:
shl ax,1 ;сдвинуть группу на разряд влево
cmp ax,1100000000000000b;проверяем, все ли групы прошли
jne next ;Нет продолжить цикл
.model small ; модель пямяти для программы типа EXE
.stack 100h ; сегмент стека
.data ; сегмент данных
Sbit dw 1111011100011111b ; битовая строка
.code ; сегмент кода
@start: ; точка входа в программу
mov ax,@data; инициализация семента данных
mov ds,ax
xor cx,cx ; cx=0 тут считаем кол-во групп
mov dx,Sbit ; данные, загрузим битовую строку в регистр
mov ax, 111b ; ax=группа которую ищем
@next:
mov bx,dx ; поместить строку во временный регистр
and bx,ax ; сдклать логическое И с группой
cmp bx,ax ; сравнить группу и результат предыдущей операции
jne @net_sovp ; если не совпадают переход
inc cx ; иначе, увеличить счетчик
@net_sovp:
shl ax,1 ; сдвинуть группу на разряд влево
jnc @next ; проверяем, все ли групы прошли, нет продолжить цикл
; кол-во групп в cx
mov ax,4c00h ; номер функции DOS и параметр, завершить программу, код ошибки 0
int 21h ; вызов DOS
end @start ; точка входа
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.