Задачка на Асемблере =(
Пользователи, просматривающие топик: 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 байт. Посчитать количество байт, в которых нет единиц, стоящих рядом.
|
|
|
RE: Задачка на Асемблере =( - 2008-05-29 15:03:14.436666
|
|
|
Andrey1.1
Сообщений: 86
Оценки: 0
Присоединился: 2004-12-01 18:42:36
|
Если всё ещё надо - то в аттаче код, на 2-ую. Задачи на бинарную логику не бывают сложными.
|
|
|
RE: Задачка на Асемблере =( - 2008-05-30 02:00:09.560000
|
|
|
VViskas =[O_o]=
Сообщений: 145
Оценки: 0
Присоединился: 2008-01-01 02:25:50.893333
|
Спасибо за задачку, но уже сам 16ую решил.
|
|
|
RE: Задачка на Асемблере =( - 2009-11-06 19:40:26.570000
|
|
|
Пантеломон
Сообщений: 3
Оценки: 0
Присоединился: 2009-06-11 15:14:53.960000
|
19 плиз решите!! заранее благодарен
|
|
|
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
|
|
|
RE: Задачка на Асемблере =( - 2009-11-11 20:51:14.020000
|
|
|
Пантеломон
Сообщений: 3
Оценки: 0
Присоединился: 2009-06-11 15:14:53.960000
|
_ruzmaz_ СПАСИБО огромное!!!!
|
|
|
|
|