Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2010, 11:52   #1
posix
 
Регистрация: 22.12.2010
Сообщений: 4
По умолчанию Включение диодов на клавиатуре

Всем доброго времени суток. У меня такая проблемка: необходимо написать прогу, что бы загорались диоды на клаве(NUM, SCROLL, CAPS), и причем не сами собой, а по нажатию на конкретные клавиши, которые задаются в самой программе (например на клавиши HOME, PAGE UP, PAGE DOWN). Искал я на вашем форуме, в других разделах. Были примеры на Delphi. Находил вот такие куски кода (для ASM):
Включение Scroll
Код:
Asm 
  mov si,40h 
  mov es,si 
  mov si,17h 
  mov al,00010000b 
  mov es:[si],al 
end;
Включение Caps
Код
Код:
Asm 
  mov si,40h 
  mov es,si 
  mov si,17h 
  mov al,01000000b 
  mov es:[si],al 
end;
Включение Num
Код
Код:
Asm 
  mov si,40h 
  mov es,si 
  mov si,17h 
  mov al,00100000b 
  mov es:[si],al 
end;
закидываю в файл компилю но не воркает. Надеюсь на ваш МОЗГ!!!

Последний раз редактировалось Stilet; 24.12.2010 в 12:12.
posix вне форума Ответить с цитированием
Старый 24.12.2010, 12:17   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Уверен на 99%, что этот код в Делфи не пройдет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.12.2010, 12:33   #3
posix
 
Регистрация: 22.12.2010
Сообщений: 4
По умолчанию

мне на делфях и не надо. Мне просто на asm'e нужно сделать. этот код, который я привел не работает в nasm.
posix вне форума Ответить с цитированием
Старый 24.12.2010, 12:44   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А ты под чем компилируешь? Если под Windows то да. Он не будет работать. Он предназначен для ДОС, ну или типа того старых систем, с 16-разрядными операционками, которые способны пропустить такой код на выполнение.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.12.2010, 13:52   #5
posix
 
Регистрация: 22.12.2010
Сообщений: 4
По умолчанию

понял уже))) точнее нашел на сайте...
Вот такой есть кусок... на удивление заработал(в отличии от десятка других, которые находил) ))) с использованием API. зажигает Num. Теперь его надо под asm заточить.. поможете???

Код:
procedure ToggleNumLock; 
var 
   KeyState: TKeyboardState; 
begin 
   // Используй VK_CAPITAL для Caps Lock, VK_SCROLL для Num Lock 

   GetKeyboardState(KeyState) ; 

   // Эмулируем события клавиш (down + up) (нажать и отпустить) 
   if (KeyState[VK_NUMLOCK] = 0) then 
   begin 
     Keybd_Event(VK_NUMLOCK, 1, KEYEVENTF_EXTENDEDKEY or 0, 0) ; 
     Keybd_Event(VK_NUMLOCK, 1, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0) ; 
   end 
   else 
   begin 
     Keybd_Event(VK_NUMLOCK, 0, KEYEVENTF_EXTENDEDKEY or 0, 0) ; 
     Keybd_Event(VK_NUMLOCK, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0) ; 
   end; 
end;

Последний раз редактировалось Stilet; 24.12.2010 в 15:22.
posix вне форума Ответить с цитированием
Старый 24.12.2010, 15:25   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
на удивление
Ничего удивительного )))
Сделай так: Запусти прогу в Делфи, поставь бряк на первую строчку на GetKeyboardState, и открой CPU, отладчик короче - там будет ассемблерный код, который подскажет тебе как действовать.
Помочь я тебе врядли смогу другим, ибо NASM не знаю.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.12.2010, 20:04   #7
posix
 
Регистрация: 22.12.2010
Сообщений: 4
По умолчанию

ок. гляну)))
posix вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Включение компьютеров по сети vlad.md Работа с сетью в Delphi 17 05.07.2010 15:47
Включение оптимизации в Delphi Mixasik Свободное общение 7 30.05.2010 09:08
Включение\отключение каналов SanekIrk Мультимедиа в Delphi 1 19.10.2009 17:10
Нестандартное включение ПК Bat{CMD}_Men Операционные системы общие вопросы 1 24.08.2009 17:04
сделать бегущую строку диодов, используя PIC16F877 buba3230 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 05.06.2009 17:59