Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Дельфийский ассемблер [D7]


microcomp ©   (2005-05-19 15:14:00) 

Ув. Как из дельфийского асма корректно вызвать виндовую функцию (покажите пример) в частности - вот код для чистого ассемблера:

.loopbegin:
;... делаем какието операции ...
memcall _GetAsyncKeyState,VK_ESCAPE
test eax,eax
jz .loopbegin
;... делаем выход....

Делает этот кусок кода простую вещь - проверяет нажата ли клавиша "Esc". Если да, выходим из цикла.


Digitman   (2005-05-19 18:04:00) [1]


> CALL  GetAsyncKeyState - Ошибка


CALL   Windows.GetAsyncKeyState


begin...end   (2005-05-19 17:36:00) [2]

> microcomp ©   (19.05.05 17:33) [3]

Добавить в список uses модуль Windows?


microcomp   (2005-05-19 17:33:00) [3]

begin...end >
CALL  GetAsyncKeyState - Ошибка
Что-то где-то нужно объявить.
Вот собственно и спрашиваю...


begin...end   (2005-05-19 17:19:00) [4]

> microcomp ©   (19.05.05 15:14)

asm
   PUSH  VK_ESCAPE
   CALL  GetAsyncKeyState
   TEST  EAX, EAX
   JZ    @@up
   // клавиша нажата
   ...
@@up:
   // клавиша не нажата
   ...
end.


Marser   (2005-05-19 15:24:00) [5]

Толкаем (push) в стек все параметры в соответствии с stdcall-соглашением и вызываем подпрограмму с помощью call ptr


Наверх

Титульная страница Поиск, карта сайта Написать письмо