Определить разность между количеством единичных и нулевых битов в старшем и количеством единичных и нулевых битов в младшем байте слова.
volvo
12.04.2009 23:31
Лена, в чем проблема? Не знаешь, как работать с битами? Очень просто: запоминаешь нужное тебе значение в регистре (скажем, в BX) в цикле, 8 раз проверяешь значение BX на четность, и если четное, то увеличиваешь счетчик единичных бит. Количество нулевых бит будет равно 8 - (количество_единичных). Разность сама найдешь? Набросок:
mov bx, my_data ; my_data - то слово, которое ты должна проверить mov cx, 8 cycle_1: test bx, 1 jz not_one inc low_byte ; переменная low_byte хранит количество единичных бит. ; Не забудь обнулить перед циклом not_one: shr bx, 1 loop cycle_1
То же самое делаешь еще раз прямо не изменяя содержимого BX, тогда ты получишь количество единичных бит в старшем байте слова, для него опять находишь нужную тебе разность... Вот и все, собственно...
Лена
13.04.2009 0:13
Спасибо большое.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.