|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июн 13, 2003 11:56:12 Кто нибудь может еще привести примеры дзенского кода? |
|
|
Дата: Июн 13, 2003 16:05:28 ага. ты попробуй обменять таким образом а и а :))) |
|
|
Дата: Июн 13, 2003 16:53:54 push a mov a,b pop b Если скажете кто "а" кто "b" то могут быть и другие варианты. Есть команды SSE SHUFW и SHUFPS которые переставляют упакованные и упакованные вещественные числа. Сам не применял, трудно выговариваются мнемоники :-) |
|
|
Дата: Июн 13, 2003 21:48:13 xor a, b xor b, a xor a, b xchg a, b push a push b pop a pop b |
|
|
Дата: Июн 13, 2003 22:13:45 А вот код для проверки попадает беззнаковое число в один из не пересекающихся интервалов [min1,max1), [min2,max2): cmp ax,min1 sbb bx,bx cmp ax,max1 adc bx,0 cmp ax,min2 sbb bx,0 cmp ax,max2 adc bx,0 если не попадает то будет установлен флаг нуля. Кто еще какие прикольные примеры знает? |
|
|
Дата: Июн 14, 2003 00:19:27 Сделать число неотрицательным в любом случае: mov ax,Value @@SetNonNegative: neg ax js @@SetNonNegative |
|
|
Дата: Июн 14, 2003 00:43:54 Не Dzen, но прикольно (смотреть моноширным шрифтом): #include <stdlib.h> int main(int a,char **A){FILE*B;typedef unsigned long C;C b [8]; if(!(a==7&&(B= fopen(1[A],"rb")))) return 1;for(7[b]=0 ;7[b]<5;7[b]++)b[7[ b]]=strtoul(A[2+7[b ]],0,16-!7[b]*6);5[ b]=3[b] ; while ((6[b]= getc(B) )!=(C)- 1){if(2 [b])for (7[b]=0 ;7[b]<4 ;7[b]++ )if(((6 [b]>>7[ b])^(6[ b]>>(7-7[b])))&1)6[ b] ^=(1 <<7[b]) ^(1<<(7-7[b]));5[b] ^= 6[b] <<(0[b] -8);for(7[b]=0;7[b] <8;7[b] ++)if(( 5[b]>>(0[b]- 1))&1)5 [b]=(5[ b]<<1)^ 1[b]; else 5[ b]<<=1; }5[b]&=((((C)1 <<(0[b] -1))-1) <<1)|1; if(2[b] )for(7[ b]=0;7[ b]<(0[b ]>>1);7 [b] ++) if(((5[b]>>7[b])^(5 [b]>>(0 [b]-1-7 [b])))&1)5[b]^=((C) 1<<7[b])^((C)1<<(0[ b]-1-7[ b]));5[ b]^=4[b];fclose(B); printf("%0*lX\n", ( int)(0[ b]+3)>> 2,5[b]); return 0;} |
|
|
Дата: Июн 14, 2003 00:45:45 А-а! Где все пробелы, блин? Чтож, видимо не судьба... |
|
|
Дата: Июн 14, 2003 01:00:33 · Поправил: Four-F [ Chingachguk: Сделать число неотрицательным в любом случае: mov ax,Value @@SetNonNegative: neg ax js @@SetNonNegative ] Если в ax будет 8000h, то этот код будет выполняться бесконечно! Правильно так: mov ax,Value @@: neg ax jl @B |
|
|
Дата: Июн 14, 2003 03:53:06 Не думал, что Си ест конструкции вида 7[A]. Обязательно буду использовать! |
|
|
Дата: Июн 16, 2003 09:54:40 > Four-F: > Если в ax будет 8000h, то этот код будет > выполняться бесконечно! Да..., -128=80h, neg(-128)=128=80h,... Тонко подмечено ! |
|
|
Дата: Июн 25, 2003 22:35:38 циклический счетчик: inc_count: inc ecx cmp ecx,N sbb eax,eax and ecx,eax ret dec_count: dec ecx jnc .exit add ecx,N .exit: ret Кто нибудь знает как dec_count сделать без переходов четырьмя командами?(ret не считается) |
|
|
Дата: Июн 26, 2003 11:09:26 Вроде бы вот так: @@DecCount: mov dx,N-1 sub cx,1 sbb ax,ax sub cx,ax and dx,ax or cx,dx ret ? |
|
|
Дата: Июн 26, 2003 17:48:11 mov dx,N sub cx,1 sbb ax,ax and dx,ax add cx,dx итого 5 команд А как сделать четырьмя без переходов? |
|
|
Дата: Июн 27, 2003 00:38:33 Попробую еще раз (если опять получится месиво, удалите его pls):
|
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.098 |