2016-11-20 8 views
1

을 가져,이 코드를 사용합니다. 키가 눌려 졌을 때, 내가 누르는 키에 대한 정보는 아와 알 레지스터에 저장됩니다. 예를 들어, ENTER를 누르면 0x0D가 al 레지스터에 저장됩니다. 백 스페이스 키를 누르면 0x08이됩니다. 그러나 이것들은 제가 아는 유일한 두 개의 열쇠입니다.리얼 모드 총회는 리얼 모드 어셈블리에서 키보드 입력

모든 키보드 키 목록이 있습니까? 예를 들어 'a'를 누르면 al/ah 값은 무엇입니까? (ASCII 테이블이에 대한 아무런 정보가 없습니다.)

+0

20 년 전 같은 질문에 직면 했으므로 키 또는 키 조합을 눌렀을 때 int 0x16에서 반환 된 정보를 표시하는 유틸리티 OPIN.COM을 작성했습니다. http://vitsoft.info/opin.htm – vitsoft

답변

1

RBIL에서 :

키보드 - GET 키 스트로크

AH = 00H

반환 :
AH = BIOS 스캔 코드
AL = ASCII 문자

ah에는 키보드 스캔 코드와 al ASCII 문자가 포함됩니다.

모든 키에는 두 개의 스캔 코드가 있습니다 (& 릴리스). 이것은 키보드 컨트롤러에 의해 반환되고 더 많은 추상화 레이어는 스캔 코드에서 특정 문자 집합 (예 : ASCII)으로의 매핑을 제공하므로 사용자는 대신 문자 집합 값을 사용할 수 있습니다.
스캔 코드 목록은 here (감사합니다 @MichaelPetch)에서 찾을 수 있습니다. 그러나 스캔 코드는 IBM PC와 함께 발전 했으므로 부분적으로 호환되는 스캔 코드 집합이 여러 개 있습니다. 스캔 코드를 사용하는 경우 사용중인 스캔 코드 유형에주의하십시오.

미래의 질문을 보려면 항상 먼저 Ralph Brown's Interrupt List (RBIL)을 보시기 바랍니다.