cryptaeser
@cryptaeser

Как изменить программу для подсчета единиц в 32-разрядном числе?

Доброго времени суток, господа
вот есть программа, где происходит подсчет единиц, мне необходимо подсчитать нули
я понял, что для поиска единицы используется jnc-переход, но ума не приложу как найти все нули?

.data;
msg_title db "Title", 0
buffer db 256 dup(?)
format db "%d", 0
.code

start:
mov edx, 819 ;число, в котором будем считать единицы
mov ecx, 0
mov ebx, 1
loop_start: 
cmp ecx, 32 
jge loop_end 
rol edx, 0 
jnc bit0 
inc ebx 
bit0:
inc ecx 
jmp loop_start
loop_end: 

fn MessageBox,0,str$(ebx),"Result",MB_OK
invoke ExitProcess, 0
  • Вопрос задан
  • 193 просмотра
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
ума не приложу как найти все нули?

Количество нулей в 32-битном числе равно 32 - (количество единиц). Но если хочется именно посчитать -- замени jnc на jc.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы