Здравствуйте, <Аноним>, Вы писали:
А>А>int* ptr = bufferOfInt; // например int bufferOfInt[1000];
А>int value = 0x12345678;
А>int length = 1000;
А>for ( ;length>0; --length) *ptr++ = value;
А>
А>получается
А>А>mov eax, 305419896 ; 12345678H
А>mov ecx, 1000 ; 000003e8H
А>mov edi, OFFSET FLAT:?buf@@3PAHA ; buf
А>rep stosd
А>
А>не надо усложнять простое
Уважаемый Аноним, это уж как оптимизатор захочет. Я один раз видел как VC++ такую же штуку реализовал спомощью REP MOVSD!!! Т.е. сначала установил 1-е слово, а потом стал копировать ptr в (ptr+1)!!!
Работало, конечно, медленнее.
... << RSDN@Home 1.0 beta 3 >>