IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

 
 Ответить  Открыть новую тему 
> Манипулирование битами
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Женский
Реальное имя: Лена

Репутация: -  0  +


Определить разность между количеством единичных и нулевых битов в старшем и количеством единичных и нулевых битов в младшем байте слова.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Лена, в чем проблема? Не знаешь, как работать с битами? Очень просто: запоминаешь нужное тебе значение в регистре (скажем, в 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, тогда ты получишь количество единичных бит в старшем байте слова, для него опять находишь нужную тебе разность... Вот и все, собственно...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 4
Пол: Женский
Реальное имя: Лена

Репутация: -  0  +


Спасибо большое. smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 7.12.2019 14:32
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name