Пауза в цикле! (MASM)

Тема в разделе "WASM.WIN32", создана пользователем DrAsm, 19 май 2011.

  1. DrAsm

    DrAsm New Member

    Публикаций:
    0
    Регистрация:
    19 май 2011
    Сообщения:
    4
    Ребята, не могли бы подсказать или дать на водку. Как сделать в бесконечном цикле паузу. Предположим, у нас есть бесконечный цикл, который обрабатывает некоторую информацию. Но исходя из того, что он бесконечный - он загружает процессор и всю систему в целом на 95-99%. Как можно было бы сделать так, чтобы этого не происходило. Т.е. по сути, нужно как-то сделать так, чтобы цикл делал перерывы в своей работе хотя бы на какое-то время.

    По функциям delay,sleep смотрел, но почему-то их в МАСМ нету, или есть, но я об этом не знаю :dntknw: .... если есть возможность данные функции описать как-то или вызвать, то было бы просто очень здорово, если кто-то об этом знает.

    Очень прошу, подскажите, буду очень благодарен !!!


    Как пример, кода:
    .686
    .model flat, stdcall
    option casemap:none

    include \masm32\include\windows.inc

    .code
    start:
    @beg123:

    push eax
    mov eax,100h
    pop eax

    jmp @beg123

    ret
    end start
     
  2. Igor1024

    Igor1024 Васил Троянов Боянов (Azis)

    Публикаций:
    0
    Регистрация:
    15 окт 2010
    Сообщения:
    345
    Адрес:
    Sliven, Bulgaria
    Раз нужно, чтоб меньше кушал, можно Thread или Process Priority поменять на Idle.
    Но по-любому в масме есть слипы. Ищите лучше.
     
  3. Kaimi

    Kaimi Андрей

    Публикаций:
    0
    Регистрация:
    15 апр 2010
    Сообщения:
    120
    http://msdn.microsoft.com/en-us/library/ms686298%28v=vs.85%29.aspx
    Не подходит?
     
  4. DrAsm

    DrAsm New Member

    Публикаций:
    0
    Регистрация:
    19 май 2011
    Сообщения:
    4
    Спасибо огромное. Видимо, я уже заработался, совсем не правильно искал то, что нужно. Идиот просто. :))))))
     
  5. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    на пиво не согласен?
     
  6. mrcrown

    mrcrown Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    227
    Могу дать на кефир )
     
  7. Dmitry_Milk

    Dmitry_Milk Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    540
    дык, а
    Код (Text):
    1. invoke SleepEx сколько_то_мсек,1
    с подключенным windows.inc что мешает использовать?
     
  8. DrAsm

    DrAsm New Member

    Публикаций:
    0
    Регистрация:
    19 май 2011
    Сообщения:
    4
    хехе... ага, согласен :)
    неее.. кефир - сам куплю, хотя он, наверное, уже дороже пива стоит :)

    to Dmitry_Milk
    Да, ничего не мешает. В общем, это был глобальный тормоз мозга. :) даже просто Sleep вызывается, просто я их вызывал через invoke... они не вызывались... вылезала ошибка :) а, через call все ОК...
    поэтому, я уже начал паниковать, что в МАСМ - нету этих функций.. :)))))))
     
  9. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.734
    По функциям delay,sleep смотрел, но почему-то их в МАСМ нету

    А у меня есть :)

    Бери мне не жалко:



    .686
    .mmx
    .xmm
    .model flat, stdcall
    option casemap:none
    include \masm32\include\windows.inc
    include \masm32\include\kernel32.inc
    include \masm32\include\user32.inc
    include \masm32\include\masm32.inc

    includelib \masm32\lib\user32.lib
    includelib \masm32\lib\kernel32.lib
    includelib \masm32\lib\masm32.lib



    invoke Sleep, 1000 ; задержка 1 сек
     
  10. Ezrah

    Ezrah Member

    Публикаций:
    0
    Регистрация:
    22 мар 2011
    Сообщения:
    411
    Dmitry_Milk
    asmlamo
    Ответ дали в посте #3, ТС его принял в #4. Зачем повторяться? Либо всё же стоит перед ответом прочитать посты товарищей.