И для полноты картины - сортировка оформленнная в виде процедуры (fasm) RadixSort lpArray, nElements, сохраняющей ebp ebx esi edi (а-ля api) и...
А у меня она почему-то более разговорчивая :)) Ещё в KmdTut загляни.
persicum Угу дельфы давно не держу, так что сам если что подправишь по мелочи. Еще не знаю как дельфя адресует локальные переменные - если через...
max7C4 каую тебе ещё оптимизацию кроме /O2 надо ? :)) А ты попробуй не брать готовые исходники, а написать их с нуля на сях :)))
zhindos а точно проверил работает и через 0 и через -1, тогда странно, что же у SPA не получилось.
Great, SPA :)) Виндовый файл подкачки маппируется через NULL, а не ERROR_INVALID_HANDLE
n1kt0 поправь чтобы было как у меня :) - только не нужно включать весь чужой пост в ответы тут за это банят.
.data fileName db 'test.txt', 0 szFormat db 'API: %s', 9, 'CRC: 0x%x', 13, 10, 0 apiName db 'MessageBox', 0 CRC dd 12345h .data?...
А ты попробуй взять любой осмысленный цикл на асме, заменить в нём обращение к регистру на обращение к памяти (которое стопудово кешировано...
n1kt0 Покажи кусок программы, а то чудеса какие-то рассказываешь :)) и строку формата тоже нужно нулём завершать
max7C4 Представляешь - почти тебе поверил ;) Но оказалось просто некорректно поставленный тест :))
Proteus Громадное спасибо - ты спас мою веру в ассемблер ;)) Теперь асм как и положено ему в ~1,4 раза обгоняет C++.
persicum Разворот цикла и разбивка медленной xchg на отдельные команды, это понятно и тоже стоит применить (при развороте size должно быть кратно...
Folk Acid Ты предлагаешь вместо "(здесь был неработающий алгоритм сортировки; просьба к авторам, поправить или убрать)", записать этот?
+ проверка по словарю
Помедитировал тщательнее - убедился что действительно всё классно 32 полных пробега по массиву - меньше можно только если сделать досрочный выход,...
Гы-гы, а его и не будет поскольку в герметичной банке давление этого воздуха от её помещения в космос не изменится :))) А естественный баланс...
маска защищает от перемешивания при полном пробегании массива упроядочиваемых чисел от начала до конца, на каждом заходе в то время как надо...
Phantom_84 в соответствии с документацией push eax + 1, но не push eax+1 :)) полюбому через запятую логичнее, чем такие извраты.
точнее во так: .data szFormat db '%s %u',13,10,0 .data? szApiName db 64 dup (?) ; буфер для имени API CRC dd ? ; сюда положишь результат...
Имена участников (разделяйте запятой).