Посчитать количество единичных битов во введенном с клавиатуры слове - Assembler

Узнай цену своей работы

Формулировка задачи:

Подскажите, пожалуйста, код на masm32: посчитать количество единичных битов в введенном с клав. слове. Нужно очень, а с masm32 немного траблы. Заранее спасибо.

Решение задачи: «Посчитать количество единичных битов во введенном с клавиатуры слове»

textual
Листинг программы
xor dl,dl
mov ecx,16  ; кол-во бит
@@1:
shr eax,1
adc dl,0
loop @@1
; результат в dl

Объяснение кода листинга программы

  1. «xor dl,dl» — инициализация счётчика битов в переменной dl
  2. «mov ecx,16» — установка счётчика битов в 16
  3. «shr eax,1» — сдвиг содержимого регистра eax вправо на 1 бит и сохранение результата в eax
  4. «adc dl,0» — обновление значения счётчика битов: приращение на 1 с учётом переноса (если он был)
  5. «loop @@1» — повторение шагов 3-4 до тех пор, пока не будет выполнено условие остановки (результат сдвига вправо на 1 бит равен 0)
  6. «; результат в dl» — результат (количество единичных битов) сохранён в переменной dl

Оцени полезность:

13   голосов , оценка 4.154 из 5
Похожие ответы