Я работаю над проектом сборки 8086 на компьютере с Windows, и мне нужно знать, какая кнопка мыши была нажата. Какие прерывания для этого? или как мне узнать это?
Спасибо
Я работаю над проектом сборки 8086 на компьютере с Windows, и мне нужно знать, какая кнопка мыши была нажата. Какие прерывания для этого? или как мне узнать это?
Спасибо
Если вы создаете программу для DOS, которая работает под Windows, вы можете использовать программное прерывание 0x33, функция 3, которая возвращает состояние кнопки в регистре BL:
mov ax,0x3 int 0x33 test bl,1 jnz left_button_pressed test bl,2 jnz right_button_pressed
Подробнее здесь http://www.ctyme.com/intr/rb-5959.htm
Если вы создаете родное приложение для Windows, вы можете протестировать нажатия кнопок, проверив стандартные сообщения кнопок мыши (WM_LBUTTONDOWN/UP, WM_RBUTTONDOWN/UP, WM_MBUTTONDOWN/UP), переданные в ваш зарегистрированный WndProc для главного окна, созданного вашей программой. .
Объявление функции для WndProc: «LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);», тип сообщения передается в uMsg, поэтому вы должны проверить DWORD в [esp+12] и сравнить его с идентификатором сообщения, которое вы хотите обработать.
На компьютере с DOS просмотрите Программное прерывание 0x33< /a>.
Команда AH = 0x03 возвращает нажатую кнопку мыши в регистре CX (вместе с координатами мыши и другой информацией в других регистрах).
Если он доступен, конечно, гораздо проще использовать Windows API для этой цели, как указано в ответе Матьи.