在C中使用BIOS显示数据

时间:2010-07-21 21:06:59

标签: c assembly printing interrupt bios

有没有办法在c中使用bios打印数据。我知道在汇编中你可以使用int 0x10,但C是否有任何等价物?

1 个答案:

答案 0 :(得分:1)

这取决于操作系统是否已经运行 如果是,则取决于正在运行的操作系统。但通常,如果使用C,应该可以使用C stdlib。所以使用printf()和/或stdout ......

如果没有可用的操作系统,则取决于CPU模式。

如果CPU以实模式运行,则使用10h BIOS中断 您甚至可以在C中执行此操作。大多数C编译器允许内联汇编 例如,对于GCC,请使用__asm关键字。

如果您处于32位保护模式,则需要手动管理视频,因为BIOS中断不再可用。

在这种情况下,打印数据只是写入包含视频缓冲区的存储区。您需要知道自己处于哪种视频模式,这样您就可以以正确的格式写入数据,以及内存缓冲区的内存地址是什么。
在这种情况下,只需声明一个指向内存区域的char指针,然后写入字符......