Здравствуйте Алексей Петров, Вы писали:
АП>Есть матрица 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