Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/46: Рейтинг темы: голосов - 46, средняя оценка - 4.67
Kolyanya

Подсчитать число единичных бит в числе

27.09.2012, 11:31. Показов 9144. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста решить задание
Подсчитать число единичных бит в числе размера CX байт, находящегося по адресу SI.
Результат поместить по адресу DI.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.09.2012, 11:31
Ответы с готовыми решениями:

Подсчитать количество единичных битов в числе произвольной размерности (вставка на Assembler в Pascal)
Помогите написать программу Подсчитать количество единичных битов в числе произвольной размерности, представленном в виде массива...

Подсчитать количество нулевых бит в числе
Занести числа в память 102, 26, 62, 127 Подсчитать количество нулевых бит в числе. тема "Изучение логических команд и...

Подсчитать число единичных бит в числе 161
Ребята памагите в решение задачки очь нужна ваша помощь на с не с++ Требуеться подчитать число эдиничных бит в числе 161 если...

8
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
27.09.2012, 11:45
Kolyanya, есть похожая задача дан массив из 8 байт. Посчитать кол-во нулевых битов в каждом байте и вывести общее кол-во. если у тебя N байт, тогда N*8 всего битов и если X - количество нулевых битов, то N*8-X - число единичных бит или переделай программу так, чтобы она подсчитывала число единичных бит там всего-то нужно NOT AX убрать
1
202 / 168 / 11
Регистрация: 30.05.2012
Сообщений: 703
27.09.2012, 12:05
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
mov bx,0
looperwerlqwjfwjlawfqjtgektlkrjwekrjklrjtjqwe4lkrjklerjte4r:
push cx
lodsb
mov cx,8
wekjkwejrkwejrwekrwj:
shr al,1
adc bx,0
loop wekjkwejrkwejrwekrwj
pop cx
loop looperwerlqwjfwjlawfqjtgektlkrjwekrjklrjtjqwe4lkrjklerjte4r
stosb
2
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
27.09.2012, 12:10
Anonimys, вот это интересно,
C
1
2
3
4
5
6
7
// Подсчет единичных битов в слове
    X = X - ((X >> 1) & 0x55555555);
    X = (X & 0x33333333) + ((X >> 2) & 0x33333333);
    X = (X + (X >> 4)) & 0x0F0F0F0F;
    X = X + (X >> 8);
    X = X + (X >> 16);
    return (X & 0x0000003F);
а у вас тривиально
0
116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
27.09.2012, 12:12
Компактный код! (Кроме имен меток))))))))))))))))))))
Цитата Сообщение от Anonimys Посмотреть сообщение
looperwerlqwjfwjlawfqjtgektlkrjwekrjklrj tjqwe4lkrjklerjte4r:
Эта строка вообще длиннее всего кода
Только не хватает строчки
mov al,bl
перед stosb.
1
202 / 168 / 11
Регистрация: 30.05.2012
Сообщений: 703
27.09.2012, 12:22
Цитата Сообщение от Mikl___ Посмотреть сообщение
Код C
А на асме слабо такой код?




Цитата Сообщение от programmisto Посмотреть сообщение
Эта строка вообще длиннее всего кода
Стараюсь...


Цитата Сообщение от programmisto Посмотреть сообщение
Только не хватает строчки
mov al,bl
перед stosb.
Спасибо.
Можно ещё заменить stosb на
Assembler
1
2
mov ax,bx
stosw
Добавлено через 5 минут
Цитата Сообщение от Mikl___ Посмотреть сообщение
интересно
Зато долго
1
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
27.09.2012, 12:39
Anonimys, нет не слабо и не дольше пока будешь каждый байт сдвигать восемь раз, здесь сразу оценивается 32 бита, а код murderer'a не оценил?
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
mov eax,X
mov ebx,eax
shr ebx,1
and ebx,55555555h
sub eax,ebx;X = X - ((X >> 1) & 0x55555555);
mov ebx,eax
and eax,33333333h
shr ebx,2
and ebx,33333333h
add eax,ebx;X = (X & 0x33333333) + ((X >> 2) & 0x33333333);
mov ebx,eax
shr ebx,4
and eax,ebx
and eax,0F0F0F0Fh;    X = (X + (X >> 4)) & 0x0F0F0F0F;
mov ebx,eax
shr ebx,8
add eax,ebx;    X = X + (X >> 8);
mov ebx,eax
shr ebx,16
add eax,ebx;    X = X + (X >> 16);
and eax,3Fh;    return (X & 0x0000003F)
1
202 / 168 / 11
Регистрация: 30.05.2012
Сообщений: 703
27.09.2012, 13:27
Интеловские гномы говорят,
Logical operations are slower than shift
логические операции медленнее чем сдвиговые
, и код больше получается (примечание переводчика)
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
28.09.2012, 04:52
Anonimys, короче не значит быстрее
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.09.2012, 04:52
Помогаю со студенческими работами здесь

Подсчитать количество единичных бит в числе типа double
Как это можно сделать? С целой частью понятно, а с дробной нет. double u; u=555.667; long c=u;//555 int count; unsigned mask...

Отсортировать числа в порядке возрастания количества единичных бит в числе
Помогите отсортировать решения задачи (числа J в коде) по возрастанию program Project2; {$APPTYPE CONSOLE} uses SysUtils; ...

Подсчитать количество единичных бит
Ассемблер дается тяжело, но надо сдавать , суть задания: Составить программу подсчета количества единичных бит в трех массивах РПД,...

Подсчитать сколько единичных бит стоит на позициях, номер которых кратен 3
как написать эту программу? имеется целое число,подсчитать сколько единичных бит стоит на позициях, номер которых кратен 3

Сделать в числе n циклическую перестановку четных бит на k бит вправо
Написать программу, которая позволит ввести два числа n и k типа ulong с клавиатуры, напечатать их на дисплее, и используя битовые операции...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru