Я пытаюсь написать ядро, и вам нужно добавить базовую клавиатуру ввода-вывода. Я сделал некоторые исследования, узнал капельку ASM, и написал:Будет ли работать этот драйвер клавиатуры?
char GetChar(void)
{
extern int _a_Char;
asm(
".code16\n"
".global _a_Char\n"// So we can get the char in C
"_a_GetChar:\n"
"\tmov ah, 10h\n"// Set BIOS Function
"\tint 16h\n"//Interrupt 16 (Call ah=10h)
"\tmov _a_Char, al\n"//Move char to _a_Char
".code32\n"
);
return (char)_a_Char;
}
Я не опытный в ASM, так что я не уверен, если это будет работать так, как я хочу его. Да, и если это помогает, вот только код ASM, что внутри строк в моем коде C:
.global _a_Char
_a_GetChar:
mov ah, 10h
int 16h
mov _a_Char, al
Я просто хотят знать, если это работает или нет, и если это не так, что Я должен измениться. Спасибо, всем вам народы.
Это работало, когда вы пробовали? –
Нет, я планирую установить его на виртуальную машину, но сначала нужно получить GRUB. Просто хотел знать, была ли моя ASM испорчена или нет. – cubician
Я не вижу, где вы удаляете символ из буфера клавиатуры. –