Сейчас на форуме: UniSoft, laslo, bartolomeo (+5 невидимых) |
eXeL@B —› Программирование —› ASM: перехват NumLock |
Посл.ответ | Сообщение |
|
Создано: 22 сентября 2011 23:50 · Личное сообщение · #1 Здраствуйте! мне нужно при нажатии NumLock в консоли выводить "1". Но проблема в том, что когда я читаю символы с помощъю int 16h: mov ah,10h int 16h то программа ждет нажатия клавиши, а когда я нажимаю Numlock то прога продолжает ожидать нажатия клавиш... как сделать так чтобы при нажатии 1 выводилось 1, а при нажатии Numlock - 2? |
|
Создано: 23 сентября 2011 00:20 · Личное сообщение · #2 |
|
Создано: 23 сентября 2011 02:19 · Личное сообщение · #3 спасибо.... а как сделать програмно простейшую задержку на 10 мс? везде пишут о 86h int 15h, но у меня почему то не работает. Вот кусок кода: Code:
теоретически интервал между выводом сообщений должен быть большым, но никакого интервала нет... |
|
Создано: 23 сентября 2011 09:04 · Личное сообщение · #4 maxteam пишет: а как сделать програмно простейшую задержку на 10 мс? Кратко: Из-под 32-х разрядной винды - вряд ли. |
|
Создано: 23 сентября 2011 11:40 · Личное сообщение · #5 |
|
Создано: 23 сентября 2011 11:58 · Личное сообщение · #6 |
|
Создано: 23 сентября 2011 12:31 · Личное сообщение · #7 А если попробовать так: INT 1AH Запрос и установка текущего времени и даты. Считывает и записывает показание часов в соответствии созначением в регистре AH. Для определения продолжительности выполнения программы можно перед началом выполнения установить часы в 0, а после считать текущее время. Отсчет времени идет примерно 18,2 раза в секунду. Значение в регистре AH соответствует следующим операциям: AH=00 Запрос времени. В регистре CX устанавливается старшая часть значения, а в регистре DX - младшая. Если после последнего запроса прошло 24 часа, то в регистре AL будет не нулевое значение. вызывать в цикле и проверять значение, изменилось на нужную величину - выходим? состряпано за пару минут в HIEW (ну не хочу я тасм вызывать ради ТАКОГО =) Code:
работает в дос-окне винды на-ура | Сообщение посчитали полезным: maxteam |
|
Создано: 23 сентября 2011 21:11 · Поправил: bowrouco · Личное сообщение · #8 puzo Любая многозадачная ось исполняется в протектед моде. Исполнение In, Out, Cli/Sti не зависито от мода(ринг). Это определяет уровень привилегий ввода вывода(IOPL в флажках). В юзермоде при установленном поле IOPL в 3 эти инструкции робят. Даже инсфокласс был официальный PsUserModeIOPL в псинфо, позволяющий это поле прогрузить в контексты. Таже олли при трейсе Cli останавливает всю ось. Code:
Intel® 64 and IA-32 Architectures Software Developer’s Manual V.2A, 3-109 | Сообщение посчитали полезным: puzo |
|
Создано: 24 сентября 2011 14:01 · Личное сообщение · #9 а как включить светодиоды NumLock,CapsLock,ScrollLock? по идеи нужно програмно нажать эти клавиши... я использую такой код: Code:
но он не работает...тоесть индикаторы не переключаются П.С: винапи не нада |
|
Создано: 24 сентября 2011 14:02 · Личное сообщение · #10 |
|
Создано: 24 сентября 2011 14:33 · Поправил: maxteam · Личное сообщение · #11 |
|
Создано: 24 сентября 2011 23:34 · Личное сообщение · #12 |
|
Создано: 24 сентября 2011 23:48 · Личное сообщение · #13 |
|
Создано: 25 сентября 2011 03:26 · Поправил: ajax · Личное сообщение · #14 |
|
Создано: 25 сентября 2011 10:00 · Личное сообщение · #15 Чтоб играться с портами под Вынь-NT и выше, есть некий драйвер PortNT. С его помощью дебильно-защищенная Pro100 запускается под WinNT/2000/XP/... 1bf8_25.09.2011_EXELAB.rU.tgz - PortNT.rar |
eXeL@B —› Программирование —› ASM: перехват NumLock |