Re: Еще задачка по оптимизации
От: Stm  
Дата: 17.07.02 10:59
Оценка:
Здравствуйте Алексей Петров, Вы писали:

АП>Есть матрица 4х4. в каждой ячейке 0 или 1.

АП>Матрица сохраняется в 16битном регистре по одному биту на ячейку следующим образом (показан № бита, а котором сохраняется значение ячейки)


АП>
АП> 0  1  2  3
АП> 4  5  6  7
АП> 8  9 10 11
АП>12 13 14 15
АП>


АП>Задача — за минимальное число тактов матрицу транспонировать, т.е. получить такую:


АП>
АП> 0  4  8 12
АП> 1  5  9 13
АП> 2  6 10 14
АП> 3  7 11 15
АП>


si — in, di -out
xor di, di
mov bp, 4
@@1: mov ax, si
mov bx, si
mov cx, si
mov dx, si
ror bx, 3
ror cx, 6
ror dx, 9
and ax, 1
and bx, 2
and cx, 4
and dx, 8
or di, ax
or di, bx
or di, cx
or di, dx
ror si, 1
ror di, 4
dec bp
jnz short @@1
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.