|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Сен 19, 2004 13:38:08 Подскажите пожалуйста самый красивый спопсоб зеркального отображения бит в байте, Например: 10110001 -> 10001101 10110001 -> 10001101 Раньше знал, сейчас что-то забыл!! Тупой вариант понятен типа использования команд rcl и rcr!! , а как красивее?? |
|
|
Дата: Сен 19, 2004 13:57:14 · Поправил: Black_mirror а как красивее?? mov ah,al ;<= вот это меня переглючило rol ax,4 ;<= mov ebx,eax and al,33h xor ebx,eax shr ebx,2 lea eax,[ebx+eax*4] mov ebx,eax and al,55h xor ebx,eax shr ebx,1 lea eax,[ebx+eax*2] так красивее? 8) |
|
|
Дата: Сен 19, 2004 21:28:39 Я нашел вроде вот такое решение: mov ah,al shr al,1 and al,01010101b shl ah,1 and ah,10101010b or al,ah mov ah,al shr al,2 and al,00110011b shl ah,2 and ah,11001100b or al,ah rol al,4 |
|
|
Дата: Сен 20, 2004 12:37:33 · Поправил: dShell у Уорена так написано:
unsigned rev(unsigned x){
x = ( x & 0x55555555 ) << 1 | ( x >> 1 ) & 0x55555555;
x = ( x & 0x33333333 ) << 2 | ( x >> 2 ) & 0x33333333;
x = ( x & 0x0f0f0f0f ) << 4 | ( x >> 4 ) & 0x0f0f0f0f;
x = ( x << 24 ) | (( x & 0xff00 ) << 8 ) | (( x >> 8 ) & 0xff00 ) | (x >> 24 );
return x;
}
|
|
|
Дата: Сен 20, 2004 12:49:02 dShell Вроде то же, что и у меня... Только для dword. |
|
|
Дата: Сен 20, 2004 13:31:03 черт, я опять условие не прочитал : бит в байте :(. _Chingachguk_, алгоритм тот же. |
|
|
Дата: Сен 22, 2004 12:54:13 emergenter Может такой понравится. mov eax,znachenie mov ebx,OF tabl mov al,[ebx+eax] tabl db 0 ... db 255 |
|
|
Дата: Сен 22, 2004 20:00:07 dShell Последнюю строчку перед return можно заменить на: x = ((x & 0x00FF00FF) ror 8) | ((x rol 8) & 0x00FF00FF); |
|
|
Дата: Сен 22, 2004 23:11:39 Quantum Пожалуй я только соглашусь с вами :)) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.043 |