gpt4 book ai didi

c++ - 不良状态登记?

转载 作者:行者123 更新时间:2023-11-28 03:24:28 25 4
gpt4 key购买 nike

正在做一个项目。教授给了我们一个包含一些测试的 .zip 文件,因此我们可以查看我们的项目是否正常运行。我们正在用 C++ 构建一个小内核。

总之,有一个线程等待键盘中断 (event9.wait()),之后它应该将字符放入缓冲区或结束程序(如果您按“esc”)。

while (!theEnd) {

event9.wait();

status = inportb(0x64); // reading status reg. from 64h
while (status & 0x01){ //while status indicates that keys are pressed
....

我检查过,我确定它会定期等待中断。出现问题是因为s​​tatus&0x01为0。

然后我得到了从 0x60 获取字符的代码部分,它工作得很好。

测试文件的代码有问题吗?如果是,什么?如果代码正确,可能会导致什么问题?

我可以更改测试文件,但我需要有充分的理由这样做。到目前为止,我唯一的理由是它不起作用。

*注意:评论是从塞尔维亚语翻译过来的,但我几乎可以肯定它们的翻译是正确的。

最佳答案

我认为 status & 0x01 非常好。但是,您需要在读取端口 0x60 后再次读取端口 - 很可能稍后在代码中执行此操作,但我个人只是将代码重写为:

    while ((status = inportb(0x64)) & 0x01){ //while status indicates that keys are pressed
....

请注意,在这种情况下,您不应在循环内再次读取端口 0x64。

关于c++ - 不良状态登记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14540683/

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