gpt4 book ai didi

c - 在 Windows 中读取 RTC

转载 作者:可可西里 更新时间:2023-11-01 14:40:34 26 4
gpt4 key购买 nike

我不是 C/ASM 开发人员,我想使用 Windows 程序从 RTC 获取当前日期和时间。

Here ,我找到了一个 C 代码来执行此操作。

我按以下方式更改了该代码,并使用 Visual Studio 2017 cl.exe 编译器对其进行了编译,没有出现错误和警告:

#include <stdio.h>

int main()
{
unsigned char tvalue, index;

printf("STARTING...\n");

for(index = 0; index < 128; index++)
{
__asm
{
cli /* Disable interrupts */
mov al, index /* Move index address */
/* since the 0x80 bit of al is not set, */
/* NMI is active */
out 0x70, al /* Copy address to CMOS register */
/* some kind of real delay here is probably best */
in al, 0x71 /* Fetch 1 byte to al */
sti /* Enable interrupts */
mov tvalue, al
}

printf("%u\n", (unsigned int)tvalue);
}

printf("FINISHED!\n");
return 0;
}

当我尝试从命令提示符执行 exe 时,我什么也没看到,只看到行“STARTING...”。

我做错了什么?

非常感谢。

最佳答案

您找到的示例代码是操作系统代码,而不是 Windows 代码。如果 Windows 允许随机进程与实时时钟等硬件设备随机交互,那将是一片困惑。操作系统有一个与实时时钟对话的驱动程序,它不允许进程随机访问它。

作为最明显的问题,您不能在现代操作系统运行时禁用进程中断!

关于c - 在 Windows 中读取 RTC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56617211/

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