在C中使用BIOS显示数据
有没有办法在c中使用bios打印数据。我知道在汇编中可以使用在C中使用BIOS显示数据,c,assembly,printing,interrupt,bios,C,Assembly,Printing,Interrupt,Bios,有没有办法在c中使用bios打印数据。我知道在汇编中可以使用int0x10,但是C是否有任何等价物?这取决于操作系统是否已经运行。 如果是,则取决于正在运行的操作系统。但通常,如果使用C,则应提供C stdlib。因此,请使用printf()和/或stdout 如果没有可用的操作系统,则取决于CPU模式 如果CPU以实模式运行,则使用10h BIOS中断。 即使在C语言中也可以这样做。大多数C编译器允许内联汇编。 例如,对于GCC,使用_asm关键字 如果您处于32位保护模式,则需要手动管理视频
int0x10
,但是C是否有任何等价物?这取决于操作系统是否已经运行。如果是,则取决于正在运行的操作系统。但通常,如果使用C,则应提供C stdlib。因此,请使用printf()和/或stdout 如果没有可用的操作系统,则取决于CPU模式 如果CPU以实模式运行,则使用10h BIOS中断。
即使在C语言中也可以这样做。大多数C编译器允许内联汇编。
例如,对于GCC,使用_asm关键字 如果您处于32位保护模式,则需要手动管理视频,因为BIOS中断不再可用 在这种情况下,打印数据只是写入包含视频缓冲区的内存区域。您需要知道您处于哪种视频模式,以便以正确的格式写入数据,以及内存缓冲区的内存地址。
在这种情况下,只需声明一个指向内存区域的char指针,并写入字符…您的意思是“使用BIOS在C中显示数据”吗?在汇编操作系统时,您可以使用
int 0x10
使用BIOS显示数据。有没有一种方法可以在C中实现同样的功能?好的,你也可以切换回实模式,调用BIOS中断,然后切换回保护模式。但这有点农业化。«农业»我第一次听到它,但考虑到上下文,我喜欢它!:)