Вообщемто есть получаю от GetLogicalDrives список дисков. Все они в eax. Бит - диск. Оно понятно. Мне нужно сделать цикл, в котором нужен адрес типа "X:\". Вопрос такой: как это сделать. Ну я меня есть пара идей. Типа куча cmp или test. Или еще более извращенная, с двумя счетчиками. Но все это мне как-то не нравиться. Может посоветуете чего нибудь красивого? ---------------------------------------------------------------------- -- И еще попутный вопрос. Если прога висит в памяти, и рысчкает по всем папкам(рекурсивно), насколько стоит ставить Sleep, чтобы ОС не грузилась?
Код (Text): invoke GetLogicalDrives mov edx, "A"-1 @@1: test eax, eax jz @@kon inc edx shr eax, 1 jnc @@1 ;edx-имя диска m_pecreg10 edx jmp @@1 @@kon: >насколько стоит ставить Sleep, чтобы ОС не грузилась? если не нужно сканировать совсем без перерыва, то в основном цикле 100-1000мс. Хотя это лучше подправлять по частоте проца и текущей загрузки системы
Код (Text): call GetLogicalDrives l1: inc byte ptr [str] shr eax, 1 jnc skip pushfd ; ---------- действия с str ------------ popfd skip: jnz l1 str db '@:\', 0
а чем тебе не нравится ? 1) GetLogicalDriveStrings( DWORD nBufferLength, // size of buffer LPTSTR lpBuffer // address of buffer for drive strings ); хотя у _BC_ тоже красиво 2)Sleep(0) ,будет достаточно , другое дело что у меня иногода проблемы бывали с этим , я ставлю sleep(1);
yureckor _BC_ Я почти так же делал(идей). Но у вас красивей. staier Ох как она мне понравилась Я про такую и не знал "Хотя это лучше подправлять по частоте проца и текущей загрузки системы" А как такие вещи узнать? Ну часто-ту была тема, это разбирусь(надеюсь), а загрущенность тачки? Спасибо за Ответы.
warsem функциф sleep(y) отдают текущия квант исполнения системе и не получает новых квантов "y" миллисекунд ( с какой- то точностью) тут скорее имеет смысл спросить , как часто надо вызывать Sleep а вот это уже вопрос, который без профилирования обсуждеть бессмысленно то есть тот цикл , который грузит систему - кандидат на вставку Sleep а лучше поставь idle_priority и не парься , пусть себе грузит