Здравствуйте! Написал программу, которая отслеживает изменение размера файла (нужны и такие) и сообщает об этом. Чтобы программа все время работала в цикле использовал функию WaitMessage В Delphi все работало, почему не работает в асме? текст такой: Delphi repeat WaitMessage until True; Asm @@repeat: call WaitMessage jmp @@repeat
Из MSHelp The WaitMessage function yields control to other threads when a thread has no other messages in its message queue. The WaitMessage function suspends the thread and does not return until a new message is placed in the thread's message queue. из чего следует, что программа не выполняется дальше, пока не поступит сообщение. а цикл repeat until true выполняется бесконечное число раз
Да, про until true вы правы, прошу прощения. Ввело меня в заблуждение то, что WaitMessage не возвращал управление программе, и цикл не прерывался. Что ж, я решил задачу, если кому интересно, так: @@repeat: call WaitMessage push PM_REMOVE push NULL push NULL push NULL lea ax, msg push ax call PeekMessage jmp @@repeat , где msg - структура, содержащая информацию о сообщении из очереди. Хотя, возможно, есть более изящные методы.