Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Задачка на Асемблере =(

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Прочее] >> Задачка на Асемблере =(
Имя
Сообщение << Старые топики   Новые топики >>
Задачка на Асемблере =( - 2008-05-14 01:04:21.946666   
VViskas =[O_o]=

Сообщений: 145
Оценки: 0
Присоединился: 2008-01-01 02:25:50.893333
Помогите решить ЛЮБУЮ (одну) задачу по асму…
Тотько плиз с пояснениями, что-б я и сам понял как…

1. Дан массив из 10 байт. Посчитать количество байт, в которых сброшены 6 и 4 биты. 2. Дан массив из 8 байт. Рассматривая его, как массив из 64 бит, посчитать количество единиц. 3. Дан массив из 8 байт. Рассматривая его как массив логических значений х0 х1 х2 х3 х4 х5 х6 х7 (true-есть ненулевые биты в байте, false-все биты нулевые), вычислить логическую формулу f=(x7 & x6 & x1) V (x6 & x4 & x2 & x1 & x0) V (x7 & x6 & x3 & x1). 4. Дан массив из 10 байт. Посчитать количество байт с числом единиц в байте равным три. 5. Рассматривая байт как набор логических значений x7 x6 x5 x4 x3 x1 x0 (true -1, false - 0), вычислить логическую формулу f=(x7 & x6 & x3 ) V (x6 & x4 & x2 & x1) V (x7 & x6 & x2 & x0) 6. Дан массив из 8 байт. Рассматривая его, как массив из 64 бит посчи-тать длину самой длинной последовательности единиц. 7. Дан массив из 10 байт. Посчитать количество единиц во всех разря-дах, кратных трём: 3, 6, 9, …, 75, 78. 8. Дан массив из 5 байт. Рассматривая его как массив из 8 пятиразряд-ных слов, найти “исключающее или” всех 8 слов для выражения “10101”. 9. Дан массив из 6 байт. Рассматривая его, как массив из 48 бит, посчи-тать в нём количество нулей. 10. Дан массив из 8 байт. Рассматривая его, как массив из 64 бит, посчи-тать количество пар единиц в окружении нулей. Конец последовательности рассматривать как нуль. 11. Дан массив из 7 байт. Рассматривая его, как массив из восьми семи-битных слов, посчитать количество слов с нечетным числом нулей в слове. 12. Дан массив из 9 байт. Рассматривая его как массив из 72 бит, посчи-тать число переходов между нулями и единицами. 13. Дан массив из 3 байт. Рассматривая его, как массив из 24 бит, посчи-тать количество одиночных единиц в окружении нулей. Конец последова-тельности рассматривать как нуль. 14. Дан массив из 6 байт. Посчитать количество байт число единиц, в ко-торых не превышает 3. 15. Дан массив из 11 байт. Посчитать количество байт, в которых нет единиц, стоящих рядом. 16. Дан массив из 4 байт. Рассматривая его, как массив из 32 бит посчи-тать длину самой длинной последовательности нулей. 17. Дан массив из 6 байт. Посчитать количество единиц во всех разря-дах, кратных пяти: 5, 10, …, 45. 18. Дан массив из 3 байт. Рассматривая его как массив из 8 трёхразряд-ных слов, найти “исключающее или” всех 8 слов для выражения “101”. 19. Дан массив из 7 байт. Рассматривая его, как массив из 56 бит, посчи-тать в нём количество нулей, стоящих после единицы. Конец последова-тельности рассматривать как нуль. 20. Дан массив из 8 байт. Рассматривая его, как массив из 64 бит, посчи-тать количество пар единиц в окружении нулей. Конец последовательности рассматривать как нуль. 21. Дан массив из 5 байт. Рассматривая его, как массив из восьми пяти-битных слов, посчитать количество слов с чётным числом единиц в слове. 22. Дан массив из 6 байт. Рассматривая его, как массив из 48 бит, посчи-тать число двух единиц, стоящих между нулями. Конец и начало последо-вательности рассматривать как нули. 23. Дан массив из 3 байт. Рассматривая его, как массив из 24 бит, посчи-тать количество одиночных единиц в окружении нулей. Конец последова-тельности рассматривать как нуль. 24. Дан массив из 6 байт. Посчитать количество байт, число единиц в ко-торых не превышает 3. 25. Дан массив из 11 байт. Посчитать количество байт, в которых нет единиц, стоящих рядом.
Post #: 1
RE: Задачка на Асемблере =( - 2008-05-29 15:03:14.436666   
Andrey1.1

Сообщений: 86
Оценки: 0
Присоединился: 2004-12-01 18:42:36
Если всё ещё надо - то в аттаче код, на 2-ую.
Задачи на бинарную логику не бывают сложными.
Post #: 2
RE: Задачка на Асемблере =( - 2008-05-30 02:00:09.560000   
VViskas =[O_o]=

Сообщений: 145
Оценки: 0
Присоединился: 2008-01-01 02:25:50.893333
Спасибо за задачку, но уже сам 16ую решил.
Post #: 3
RE: Задачка на Асемблере =( - 2009-11-06 19:40:26.570000   
Пантеломон

Сообщений: 3
Оценки: 0
Присоединился: 2009-06-11 15:14:53.960000
19 плиз решите!!
заранее благодарен
Post #: 4
RE: Задачка на Асемблере =( - 2009-11-10 23:18:48.640000   
_ruzmaz_

Сообщений: 105
Оценки: 0
Присоединился: 2009-08-22 18:26:07.173333
quote:

19 плиз решите!!

// A - массив из 8 байт. Первые 7 - заданные байты, // восьмой байт равен нулю. mov esi, offset A mov eax, [esi] bswap eax // в eax первые 4 байта массива mov ebx, [esi + 4] bswap ebx // в ebx последние 4 байта массива mov ecx, 57 // ecx - счетчик битов xor edx, edx // edx - счетчик нулей после единицы xor esi, esi // esi - предыдущий бит xor edi, edi // edi - текущий бит NextShift: dec ecx je TheEnd mov esi, edi xor edi, edi clc rcl ebx, 1 rcl eax, 1 adc edi, 0 cmp esi, edi ja GotOnePair jmp NextShift GotOnePair: inc edx jmp NextShift TheEnd: // Искомое число нулей, стоящих после единицы, // находится в edx. Если в задаче под "концом последовательности" имеется в виду бит, стоящий после последнего из 56 битов последовательности, а не последний из 56 бит последовательности, то в инструкции mov ecx, 57 писать 58.
p.s. все числа в dec
Post #: 5
RE: Задачка на Асемблере =( - 2009-11-11 20:51:14.020000   
Пантеломон

Сообщений: 3
Оценки: 0
Присоединился: 2009-06-11 15:14:53.960000
_ruzmaz_ СПАСИБО огромное!!!!
Post #: 6
Страниц:  [1]
Все форумы >> [Прочее] >> Задачка на Асемблере =(







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.