Ekaterina666
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору помогите пожалуйста с поиском ошибки в программе условие: Дан массив из 8 байт. Рассматривая его, как массив из 64 бит, посчитать количество пар единиц в окружении нулей. Конец последовательности рассматривать как нуль data segment tick1 dw ? tick2 dw ? mass db 10101010b,11111111b,010000000b, 10110001b, 01101100b, 01101101b, 11110101b, 10110000b data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov dx,2 mov tick1,dx lea bx, mass mov cx, 3 beg: mov al,[bx] M3: test al,00000001b ; проверяем установлен ли 0-й бит jnz M1 ; если нет то к М1 inc tick1 ;да увеличиваем счетчик для 0 shr al,1 ;сдвигаем биты inc tick2; увеличиваем счетчик битов cmp tick2,8 ;если он равен 8-ми загружаем след байт je m4 jmp M3 M1: cmp tick1,1 ; jne M2 ; если счетчик не подходит то к М2 mov tick1,0 ;подходит обнуляем его inc si ; увеличиваем счетчик совпадений 010 M2: mov tick1,0 shr al,1 inc tick2 cmp tick2,8 je m4 jmp M3 M4: mov tick2,0 add bx,1 loop beg mov ax,4c00h int 21h code ends end start |