Stricto sensu, вы не можете прочитать регистр в чисто переносимой стандартной программе C ++ (так как спецификация C ++ не знает о регистрах). Узнайте больше о языке C ++, например, некоторые C ++ ссылка сайт, некоторые Введение в программирование на C ++ и его n3337 стандарт для C ++ 11.
Однако вы можете использовать asm
операторов. Они генерируют код специфичным для реализации способом.
Если вы используете компилятор GCC , прочитайте его раздел на , используя язык ассемблера с C (большая часть относится также к C ++).
Если вам нужен доступ к клавиатуре в Windows (или другой распространенной операционной системе , такой как Android, MacOSX, Linux), вам необходимо использовать специфические для операционной системы примитивы (которые не соответствуют стандарту C ++). ).
Для Windows погрузитесь в документацию WinAPI .
Для Linux начните с чтения о системных вызовах , например. * 1 028 * системные вызовы (2) .
Большинство операционных систем абстрагируют доступ к аппаратному обеспечению. Потому что ваш процесс изолирован от него.
Он работает в режиме пользователя .
На компьютерах с архитектурой x86 обратите внимание на SMM , BIOS, UEFI. Он, вероятно, управляет такими волшебными клавишами яркости (или взаимодействует с вашей ОС kernel ).
Включен ли регистр EC в регистры Windows?
Вы можете перепутать некоторые аппаратные регистр процессора в микроконтроллере клавиатуры с реестром Windows . Несмотря на фонетическое сходство, они абсолютно не связаны.
PS. https://github.com/hirschmann/nbfc - это бесплатное программное обеспечение (лицензия GPLv3 +). Пожалуйста, погрузитесь в его исходный код (который, вероятно, имеет определенные части операционной системы) и изучите исходный код (некоторый код, связанный с Windows, например nbfc / Windows / NbfcClient / AppSettings.cs , выглядит как C # код).