Re[2]: Как быстро заполнить память повторяющимися 4-мя байта
От: Atilla Россия  
Дата: 18.12.02 10:55
Оценка: 2 (1)
Здравствуйте, <Аноним>, Вы писали:

А>
А>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 >>
Кр-ть — с.т.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.