gpt4 book ai didi

assembly - 如何在程序集中获取用户输入

转载 作者:行者123 更新时间:2023-12-05 09:23:35 30 4
gpt4 key购买 nike

我想将用户输入的号码输入寄存器。这是我自己的操作系统。所以,我不能使用这个:

mov al,0x01
int 0x21
mov dl,al ;move the integer entered by the user, into dl

因为 int 0x21 调用了 ms-dos。那么我可以使用什么中断呢?

最佳答案

取决于您的操作系统提供的内容。如果这是您的操作系统,您可以使用编写的任何内容。

可能包括检查键盘 Controller 或串行端口,具体取决于您想要的输入。如果您的操作系统运行在 8086 实模式下,您可以向 BIOS 询问这些,否则您需要进行直接端口 I/O。

如果您想对 BIOS 进行编程,请检查 RBIL .事实上,无论您做什么,都要检查一下。

如果你想直接与 KBC(键盘 Controller )或 UART(串行端口 Controller )对话,我建议你看看其他操作系统是如何做到的,并阅读文档,例如osdev.org 和 OSdev Wiki。

如果您处于实模式,则可以调用 BIOS 等待按键并从键盘缓冲区中读取它:

MOV AH,00h
INT 16h

ASCII码在AL中,扫描码在AH中。但是,如果您不在实模式下,则开始时没有键盘缓冲区。键盘驱动程序将通过直接端口 I/O 从 KBC 中断处理程序获取数据到键盘 Controller ,然后(并自行缓冲)。

关于assembly - 如何在程序集中获取用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20804135/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com