有什么方法可以使用 c 中的 bios 打印数据。我知道你可以在汇编中使用int 0x10
,但是 C 有什么等价物吗?
问问题
658 次
1 回答
1
这取决于操作系统是否已经在运行。
如果是,则取决于正在运行的操作系统。但通常,如果使用 C,C 标准库应该可用。所以使用 printf() 和/或标准输出...
如果没有可用的操作系统,则取决于 CPU 模式。
如果 CPU 在实模式下运行,则使用 10h BIOS 中断。
您甚至可以在 C 中执行此操作。大多数 C 编译器允许内联汇编。
例如,对于 GCC,使用 __asm 关键字。
如果您处于 32 位保护模式,则需要手动管理视频,因为 BIOS 中断不再可用。
在这种情况下,打印数据只是写入包含视频缓冲区的内存区域。您需要知道自己处于哪种视频模式,以便以正确的格式写入数据,以及内存缓冲区的内存地址是什么。
在这种情况下,只需声明一个指向内存区域的 char 指针,然后写入字符...
于 2010-07-21T22:23:33.640 回答