Есть функция обратного вызова Код (Text): LowKeyboardProcedure proc code :dword, wparam:dword, lparam: dword local hookInfo: KBDLLHOOKSTRUCT ;… ;… LowKeyboardProcedure endp В параметре lparam передается указатель на структуру KBDLLHOOKSTRUCT, которая выглядит так: Код (Text): KBDLLHOOKSTRUCT struct vkCode dw ? scanCode dw ? flags dw ? time dw ? extraInfo dw ? KBDLLHOOKSTRUCT ends Как теперь добраться до полей этой структуры, предварительно преобразовав параметр lparam (он является указателем на нее) к структуре KBDLLHOOKSTRUCT ? В нотации С++ это бы выглядело так: Код (Text): LRESULT CALLBACK LowKeyboardProcedure (int code,int wparam, int lparam) { //Вот это надо перевести на асм KBDLLHOOKSTRUCT* hookInfo = (KBDLLHOOKSTRUCT*)lparam; int a = hookInfo-> vkCode; //////////////////////////////////////////////////// }
mov esi, lparam assume esi: KBDLLHOOKSTRUCT mov ax, [esi].vkCode или сразу: mov ax, (KBDLLHOOKSTRUCT ptr [esi]).vkCode вроде так ))